OSDN Git Service

ff83661e822591624ed80901d22ddb0672195348
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-09-04  David S. Miller  <davem@redhat.com>
2
3         * config/sparc/sparc.md (define_splits): Kill constraints.
4
5 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
6
7         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
8
9 2001-09-03  Richard Henderson  <rth@redhat.com>
10
11         * function.h (struct function): Add arg_pointer_save_area_init.
12         * function.c (expand_function_end): Init arg_pointer_save_area.
13         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
14         when called from a nested function.
15
16 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
17
18         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
19         is enabled.
20
21 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
22
23         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
24
25 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
26
27         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
28         (emit_push_insn): Use specified padding direction when
29         STACK_PUSH_CODE is POST_INC.
30
31         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
32
33 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34
35         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
36
37 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
38
39         * cppinit.c (cpp_start_read): Free the imacros list as we
40         traverse it.  Don't free the chains before returning.
41         (_cpp_push_next_buffer): Only try pushing buffers if we've
42         completed -imacros handling.
43
44 2001-08-31  Eric Christopher  <echristo@redhat.com>
45
46         * gcc.c (handle_braces): Add explaination for abort.
47
48 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
49
50         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
51         move adjustment of bitpos instead.
52
53 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
54
55         * function.c: Remove all_functions.  Make outer_function_chain
56         static.
57         (init_function_start): Don't add new function structure to
58         all_functions.
59         (find_function_data, push_function_context_to,
60         pop_function_context_from, put_var_into_stack,
61         trampoline_address): Update for changed structure element names.
62         (push_function_context_to): Disentangle.
63         (free_after_compilation): Also free F.
64         (expand_dummy_function_end): Don't free cfun here.
65         (put_var_into_stack): Comment why we can't use find_function_data here.
66         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
67         (mark_function_chain): Split into maybe_mark_struct_function and
68         ggc_mark_struct_function.  Export the latter.
69         (init_function_once): Mark from cfun and outer_function_chain;
70         not all_functions.
71
72         * function.h (struct function): Kill next_global.  Rename next
73         to outer.  All users updated to match.
74         (all_functions, outer_function_chain): Don't declare.
75
76         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
77         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
78         don't touch f->inlinable, after calling rest_of_compilation.
79
80         * tree.h: Forward-declare struct function.  Prototype
81         ggc_mark_struct_function.
82
83 2001-08-31  Kazu Hirata  <kazu@hxi.com>
84
85         * config/h8300/h8300.md (*andorhi3): Fix typos.
86
87 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
88
89         * calls.c (emit_library_call_value): Don't use a fixed
90         argument after VA_CLOSE, i.e. out of scope in traditional C.
91
92         * emit-rtl.c (gen_rtvec): Likewise.
93
94 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
95
96         * Makefile.in (c-pragma.o): Depend on output.h.
97         (reorg.o): Depend on except.h.
98
99         * c-pragma.c: Include output.h.
100
101         * reorg.c: Include except.h.
102
103         * unwind-dw2.c: Call __builtin_alloca, not alloca.
104
105 2001-08-31  Richard Henderson  <rth@redhat.com>
106
107         * sched-deps.c (add_dependence): Don't elide dependancy if the
108         conditional used by insn is modified in elem.
109
110 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
111
112         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
113
114 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
115
116         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
117         dump_switch_p.
118
119 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
120
121         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
122         function.
123         (stormy16_asm_out_constructor): New function.
124         (TARGET_ASM_CONSTRUCTOR): Define.
125         (TARGET_ASM_DESTRUCTOR): Define.
126
127 2001-08-31  Andreas Jaeger  <aj@suse.de>
128
129         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
130         * loop.c (add_label_notes): Likewise.
131         * reload.c (find_reloads): Likewise.
132         * config/sh/sh.c (machine_dependent_reorg): Likewise.
133
134 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
135
136         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
137         code here.  Take _Unwind_{W,Sw}ord*.
138         (read_encoded_value_with_base): Use them.
139         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
140         words.
141         (extract_cie_info): Simplify read_?leb128 handling.
142         (execute_stack_op, execute_cfa_program): Likewise.
143         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
144
145 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
146
147         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
148         the frame pointer to pop the stack if convenient.
149
150         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
151         Don't use post-increment before combine.
152         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
153         a call-saved register.
154
155 2001-08-31  Andreas Jaeger  <aj@suse.de>
156
157         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
158         code was correct.
159
160 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
161
162         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
163         not DIV/MOD, of course.
164
165 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
166
167         * rtl.def: Undo my patch commited 2001-08-27.
168
169         * genattrtab.c: Ditto.
170
171         * rtl.h: Ditto.
172
173         * sched-int.h: Ditto.
174
175         * target-def.h: Ditto.
176
177         * target.h: Ditto.
178
179         * haifa-sched.c: Ditto.
180
181         * sched-rgn.c: Ditto.
182
183         * sched-vis.c: Ditto.
184
185         * Makefile.in: Ditto.
186
187         * doc/md.texi: Ditto.
188
189         * doc/tm.texi: Ditto.
190
191         * doc/contrib.texi: Ditto.
192
193         * doc/gcc.texi: Ditto.
194
195         * genattrtab.h: Remove it.
196
197         * genautomata.c: Remove it.
198
199         * genattr.c: Undo my patch and Richard Henderson's patch commited
200         2001-08-27.
201
202 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
203
204         * config.gcc (h8300-*-elf*): New case.
205         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
206         (SUBTARGET_CPP_SPEC): Define.
207         (EXTRA_SPECS): Define.
208         (SUBTARGET_EXTRA_SPECS): Define.
209         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
210         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
211
212 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
213
214         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
215         (LIB2FUNCS_EXTRA): Define.
216         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
217         config/h8300/fixunssfsi.c: New file.
218
219 2001-08-30  Kazu Hirata  <kazu@hxi.com>
220
221         * config/h8300/h8300.md (zero_extendqihi2): Changes to
222         define_expand to accomodate target-specific attributes.
223         (anonymous zero_extendqihi2 patterns): New.
224
225 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
226
227         * h8300.md (*andorhi3): New pattern.
228
229 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
230
231         * h8300.c (dosize): Fix test for "sub".
232
233 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
234
235         * c-typeck.c (pointer_diff): Try to eliminate common term before
236         doing conversions.
237
238 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
239
240         * config/arm/arm.c (arm_compute_initial_elimination_offset):
241         Account for the saves of the FP registers.
242
243         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
244         (TEXT_SECTION_ASM_OP): Define.
245         (INIT_SECTION_ASM_OP): Define.
246         (FINI_SECTION_ASM_OP): Define.
247         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
248         (RDATA_SECTION_FUNCITON): Provide prototype.
249
250 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
251
252         * reload1.c (move2add_note_store): Correct typo checking for
253         argument pushes.
254
255 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
256
257         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
258         note should not be considered outside the libcall block.
259
260 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
261
262         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
263
264 2001-08-29  Kazu Hirata  <kazu@hxi.com>
265
266         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
267
268 2001-08-29  Kazu Hirata  <kazu@hxi.com>
269
270         * config/h8300/h8300-protos.h: Add a prototype for
271         emit_logical_op.
272         * config/h8300/h8300.c (emit_logical_op): New.
273         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
274         (andsi3): Likewise.
275         (iorhi3): Likewise.
276         (iorsi3): Likewise.
277         (xorhi3): Likewise.
278         (xorsi3): Likewise.
279
280 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
281
282         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
283         comparison with rtx INTVAL.
284         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
285         expression.
286         * pa.h (FUNCTION_ARG_SIZE): Likewise.
287
288 2001-08-29  Kazu Hirata  <kazu@hxi.com>
289
290         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
291         comment typos.
292
293 2001-08-29  Kazu Hirata  <kazu@hxi.com>
294
295         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
296         (reg n) to (mem (pre_dec (reg n))
297         (anonymous movsi pattern): Likewise.
298
299 2001-08-29  Kazu Hirata  <kazu@hxi.com>
300
301         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
302
303 2001-08-29  Kazu Hirata  <kazu@hxi.com>
304
305         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
306         several special constants.
307
308 2001-08-29  Kazu Hirata  <kazu@hxi.com>
309
310         * config/h8300/lib1funcs.asm: Fix comment typos.
311
312 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
313
314         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
315         Fix format specifier warnings.
316
317         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
318         inet_makeaddr, semctl): Prototype.
319
320         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
321         (save_restore_insns): Use base_offset, not gp_offset.
322
323         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
324         (ASM_OUTPUT_BYTE): Fix format specifier warning.
325
326 2001-08-29  Richard Henderson  <rth@redhat.com>
327
328         * bb-reorder.c (function_tail_eff_head): New.
329         (record_effective_endpoints): Set it.
330         (fixup_reorder_chain): Use it.
331
332 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
333
334         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
335
336 2001-08-28  Dale Johannesen  <dalej@apple.com>
337
338         * config/darwin.c (machopic_function_base_name): Add const
339         qualifier to a string.
340         (darwin_encode_section_info): Ditto.
341
342 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
343
344         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
345         function definition.
346
347 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
348
349         * df.h (struct df): Add rts_order variable.
350
351         * df.c (df_visit_next_rts): New function.
352         (df_visit_next): Renamed to df_visit_next_rc
353         (df_analyse_1): Allocate/compute/free rts_order as well.
354         (df_rd_global_compute): Use df_visit_next_rc instead of
355         df_visit_next.
356         (df_ru_global_compute): Use df_visit_next_rts instead of
357         df_visit_next.
358
359         * flow.c (flow_reverse_top_sort_order_compute): New function.
360
361         * basic-block.h: Add prototype.
362
363 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
364
365         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
366         blocks, the BB_REACHABLE is now set, rather than aux being
367         non-NULL. Update the test to reflect this.
368
369 2001-08-28  Eric Christopher  <echristo@redhat.com>
370
371         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
372         config/mips/crti.asm: Ditto.
373
374 2001-08-28  Eric Christopher <echristo@redhat.com>
375             Richard Henderson <rth@redhat.com>
376
377         * c-pragma.h (add_weak): Move prototype from here...
378         * output.h (add_weak): ... to here.
379         * varasm.c (add_weak): Fix typo.
380         * config/mips/crti.asm: New file.
381         * config/mips/crtn.asm: Ditto.
382         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
383         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
384         (INVOKE__main): Ditto.
385         (INIT_SECTION_ASM_OP): New.
386         (FINI_SECTION_ASM_OP): Ditto.
387         (STARTFILE_SPEC): Add crti.
388         (ENDFILE_SPEC): Add crtn.
389         * config/mips/elf64.h: Same.
390         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
391         Remove.
392         * config/mips/vxworks.h: Ditto.
393         * config/mips/t-elf: Support crti and crtn.
394
395 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
396
397         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
398         INSN_LIST.
399
400 2001-08-28  Richard Henderson  <rth@redhat.com>
401
402         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
403         (one_cmplbi2 splitter): Remove redundant test.
404
405 2001-08-28  Dale Johannesen  <dalej@apple.com>
406
407         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
408
409 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
410
411         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
412
413 2001-08-28  Stan Shebs  <shebs@apple.com>
414
415         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
416         (UNALIGNED_SHORT_ASM_OP): Define.
417         (UNALIGNED_INT_ASM_OP): Define.
418
419 2001-08-28  Will Cohen  <wcohen@redhat.com>
420
421         * config/rs6000/rs6000.md (store_multiple): Correct RTL
422         generation for first set.
423
424 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
425
426         * flow.c (redirect_edge_succ_nodup): Return new edge.
427         (try_simplify_condjump): Use new edge.
428         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
429
430         * cse.c (cse_basic_block): Skip note instructions.
431
432 2001-08-27  Richard Henderson  <rth@redhat.com>
433
434         * combine.c (combine_simplify_rtx): Don't reverse condition
435         if there is no reverse for the condition.
436         (simplify_comparison): Don't simplify subregs from INT to FP.
437
438         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
439         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
440         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
441         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
442         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
443         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
444
445 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
446
447         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
448         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
449         (pushqi1): New.
450         (adddi_dilshr32, adddi_dishl32): Only data register can be
451         source for mem destination.
452
453         * expmed.c (store_bit_field): Ignore adjustment to bitpos
454         and use bitnum to decide about register move.
455
456 2001-08-27  Richard Henderson  <rth@redhat.com>
457
458         * genattr.c (main): Emit state_t even when not doing scheduling.
459
460 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
461             Richard Henderson  <rth@redhat.com>
462
463         * gcse.c (reg_first_set, reg_last_set): Replace with ...
464         (reg_avail_info, current_bb): ... these.
465         (oprs_unchanged_p, record_last_reg_set_info): Use them.
466         (compute_hash_table): Likewise.
467
468 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
469
470         * flow.c (verify_flow_info): Use checksums to verify edges.
471
472 2001-08-27  Richard Henderson  <rth@redhat.com>
473
474         * genautomata.c (expand_automata): Always create a description.
475
476 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
477
478         * optabs.c (expand_binop): Correctly handle the carry in multiword
479         add/subtract operations.
480
481 2001-08-27  Fred Fish  <fnf@be.com>
482
483         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
484         __SIZE_TYPE__.
485
486 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
487
488         * reload.c (find_reloads_toplev): Back out this change:
489
490         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
491
492         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
493         mem if the address is a mode_dependent_address_p.
494
495 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
496
497         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
498         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
499         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
500         RTL constructions.
501
502         * genattr.c (main): New variable num_insn_reservations.  Increase
503         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
504         pipeline hazard recognizer interface.
505
506         * genattrtab.h: New file.
507
508         * genattrtab.c: Include genattrtab.h.
509         (attr_printf, check_attr_test, make_internal_attr,
510         make_numeric_value): Move protypes into genattrtab.h.  Define them
511         as external.
512         (num_dfa_decls): New global variable.
513         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
514         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
515         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
516         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
517
518         * genautomata.c: New file.
519
520         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
521
522         * sched-int.h: (curr_state): Add the external definition for
523         automaton pipeline interface.
524         (haifa_insn_data): Add comments for members blockage and units.
525
526         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
527         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
528         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
529         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
530         TARGET_SCHED_DFA_POST_CYCLE_INSN,
531         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
532         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
533         macros.
534         (TARGET_SCHED): Use the new macros.
535
536         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
537         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
538         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
539         dfa_bubble): New members in gcc_target.sched.
540
541         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
542         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
543         (insn_queue): Redefine it as pointer to array.
544         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
545         INSN_QUEUE_SIZE.
546         (max_insn_queue_index_macro_value): New variable.
547         (curr_state, dfa_state_size, ready_try): New varaibles for
548         automaton interface.
549         (ready_element, ready_remove, max_issue): New function prototypes
550         for automaton interface.
551         (choose_ready): New function prototype.
552         (insn_unit, blockage_range): Add comments.
553         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
554         FUNCTION_UNITS_SIZE == 0.
555         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
556         actual_hazard, potential_hazard): Add comments.
557         (insn_cost): Use cost -1 as undefined value.  Remove
558         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
559         pipeline interface.
560         (ready_element, ready_remove): New functions for automaton
561         interface.
562         (schedule_insn): Add new code for automaton pipeline interface.
563         (queue_to_ready): Add new code for automaton pipeline interface.
564         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
565         (debug_ready_list): Print newline when the queue is empty.
566         (max_issue): New function for automaton pipeline interface.
567         (choose_ready): New function.
568         (schedule_block): Add new code for automaton pipeline interface.
569         Print ready list before scheduling each insn.
570         (sched_init): Add new code for automaton pipeline interface.
571         Initiate insn cost by -1.
572         (sched_finish): Free the current automaton state and finalize
573         automaton pipeline interface.
574
575         * sched-rgn.c: Include target.h.
576         (init_ready_list, new_ready, debug_dependencies): Add new code for
577         automaton pipeline interface.
578
579         * sched-vis.c: Include target.h.
580         (get_visual_tbl_length): Add code for automaton interface.
581         (target_units, print_block_visualization):  Add comments.
582
583         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
584         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
585         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
586         (getruntime.o, genautomata.o): New entries.
587         (genattrtab.o): Add new dependency file genattrtab.h.
588         (genattrtab): Add new dependencies.  Link it with `libm.a'.
589         (getruntime.o, hashtab.o): New entries for canadian cross.
590
591         * doc/md.texi: Description of automaton based model.
592
593         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
594         Add comments.
595         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
596         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
597         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
598         TARGET_SCHED_DFA_POST_CYCLE_INSN,
599         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
600         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
601         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
602         hook descriptions.
603         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
604         MAX_DFA_ISSUE_RATE): New macro descriptions.
605
606         * doc/contrib.texi: Add dfa based scheduler contribution.
607
608         * doc/gcc.texi: Add more information about genattrtab.
609
610 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
611
612         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
613         an RTL basic block.
614
615 2001-08-27  Richard Henderson  <rth@redhat.com>
616
617         * function.c (expand_function_end): Don't init arg_pointer_save_area.
618         (get_arg_pointer_save_area): New.  Create an init it here.
619         (fix_lexical_addr): Use it.
620         * function.h: Declare it.
621         * builtins.c (expand_builtin_setjmp_receiver): Use it.
622         * stmt.c (expand_nl_goto_receiver): Use it.
623
624 2001-08-27  Richard Henderson  <rth@redhat.com>
625
626         * final.c (final_scan_insn): Don't enter APP_ON mode for
627         empty asm strings.
628
629         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
630         alignment for assemble_integer for DW_EH_PE_aligned.
631         * except.c (output_function_exception_table): Likewise.
632
633 2001-08-26  Andreas Jaeger  <aj@suse.de>
634
635         * c-tree.h: Add prototyp for c_sizeof_nowarn.
636
637 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
638
639         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
640
641 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
642
643         * config/rs6000/rs6000.c (mask_operand): Rewrite without
644         bit-shifting loop.
645         (mask64_operand): Likewise.
646         (rldic_operand): Delete.
647         (includes_lshift64_p): Delete.
648         (includes_rldic_lshift_p): New function.
649         (includes_rldicr_lshift_p): New function.
650         (print_operand): Don't call rldic_operand in case 'W'.
651         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
652         (includes_lshift64_p): Remove.
653         (includes_rldic_lshift_p): Declare.
654         (includes_rldicr_lshift_p): Declare.
655         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
656         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
657         Replace match_operand rldic_operand predicate with
658         const_int_operand.  Replace includes_lshift64_p condition with
659         includes_rldic_lshift_p.
660         <ashldi3_internal 64 bit rldicr patterns>: New.
661
662 2001-08-27  Andreas Jaeger  <aj@suse.de>
663
664         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
665         * errors.c: Likewise.
666         * final.c: Likewise.
667         * dwarf2asm.c: Likewise.
668         * doprint.c (checkit): Likewise.
669         * diagnostic.c: Likewise.
670         * collect2.c: Likewise.
671         * calls.c: Likewise.
672         * c-semantics.c (build_stmt): Likewise.
673         * c-format.c (status_warning): Likewise.
674         * c-errors.c (pedwarn_c99): Likewise.
675         * builtins.c (validate_arglist): Likewise.
676         * config/pj/pj.c (pj_printf): Likewise.
677         * fix-header.c: Likewise.
678         * gcc.c: Likewise.
679         * gcov.c (fnotice): Likewise.
680         * gensupport.c (message_with_line): Likewise.
681         * mips-tfile.c: Likewise.
682         * protoize.c (notice): Likewise.
683         * read-rtl.c (fatal_with_file_and_line): Likewise.
684         * rtl-error.c: Likewise.
685         * tradcpp.c: Likewise.
686         * tree.c: Likewise.
687         * cp/tree.c (build_min_nt): Likewise.
688         (build_min): Likewise.
689         * cp/lex.c: Likewise.
690         * cp/errfn.c: Likewise.
691         * cp/rtti.c (create_pseudo_type_info): Likewise.
692
693 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
694
695         * df.c (df_uses_record): Return after recording all uses
696         in ASM_OPERANDS.
697
698 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
699
700         * df.c (df_insn_modify): Realloc the INSN table here, if
701         necessary, here, too.
702
703 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
704
705         * config/mips/mips.c (mips_function_value): Handle complex return
706         values.
707
708 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
709
710         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
711         unshared.
712         * reload.c (make_memloc): Copy result if it is still
713         reg_equiv_memory_loc[regno] on return.
714         (subst_reloads) [ENABLE_CHECKING]: Check that none of
715         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
716         reg_equiv_mem are modified by the substitutions.
717
718 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
719
720         * predict.c (expensive_function_p): New.
721         * rtl.h (expensive_function_p): Declare.
722         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
723         (use_fast_prologue_epilogue): New static variable.
724         (expand_prologue): Set it; emit short prologues if unset.
725         (expand_epilogue): Likewise.
726
727 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
728
729         * config.gcc: Add stormy16-*-elf case.
730         * config/stormy16/stormy-abi: New file.
731         * config/stormy16/stormy16-lib2.c: New file.
732         * config/stormy16/stormy16-protos.h: New file.
733         * config/stormy16/stormy16.c: New file.
734         * config/stormy16/stormy16.h: New file.
735         * config/stormy16/stormy16.md: New file.
736         * config/stormy16/t-stormy16: New file.
737
738 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
739
740         * i386.h (no-accumulate-outgoing-args): Use proper mask.
741
742 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
743
744         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
745         descriptor members are pointer size, not constant 4.
746         * config/rs6000/rs6000.md (define_splits): Remove more unused
747         constraints.
748
749 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
750
751         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
752
753 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
754
755         * cp/rtti.c (VPARAMS): Fix parameter.
756
757 2001-08-24  Zack Weinberg  <zackw@panix.com>
758
759         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
760         to zero.
761         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
762         to switch.
763         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
764         in if controlling use of insv.
765         (extract_bit_field): Likewise, for extv and extzv.
766
767 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
768
769         * i386.md (movcc peep2): Fix load of 0.
770
771 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
772
773         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
774         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
775
776 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
777
778         * c-pragma.h: Move weak_syms and weak_decls...
779         * varasm.c: ...here.  Now static.
780         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
781         depend on HANDLE_PRAGMA_WEAK.
782
783         * c-common.c (c_alignof, c_alignof_expr): Move here...
784         * c-typeck.c: ...from here.
785         * c-tree.h, c-common.h: Adjust.
786
787 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
788
789         * config/ia64/ia64.c (rws_update): If !pred, set write_count
790         instead of incrementing it.
791
792         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
793         asm ready, don't try to move them all into the same array element.
794
795 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
796
797         * function.c (thread_prologue_and_epilogue_insns): Avoid
798         fallthru flag on edge to exit.
799
800         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
801
802         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
803         dead edges.
804
805 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
806
807         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
808         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
809         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
810         Remove prototype.
811
812 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
813
814         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
815         replace "GNU CC" with "GCC".
816
817 2001-08-23  Richard Henderson  <rth@redhat.com>
818
819         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
820         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
821         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
822         Need GR between FR and not GR_AND_FR.
823         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
824         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
825         AR regs before GR regs.
826         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
827         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
828         (REGISTER_MOVE_COST): Update.
829         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
830
831 2001-08-23  Richard Henderson  <rth@redhat.com>
832
833         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
834         a register class.
835
836 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
837
838         * reload1.c (emit_reload_insns): Don't look for notes
839         on a NULL store_insn.
840
841 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
842
843         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
844         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
845         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
846         format specifier warnings.
847         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
848
849 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
850
851         * config/i386/i386-protos.h: Correct declaration of
852         i386_pe_asm_named_section.
853
854 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
855
856         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
857         variable i.
858         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
859
860 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
861
862         * cpperror.c (print_location): Don't show _Pragma.
863         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
864         and file change callback generation here.
865         (stack_include_file): Update use of cpp_push_buffer.
866         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
867         (struct cpp_buffer): Remove type, pfile members.
868         * cppinit.c (cpp_handle_option): Use free_chain.
869         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
870         (skip_escaped_newlines, get_effective_char, lex_percent): Take
871         a cpp_reader rather than a cpp_buffer.
872         (skip_escaped_newlines, get_effective_char, skip_block_comment,
873         skip_line_comment, parse_string, lex_percent, lex_dot,
874         _cpp_lex_token): Update accordingly.
875         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
876         generation here.
877         (cpp_push_buffer): Update prototype.
878         (run_directive): Update use of cpp_push_buffer.
879         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
880         handle_assertion): Update use of run_directive.
881         * cpplib.h (enum cpp_buffer_type): Remove.
882         (cpp_push_buffer): Update prototype.
883         * fix-header.c (read_scan_file): Update.
884
885 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
886
887         * gcc.c (struct prefix_list): Change prefix to const char *.
888
889 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
890
891         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
892
893 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
894
895         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
896         from a new MEM.
897
898         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
899         a squeezable note.
900         * rtl.h: Adjust.
901         * ifcvt.c (dead_or_predicable): Adjust.
902         * loop.c (find_and_verify_loops): Adjust.
903         * stmt.c (expand_end_case): Adjust.
904         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
905         head and end insn pointers in the basic block, not just local copies.
906         (merge_blocks_move_predecessor_nojumps): Likewise.
907
908 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
909
910         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
911         bitmap.h, builtin-types.def, builtins.c, builtins.def,
912         c-aux-info.c, c-common.c, c-common.def, c-common.h,
913         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
914         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
915         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
916         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
917         conditions.h, config.gcc, configure.frag, configure.in,
918         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
919         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
920         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
921         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
922         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
923         emit-rtl.c, errors.c, errors.h, except.c, except.h,
924         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
925         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
926         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
927         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
928         gencheck.c, gencodes.c, genconfig.c, genemit.c,
929         genextract.c, genflags.c, gengenrtl.c, genmultilib,
930         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
931         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
932         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
933         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
934         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
935         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
936         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
937         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
938         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
939         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
940         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
941         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
942         params.h, predict.c, predict.def, predict.h, prefix.c,
943         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
944         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
945         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
946         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
947         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
948         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
949         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
950         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
951         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
952         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
953         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
954         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
955         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
956         xcoffout.h: replace "GNU CC" with "GCC".
957
958 2001-08-21  Richard Henderson  <rth@redhat.com>
959
960         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
961         (final_scan_insn): Consider jump tables data even if we have no
962         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
963         ADDR_VEC_ALIGN.
964         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
965         (ASM_OUTPUT_CASE_END): Remove.
966         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
967         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
968         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
969
970 2001-08-21  Richard Henderson  <rth@redhat.com>
971
972         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
973         at barrier insns.  Emit stop bits before barriers.
974
975         * flow.c (flow_find_cross_jump): Don't consider unconditional
976         return insns for commoning.
977
978         * final.c (compute_alignments): Fix typo.
979
980         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
981         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
982         (store_bit_field): Use mode_for_extraction more places.
983         (extract_bit_field): Likewise.
984
985 2001-08-21  Zack Weinberg  <zackw@panix.com>
986
987         * caller-save.c: Don't include insn-codes.h.
988         (reg_save_code, reg_restore_code): Make arrays of int.
989         All uses updated to match.
990         (insert_save, insert_restore): No need to initialize "code"
991         variable upon declaration.
992         * Makefile.in: update dependencies; fix typo in clean rule.
993
994 2001-08-21  Richard Henderson  <rth@redhat.com>
995
996         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
997         (merge_if_block): Handle fallout from same.
998
999 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1000
1001         * builtins.c (type_to_class): Fix typo in last change.
1002
1003 2001-08-21  Richard Henderson  <rth@redhat.com>
1004
1005         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
1006         ia64_asm_output_label.
1007
1008         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
1009         copy of gp while the real gp register contains garbage.
1010
1011 2001-08-21  Zack Weinberg  <zackw@panix.com>
1012
1013         * expmed.c (mode_for_extraction): New function.
1014         (store_bit_field, extract_bit_field): Use it.
1015         * expr.h: Prototype it and provide an enum for its first argument.
1016
1017         * combine.c, function.c, recog.c: Don't include insn-codes.h.
1018         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
1019         and digging through the insn_data tables.
1020         * Makefile.in: Update dependencies.
1021
1022 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1023
1024         * cppfiles.c (stack_include_file): line-map.c now handles include
1025         depth.
1026         (handle_missing_handler): Similarly.
1027         (_cpp_execute_include): Similarly.
1028         (_cpp_pop_file_buffer): Similarly.
1029         * cpphash.h (struct cpp_reader): Remove system_include_depth,
1030         buffer_stack_depth and include_depth.
1031         * cpplib.c (do_include_common): line-map.c now handles include depth.
1032         (cpp_push_buffer): Similarly.
1033         (_cpp_pop_buffer): Similarly.
1034         * cppmacro.c (builtin_macro): Update.
1035         * line-map.c (init_line_maps): Set depth.
1036         (add_line_map): Increment "used" earlier.  Update and use the
1037         include depth.
1038         (trace_include): Use the include depth.
1039         * line-map.h (struct line_maps): New member depth.
1040
1041 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1042
1043         * cppfiles.c (stack_include_file): Don't handle -H here.
1044         * cppinit.c (cpp_start_read): Set include tracing after
1045         cpp_post_options and after stacking the main file.
1046         * line-map.c (trace_include): New.
1047         (init_line_maps, add_line_map): Update.
1048         * line-map.h (struct line_maps): New member trace_includes.
1049
1050 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1051
1052         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
1053         * cppfiles.c (stack_include_file): Only stack a file if there
1054         is something to do.  Return a boolean indicating whether a
1055         buffer was stacked or not.
1056         (_cpp_execute_include): Similarly.
1057         (_cpp_read_file): Similarly.
1058         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
1059
1060 2001-08-21  Sam Steingold  <sds@gnu.org>
1061
1062         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
1063         (RECACHE): keep obufp_before_macroname up to date
1064
1065 2001-08-21  Zack Weinberg  <zackw@panix.com>
1066
1067         * stmt.c: Don't include insn-codes.h.
1068         (expand_end_case): Machine specific logic moved to expr.c.
1069         No need to worry about __builtin_classify_type.
1070         (check_for_full_enumeration_handling, emit_case_nodes):
1071         Kill #if 0 blocks.
1072
1073         * builtins.o (expand_builtin_classify_type): Split up so code
1074         can be shared with fold_builtin_classify_type.
1075         (type_to_class, fold_builtin_classify_type): New functions.
1076         (fold_builtins): Handle __builtin_classify_type.
1077
1078         * expr.c (do_tablejump): Now static.
1079         (case_values_threshold, try_casesi, try_tablejump): New;
1080         code mostly from stmt.c (expand_end_case).
1081         (expr.h): Update prototypes.
1082
1083         * Makefile.in (stmt.o): Update dependencies.
1084
1085 2001-08-21  Will Cohen  <wcohen@redhat.com>
1086
1087         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
1088         declaration of variable i.
1089         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
1090         declaration of variable i.
1091
1092 2001-08-21  Richard Henderson  <rth@redhat.com>
1093
1094         * crtstuff.c: Fix thinko last change.  Move list tails to start
1095         of CRT_END section.  Tidy ifdefs.
1096         (__EH_FRAME_BEGIN__): Always static for ELF.
1097         (__do_global_ctors_1): Rename from __frame_dummy.
1098         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
1099         name change; don't hide __EH_FRAME_BEGIN__.
1100
1101 2001-08-21  Richard Henderson  <rth@redhat.com>
1102
1103         * gdbinit.in: Move break on exit after break on fancy_abort.
1104
1105         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
1106         sized types.
1107
1108 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1109
1110         * cpphash.h (_cpp_push_next_buffer): New.
1111         * cppinit.c (do_includes): Remove.
1112         (push_include, free_chain, _cpp_push_next_buffer): New.
1113         (cpp_start_read): Use them to rework command line option handling.
1114         (cpp_handle_option): Combine handling of -include and -imacros.
1115         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
1116         appropriate.  Always insert missing \n at EOF.
1117         * cpplib.c (start_directive): Get the directive position right.
1118         * cppmain.c (cb_file_change): Always print the first line, unless
1119         preprocessed.
1120
1121 2001-08-20  Andreas Jaeger  <aj@suse.de>
1122
1123         * profile.c (compute_branch_probabilities): Remove extra new-line
1124         in error message.
1125         * flow.c (verify_flow_info): Likewise.
1126
1127 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
1128
1129         * basic-block.h (basic_block): Add new field 'flags'.
1130         (BB_REACHABLE): Define.
1131         (expunge_block): Declare.
1132         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
1133         (EXIT_BLOCK_PTR): Ditto.
1134         (expunge_block): Remove static declaration.
1135         (cleanup_cfg): Clear bb->aux on every basic block.
1136         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
1137         computing reachability.
1138         (delete_unreachable_blocks): Delete block b if b->flags has
1139         BB_REACHABLE unset.
1140
1141 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
1142
1143         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
1144
1145 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1146
1147         * sparc.c (sparc_variable_issue): Fix typo in last change.
1148
1149 2001-08-20  Richard Henderson  <rth@redhat.com>
1150
1151         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
1152
1153 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1154
1155         * pa.h (RETURN_IN_MEMORY): Improve comment.
1156
1157 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
1158
1159         * doc/invoke.texi (Profiling options): Clarify the interactions
1160         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
1161
1162 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
1163
1164         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
1165         command.
1166
1167 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1168
1169         * gcc.c (make_relative_prefix): Allocate a sufficiently large
1170         buffer.
1171
1172 2001-08-20  Richard Henderson  <rth@redhat.com>
1173
1174         * final.c (end_final): Fix typo last change.
1175
1176 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1177
1178         * cppinit.c (init_standard_includes): The returned buffer
1179         is already malloc-ed.
1180         * gcc.c (add_prefix): Similarly.
1181         * prefix.c (translate_name): Update to support clear buffer
1182         ownership rules.
1183         (update_path): Similarly.  Be sure to free any newly allocated
1184         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
1185         (tr): New function.
1186         * prefix.h (update_path): Update prototype and document.
1187         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
1188         up and update to new buffer ownership rules.
1189         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
1190
1191 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
1192
1193         * final.c (compute_alignments): New function.
1194         (init_insn_lengths): Do not care label_align.
1195         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
1196         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
1197         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
1198         (shorted_branches): Realloc label_align array; do
1199         not call init_insn_lengths; Do not care about loop alignments.
1200         * output.h (compute_alignments): Declare.
1201         * toplev.c (rest_of_compilation): Call compute_alignments.
1202         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
1203
1204         * predict.c (block_info_def): Add npredecesors, remove nvisited;
1205         change visited to tovisit.
1206         (propagate_freq): Use faster traversing algorithm.
1207         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
1208         to tovisit; reverse meaning.
1209
1210         * predict.c (struct block_info_def): Remove nvisited.
1211         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
1212         (estimate_bb_frequencies): Call mark_dfs_back_edges.
1213
1214 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
1215
1216         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
1217         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
1218         (TARGET_FUSED_MADD): New.
1219         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
1220         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
1221         the multiply-add instructions.
1222
1223 2001-08-19  Richard Henderson  <rth@redhat.com>
1224
1225         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
1226         is aligned to pointer size.
1227
1228 2001-08-19  Richard Henderson  <rth@redhat.com>
1229
1230         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
1231         display markers during final schedule.
1232
1233 2001-08-19  Richard Henderson  <rth@redhat.com>
1234
1235         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
1236
1237 2001-08-19  Richard Henderson  <rth@redhat.com>
1238
1239         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
1240         in the same string.
1241         (ASM_NAME_TO_STRING): Remove.
1242         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
1243         in the same string.  Remove support for expressions.
1244
1245 2001-08-19  Richard Henderson  <rth@redhat.com>
1246
1247         * config/i386/i386.md (tablejump): Make an expander; handle
1248         pic relative addressing here.
1249         (tablejump_1): Rename from tablejump_pic.
1250         (casesi): Remove.
1251
1252 2001-08-19  Richard Henderson  <rth@redhat.com>
1253
1254         * regclass.c (fix_register): Fix typo.
1255
1256 2001-08-18  Richard Henderson  <rth@redhat.com>
1257
1258         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
1259         (struct _Unwind_Context): Expand br_loc to hold it.
1260         (uw_frame_state_for): Handle leaf functions better.
1261         (uw_update_reg_address): Update for br_loc change.
1262
1263 2001-08-18  Richard Henderson  <rth@redhat.com>
1264
1265         * crtstuff.c: Move list heads before code that uses them.
1266         (__JCR_LIST__): Remove initial null.
1267         (frame_dummy, __frame_dummy): Do java registration here ...
1268         (__do_global_ctors_aux): ... not here.
1269
1270         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
1271         (__do_global_dtors_aux): Update to match.
1272         (__JCR_LIST__, __do_jv_register_classes): New.
1273         (.init): Call it.
1274         * config/ia64/crtend.asm (__JCR_END__): New.
1275         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
1276         instead of an indirect LTOFF22 reloc.
1277
1278 2001-08-18  Richard Henderson  <rth@redhat.com>
1279
1280         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
1281         * regclass.c (init_reg_sets_1): Fix typo.
1282         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
1283         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
1284         (ia64_compute_frame_size): Make ar.unat live when in use.
1285         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
1286         for ar.pfs; remove ar.unat handling.
1287         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
1288         call-saved.
1289         (PREDICATE_CODES): Add ar_pfs_reg_operand.
1290         * config/ia64/ia64-protos.h: Update decls.
1291         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
1292         (sibcall_pic): Likewise.
1293
1294 2001-08-18  Richard Henderson  <rth@redhat.com>
1295
1296         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
1297         pred_rel_mutex when searching for insn_group_barrier.
1298         * config/ia64/ia64.md (cycle_display): Combine the expander
1299         and insn patterns.
1300
1301         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
1302         bit before asm as needed.
1303
1304 2001-08-18  Richard Henderson  <rth@redhat.com>
1305
1306         * timevar.def (TV_MACH_DEP): New.
1307         * toplev.c (rest_of_compilation): Use it.
1308         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
1309
1310 2001-08-18  Zack Weinberg  <zackw@panix.com>
1311
1312         * unwind-dw2.c (execute_stack_op): Add default aborts to
1313         the inner switches to prevent warnings.
1314
1315 2001-08-18  Richard Henderson  <rth@redhat.com>
1316
1317         * timevar.h (struct timevar_time_def): Change element type to float.
1318         (ticks_to_msec, clocks_to_msec): Likewise.
1319         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
1320         (get_time): Likewise.
1321         (timevar_print): Adjust zero check and printing to match.
1322
1323 2001-08-18  Zack Weinberg  <zackw@panix.com>
1324
1325         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
1326         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
1327         Eliminate overfull or underfull hboxes.
1328
1329 2001-08-18  Zack Weinberg  <zackw@panix.com>
1330
1331         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
1332
1333 2001-08-18  Zack Weinberg  <zackw@panix.com>
1334
1335         * haifa-sched.c: Convert to target hooks.  Macros replaced
1336         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
1337         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
1338         MD_SCHED_FINISH, and HAVE_cycle_display.
1339         * target-def.h (TARGET_SCHED_ADJUST_COST,
1340         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
1341         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
1342         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
1343         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
1344         New hook #defines to be overridden.
1345         (TARGET_SCHED): Bring them all together.
1346         (TARGET_INITIALIZER): Update.
1347         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
1348         instead of 'struct rtx_def *' throughout.
1349         (struct sched): New set of hooks for the scheduler.
1350         * Makefile.in (haifa-sched.o): Depend on target.h.
1351         * doc/tm.texi: Document the new scheduler hooks, together in
1352         their own section, instead of scattered around.
1353         Fix a bunch of underfull/overfull hboxes.
1354
1355         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
1356         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
1357         sparc.h: Don't define any of the old scheduler macros.
1358
1359         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
1360         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
1361         sparc.c: Create hook functions from code extracted from
1362         corresponding target header, or make existing hooks static, as
1363         appropriate.  Set the appropriate entries in targetm.
1364
1365         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
1366         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
1367         rs6000-protos.h, s390-protos.h, sparc-protos.h:
1368         Remove prototypes for functions which are now static.
1369
1370         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
1371         related gunk; the Haifa scheduler is now the only choice.
1372
1373 2001-08-18  Zack Weinberg  <zackw@panix.com>
1374
1375         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
1376         * genopinit.c: Put floating point divide insns in sdiv_optab.
1377         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
1378         * config/gofast.h, config/c4x/c4x.h,
1379         config/ia64/hpux_longdouble.h, config/mips/mips.h,
1380         config/pa/long_double.h, config/rs6000/sysv4.h,
1381         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
1382         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
1383         (init_optabs): Use init_optabv for overflow-trapping optabs.
1384         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
1385         cmp_optab RTX codes so have_insn_for can find them.
1386
1387         * optabs.c (expand_simple_binop, expand_simple_unop,
1388         have_insn_for, gen_sub3_insn): New interfaces.
1389         * expr.h: Prototype new functions.
1390         (enum optab_methods): Move here from optabs.h.
1391
1392         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
1393         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
1394         Use new functions instead of working directly with optabs.
1395         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
1396         unroll.c: Don't include optabs.h.
1397         * caller-save.c, combine.c, function.c, stmt.c: Just include
1398         insn-codes.h, not optabs.h.
1399         * Makefile.in: Update dependencies.
1400
1401         * combine.c (make_compound_operation, simplify_comparison):
1402         Fix typos testing for this or that instruction.
1403
1404 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
1405
1406         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
1407         generating libgcc.a.
1408
1409 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1410
1411         * except.c (TYPE_HASH): Delete.
1412
1413         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
1414         HOST_WIDE_INT.
1415
1416         * tree.c (TYPE_HASH): Delete.
1417
1418         * tree.h (TYPE_HASH): Define.
1419
1420 2001-08-18  Graham Stott  <grahams@redhat.com>
1421
1422         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
1423         define_split.
1424         (adddi3_internal_2+2): Likewise.
1425         (eh_set_lr_di+1): Likewise.
1426
1427 2001-08-17  Richard Henderson  <rth@redhat.com>
1428
1429         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
1430         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
1431         * dwarf2asm.c: ... here.
1432         * dwarfout.c: Remove them.
1433
1434         * varasm.c (assemble_integer): Add align parameter.
1435         (assemble_real, output_constant, output_constructor): Likewise.
1436         * output.h: Update decls.
1437         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
1438         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
1439         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
1440         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
1441         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
1442         Update all callers.
1443
1444         * final.c (end_final): Abort profile block generation if we
1445         havn't layed it out properly.
1446         * output.h (assemble_eh_integer): Remove stale decl.
1447         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
1448         (min_align): New.
1449         (assemble_integer): Handle unaligned data.
1450         (assemble_real): Abort on unaligned data.
1451         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
1452         anything useful.
1453         (default_dtor_section_asm_out_destructor): Use assemble_align.
1454         (default_named_section_asm_out_constructor): Likewise.
1455         (default_ctor_section_asm_out_constructor): Likewise.
1456         * config/darwin.c (machopic_asm_out_constructor): Likewise.
1457         (machopic_asm_out_destructor): Likewise.
1458         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
1459         (nextstep_asm_out_destructor): Likewise.
1460         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
1461         (vms_asm_out_destructor): Likewise.
1462
1463 2001-08-17  Richard Henderson  <rth@redhat.com>
1464
1465         * config/mips/iris6.h (TARGET_IRIX6): New.
1466         (current_section_name, current_section_flags): New.
1467         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
1468         (MAX_OFILE_ALIGNMENT): New.
1469         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
1470         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
1471         (copy_file_data): Split out from
1472         (mips_asm_file_end): ... here.
1473         (mips_asm_file_start): Remove extra .section directive.  Use
1474         tmpfile instead of mips_make_temp_file.
1475         (mips_unique_section): Use const char * as needed for warnings.
1476         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
1477         re-add align parameter.
1478         (iris6_asm_named_section): New.
1479         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
1480         (iris6_asm_output_align, iris6_section_align_1): New.
1481         (iris6_asm_file_start, iris6_asm_file_end): New.
1482         * config/mips/mips-protos.h: Update decls.
1483
1484 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
1485
1486         * doc/install.texi (Install GCC): Add links to build status pages.
1487         (Specific): Ditto.
1488         (Final install): Ditto; request updates for specific info
1489
1490 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1491
1492         * cpperror.c (print_location):  Don't take a file name; use the
1493         line map instead.
1494         (_cpp_begin_message): Similarly.
1495         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
1496         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
1497         (cpp_pedwarn_with_file_and_line): Remove.
1498         * cppfiles.c (stack_include_file): Update; set filename to stdin
1499         here when appropriate.
1500         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
1501         (_cpp_begin_message): Don't take a file name.
1502         * cppinit.c: Add comment.
1503         * cpplex.c: Fix end-of-directive indicator.
1504         * cpplib.c: Don't include intl.h.
1505         (run_directive, do_diagnostic): Update.
1506         (do_line): Update to not use nominal_fname.
1507         (cpp_push_buffer): Don't take a filename.
1508         * cpplib.h (struct ht): Remove.
1509         (cpp_push_buffer): Don't take a filename.
1510         (cpp_pedwarn_with_file_and_line): Remove.
1511         * cppmacro.c (struct cpp_macro): Remove file.
1512         (builtin_macro): Update.
1513         (_cpp_create_definition): Update.
1514         * cppmain.c: Correct comment.
1515         * fix-header.c (read_scan_file): Update.
1516
1517 2001-08-17  Kazu Hirata  <kazu@hxi.com>
1518
1519         * sbitmap.c: Fix comment formatting.
1520         * sched-deps.c: Likewise.
1521         * sibcall.c: Likewise.
1522         * simplify-rtx.c: Likewise.
1523         * ssa.c: Likewise.
1524         * ssa-ccp.c: Likewise.
1525         * stor-layout.c: Likewise.
1526         * timevar.c: Likewise.
1527         * toplev.c: Likewise.
1528         * unwind-dw2.c: Likewise.
1529         * unwind-dw2-fde.c: Likewise.
1530         * varasm.c: Likewise.
1531
1532 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1533
1534         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
1535         or larger than an integer in memory.
1536
1537 2001-08-17  Zack Weinberg  <zackw@panix.com>
1538
1539         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
1540         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
1541         * rtl.h: Don't forward-declare union tree_node here.  Don't
1542         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
1543         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
1544         and tree respectively.
1545         * tree.h: Don't forward-declare struct rtx_def here.  Don't
1546         typedef tree here.  Change all uses of struct rtx_def *,
1547         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
1548         and tree respectively.
1549
1550 2001-08-17  Richard Henderson  <rth@redhat.com>
1551
1552         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
1553         config/mips/openbsd.h: Fix typos last change.
1554
1555 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1556
1557         * doc/invoke.texi (Optimize Options): The default for
1558         -finline-limit is 600.
1559
1560 2001-08-17  Richard Henderson  <rth@redhat.com>
1561
1562         * varasm.c (text_section): Allow TEXT_SECTION to override the
1563         printing of TEXT_SECTION_ASM_OP.
1564         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
1565         (DATA_SECTION, BSS_SECTION): Remove.
1566         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
1567         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
1568         Rename from s/_NAME//.
1569         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
1570         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
1571         (TEXT_SECTION): ... here.  New.
1572         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
1573         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
1574         * config/mips/openbsd.h: Likewise.
1575         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
1576         (mips_asm_file_end): Likewise test.
1577         (mips_output_function_epilogue): Likewise.  Switch back to data
1578         section after emitting the function.
1579
1580         * doc/tm.texi (Sections): Document TEXT_SECTION.
1581
1582 2001-08-17  Richard Henderson  <rth@redhat.com>
1583
1584         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
1585         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
1586
1587 2001-08-17  Richard Henderson  <rth@redhat.com>
1588
1589         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
1590         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
1591         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
1592         Add aligned attribute.
1593
1594 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
1595
1596         * config/sh/sh.md: Add modes to unspecs in first insn to match
1597         those in the second.
1598
1599         * Makefile.in: Fix collect2 copy for Cygwin.
1600
1601 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
1602
1603         Install the proper patch.
1604         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
1605         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
1606         (expand_function_start): Likewise.
1607         * stmt.c (expand_decl): Likewise.
1608         * varasm.c (make_decl_rtx): Likewise.
1609
1610 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
1611
1612         * final.c: Undo my previous accidental checkin.
1613         * output.h: Likewise.
1614         * tm.texi: Likewise.
1615
1616 2001-08-16  Richard Henderson  <rth@redhat.com>
1617
1618         * varasm.c (named_section_flags): Remove align parameter.
1619         * varasm.c, dwarf2out.c: Update all callers.
1620         * output.h: Update prototypes.
1621
1622         * target.h (target.asm_out.named_section): Remove align parameter.
1623         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
1624         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
1625         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
1626         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
1627         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
1628
1629         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
1630         (get_named_section_flags, set_named_section_flags): New.
1631         (named_section_flags): Use them.
1632         (named_section): Do decl vs section flags check here...
1633         (default_section_type_flags): ... not here.
1634         (init_varasm_once): Create in_named_htab.
1635         (resolve_unique_section): Mark reloc unused.
1636
1637 2001-08-16  Richard Henderson  <rth@redhat.com>
1638
1639         * varasm.c (force_const_mem): Keep pool alignment in bits.
1640         (output_constant_pool): Use assemble_align.
1641
1642 2001-08-16  Zack Weinberg  <zackw@panix.com>
1643
1644         * doc/tm.texi: Remove extra @table command.
1645
1646 2001-08-16  Zack Weinberg  <zackw@panix.com>
1647
1648         * final.c (shorten_branches): Clear the end of the label_align
1649         array only if we made it larger.  Break up messy expressions
1650         for clarity.
1651
1652         * diagnostic.c (internal_error): Check for error recursion
1653         before doing ICE suppression.
1654
1655         * timevar.c: Timing variables now count in milliseconds.
1656         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
1657         (get_time): Not here.
1658         (timevar_print): Don't print any timer whose user, cpu, and
1659         wall times are all zero as displayed.
1660         * timevar.h: Update comment aboout units.  Make timevar
1661         counters unsigned.
1662
1663 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
1664
1665         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
1666         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
1667         (expand_function_start): Likewise.
1668         * stmt.c (expand_decl): Likewise.
1669         * varasm.c (make_decl_rtx): Likewise.
1670
1671 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
1672
1673         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
1674         (finalize_record_size): Don't set TYPE_USER_ALIGN.
1675
1676 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1677
1678         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
1679         variables.
1680
1681 2001-08-16  Andreas Jaeger  <aj@suse.de>
1682
1683         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
1684         prototype.
1685
1686 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
1687
1688         * rtl.h (only_sets_cc0_p): New prototype.
1689         * jump.c (sets_cc0_p): Handle INSN.
1690         (only_sets_cc0_p): New function.
1691         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
1692         (tidy_fallthru_edge): Likewise.
1693         * integrate.c (copy_insn_list): Likewise.
1694         * unroll.c (unroll_loop): Likewise.
1695         (copy_loop_body): Likewise.
1696
1697 2001-08-15  Jason Eckhardt  <jle@redhat.com>
1698
1699         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
1700
1701 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
1702
1703         * predict.c (struct block_info_def): Remove nvisited.
1704         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
1705         (estimate_bb_frequencies): Call mark_dfs_back_edges.
1706
1707         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
1708         (ix86_adjust_cost): Teach scheduler that latency to load operand can
1709         be masked.
1710
1711 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
1712
1713         * predict.def: Update hitrates.
1714
1715 2001-08-15  Richard Henderson  <rth@redhat.com>
1716
1717         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
1718
1719 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
1720
1721         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
1722         note from its associated jump.
1723
1724 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
1725
1726         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
1727         also on 64-bit s390x targets.
1728
1729 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
1730
1731         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
1732         function.
1733         (arm_expand_prologue): Handled nested functions which take a
1734         variable argument list.
1735         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
1736         macro with an invocation of
1737         arm_compute_initial_elimination_offset.
1738         * config/arm/arm-protos.h: Prototype
1739         arm_compute_initial_elimination_offset.
1740
1741 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1742
1743         * doc/install.texi (Specific, avr): Fix markup.
1744         (Specific, c4x): Ditto.
1745
1746 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1747
1748         * predict.c (dump_prediction): Change `bool' parameter to `int'.
1749
1750 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
1751
1752         * Makefile.in (OBJS): Add rtl-error.o
1753         (rtl-error.o): New rule.
1754         (diagnostic.o): Adjust dependency.
1755         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
1756         error_for_asm, _fatal_insn, _fatal_insn_not_found,
1757         warning_for_asm): Move to...
1758         rtl-error.c: ...here.  New file.
1759
1760 2001-08-14  Richard Henderson  <rth@redhat.com>
1761
1762         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
1763         if USING_SJLJ_EXCEPTIONS.
1764
1765 2001-08-14  Steve Ellcey <sje@cup.hp.com>
1766
1767         * tlink.c (scan_linker_output): Check string for unsatisfied in
1768         addition to undefined and unresolved.
1769
1770 2001-08-14  Graham Stott  <grahams@redhat.com>
1771
1772         * libgcc2.c (*): Replace EH_FRAME_SECTION with
1773         EH_FRAME_SECTION_NAME.
1774
1775 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
1776
1777         * genattrtab.c (simplify_test_exp_in_temp): New function.
1778         (simplify_test_exp): Avoid explicit use of temporary obstack.
1779         (simplify_cond, insert_right_side, evaluate_eq_attr,
1780         simplify_and_tree, simplify_or_tree, eliminate_known_true):
1781         Use simplify_test_exp_in_temp.
1782         (optimize_attrs): Iterate until expression stabilizes.
1783
1784 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
1785
1786         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
1787         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
1788
1789 2001-08-13  Richard Henderson  <rth@redhat.com>
1790
1791         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
1792         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
1793         * config/arm/conix-elf.h: Likewise.
1794
1795 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
1796
1797         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
1798         in gcc.c.
1799         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
1800
1801         * gcse.c (hash_scan_set): Expressions that are set as part of
1802         jump instructions are not available.
1803
1804 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
1805
1806         * config/s390/s390.c (print_operand, s390_function_prologue,
1807         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
1808
1809 2001-08-13  Richard Henderson  <rth@redhat.com>
1810
1811         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
1812         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
1813         * doc/tm.texi (Exception Region Output): Document it.
1814
1815 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
1816
1817         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
1818         DWARF2 instead of stabs by default.
1819
1820 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
1821
1822         * config/rs6000/rs6000.c: Include optabs.h.
1823
1824 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
1825
1826         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
1827         save/restore routines.
1828         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
1829
1830 2001-08-13  Andreas Jaeger  <aj@suse.de>
1831
1832         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
1833         the english is correct.
1834
1835 2001-08-13  Zack Weinberg  <zackw@panix.com>
1836
1837         * expr.h: Split out optab- and libfunc-related code to...
1838         * optabs.h, libfuncs.h: ... these new headers.
1839
1840         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
1841         (OPTABS_H): New.
1842         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
1843         dependencies.
1844         * mkconfig.sh: Don't include insn-codes.h from config.h.
1845
1846         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
1847         enum insn_code is available.  Move reload_in_optab and
1848         reload_out_optab array declarations to optabs.h.
1849         * regmove.c (gen_add3_insn): Move to optabs.c, export from
1850         there, prototype in expr.h.
1851         * gencodes.c: Cleanup: zap global variables, don't use
1852         printf where puts will do, don't bother defining MAX_INSN_CODE
1853         which nothing uses, let CODE_FOR_nothing get its value implicitly.
1854
1855         * genemit.c, genopinit.c: Include optabs.h in generated file.
1856         * genoutput.c: Include insn-codes.h in generated file.
1857         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
1858         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
1859         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
1860         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
1861         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
1862         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
1863         Include optabs.h.
1864         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
1865         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
1866         config/m88k/m88k.c, config/sparc/sparc.c:
1867         Include libfuncs.h.
1868         * reload.c: Include expr.h and optabs.h before reload.h.
1869         * config/alpha/alpha.c: Include tree.h before reload.h.
1870         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
1871         and reload.h in that order.
1872         * config/sparc/sparc.c: Include debug.h.
1873         * recog.c: Include insn-codes.h.
1874
1875 2001-08-13  Andreas Jaeger  <aj@suse.de>
1876
1877         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
1878         s390*linux.
1879
1880 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1881
1882         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
1883         * gcc.c (init_spec): Fix typo in comment.
1884         * varasm.c (data_section): Fix typo in comment.
1885
1886 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
1887
1888         * predict.c (dump_prediction): New argument "USED".
1889         (combine_predictions_for_insn): Determine the used heuristics,
1890         output the case no heuristic applied.
1891         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
1892
1893 2001-08-13  Andreas Jaeger  <aj@suse.de>
1894
1895         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
1896         register %rip.
1897
1898 2001-08-13  Kazu Hirata  <kazu@hxi.com>
1899
1900         * jump.c: Fix formatting.
1901
1902 2001-08-13  Kazu Hirata  <kazu@hxi.com>
1903
1904         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
1905         length.
1906
1907 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
1908
1909         * loop.c (check_dbra_loop): Use condjump_label to compute
1910         jump_label.
1911
1912         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
1913         to better document the files they're in.
1914
1915 2001-08-12  Zack Weinberg  <zackw@panix.com>
1916
1917         * recog.h (struct insn_operand_data): Shrink 'mode' field
1918         to 16 bits.
1919
1920 2001-08-12  Kazu Hirata  <kazu@hxi.com>
1921
1922         * gcc.c: Fix comment formatting.
1923         * gccspec.c: Likewise.
1924         * gcov.c: Likewise.
1925         * gcse.c: Likewise.
1926         * genemit.c: Likewise.
1927         * gengenrtl.c: Likewise.
1928         * genrecog.c: Likewise.
1929         * gensupport.c: Likewise.
1930         * ggc-page.c: Likewise.
1931         * global.c: Likewise.
1932         * graph.c: Likewise.
1933         * ifcvt.c: Likewise.
1934         * integrate.c: Likewise.
1935         * lcm.c: Likewise.
1936         * libgcc2.c: Likewise.
1937         * loop.c: Likewise.
1938         * mbchar.c: Likewise.
1939         * optabs.c: Likewise.
1940         * predict.c: Likewise.
1941         * prefix.c: Likewise.
1942         * profile.c: Likewise.
1943         * protoize.c: Likewise.
1944         * real.c: Likewise.
1945         * recog.c: Likewise.
1946         * regclass.c: Likewise.
1947         * regmove.c: Likewise.
1948         * reg-stack.c: Likewise.
1949         * reload1.c: Likewise.
1950         * resource.c: Likewise.
1951         * rtlanal.c: Likewise.
1952         * rtl.c: Likewise.
1953
1954 2001-08-12  Kazu Hirata  <kazu@hxi.com>
1955
1956         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
1957         a tree representing a constant is passed to the macro.
1958
1959 2001-08-12  Richard Henderson  <rth@redhat.com>
1960
1961         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
1962         (rs6000_elf_asm_out_destructor): New.
1963         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
1964         (DTORS_SECTION_ASM_OP): Remove.
1965         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1966         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
1967
1968 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
1969
1970         Revert:
1971         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1972         * gcc.c (set_collect_gcc_options): New function, split out from
1973         main.
1974         Ignore elided switches.
1975         (do_spec_1): Invoke before executing command.
1976         (set_input): Export.
1977         Move declaration ...
1978         * gcc.h (set_input): ... here.
1979         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
1980         file.
1981
1982 2001-08-12  Richard Henderson  <rth@redhat.com>
1983
1984         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
1985         thinko wrt TARGET_RELOCATABLE.
1986
1987 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1988
1989         * fix-header.c (cb_file_change): Update prototype.
1990
1991 2001-08-11  Zack Weinberg  <zackw@panix.com>
1992
1993         * toplev.c (set_float_handler): Make static.
1994         * toplev.h: Don't prototype set_float_handler.
1995
1996         * simplify-rtx.c: Don't include setjmp.h.
1997         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
1998         New functions.
1999         (simplify_unary_operation, simplify_binary_operation): Use them,
2000         via do_float_handler.
2001
2002         * fold-const.c: Don't include setjmp.h.
2003         (exact_real_inverse_1): New function.
2004         (exact_real_inverse): Use it, via do_float_handler.
2005
2006         * varasm.c: Don't include setjmp.h.
2007         (assemble_real_1): New function.
2008         (assemble_real): Use it, via do_float_handler.
2009         Call internal_error if we get a trap here.
2010
2011         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
2012         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
2013
2014 2001-08-11  Zack Weinberg  <zackw@panix.com>
2015
2016         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
2017         STACK_BOUNDARY if not already defined.
2018
2019         * calls.c, function.c, reload1.c, explow.c: Don't default
2020         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
2021         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
2022
2023         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
2024         to run-time test.
2025
2026         * doc/tm.texi: Document that STACK_BOUNDARY is required;
2027         clarify difference between it and PREFERRED_STACK_BOUNDARY.
2028
2029 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2030
2031         * cppmacro.c (enter_macro_context): Push macro expansions even
2032         if empty.
2033
2034 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2035
2036         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
2037         (rs6000_elf_section_type_flags): Actually return a value.
2038
2039 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
2040
2041         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
2042         Clean up code: add missing comments and prototypes, fix warnings,
2043         remove obsolete code, fix spacing to conform to coding style.
2044
2045 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
2046
2047         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
2048         and TARGET_ASM_CLOSE_PAREN.
2049         (regclass_map): CC register belongs to class NO_REGS.
2050         (legitimize_pic_address): Don't generate unnecessary moves
2051         (to avoid confusing loop optimization).
2052         (check_and_change_labels): Replace jump_long by indirect_jump.
2053         (s390_final_chunkify): Don't start a new literal pool on section
2054         switch in 64-bit code.
2055         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
2056
2057         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
2058         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
2059         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
2060         modes correctly.
2061         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
2062         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
2063         (CONST_COSTS): Fixed incorrect costs.
2064
2065         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
2066         Use emit_jump instead of emit_jump_insn (gen_jump).
2067         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
2068         (to avoid confusing flow analysis).
2069         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
2070         (casesi, casesi_jump): New.
2071         (jump_long): Removed.  Functionality merged into indirect_jump.
2072         (indirect_jump): Accept address_operand, not just register_operand.
2073         (cjump_long, icjump_long): Use same logic as indirect_jump.
2074         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
2075         Fixed broken setjmp/longjmp handling.
2076         (do_builtin_setjmp_setup): Removed.
2077
2078         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
2079         broken GNU as versions that don't accept .quad with large
2080         negative values.  Use hexadecimal output instead.
2081         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
2082         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
2083         FUNCTION_EPILOGUE): Removed.  Now in targetm.
2084
2085         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
2086
2087         * config/s390/fixdfdi.h: Add missing copyright statement.
2088         Fix type conflicts on 64-bit.  Add missing SFmode routines.
2089
2090         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
2091         email address.
2092
2093 2001-08-11  Richard Henderson  <rth@redhat.com>
2094
2095         * rtl.h (REG_EH_RETHROW): Remove.
2096         * rtl.c (reg_note_name): Update.
2097         * combine.c (distribute_notes): Don't check for it.
2098
2099 2001-08-11  Richard Henderson  <rth@redhat.com>
2100
2101         * combine.c (distribute_notes): Place REG_SETJMP.
2102
2103 2001-08-11  Richard Henderson  <rth@redhat.com>
2104
2105         * doc/extend.texi (Arrays and pointers implementation): Discourage
2106         relying on sign-extension of pointers.
2107
2108 2001-08-11  H.J. Lu <hjl@gnu.org>
2109
2110         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
2111         in_dtors.
2112         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
2113         RDATA_SECTION_ASM_OP.
2114
2115 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2116
2117         * doc/install.texi (Specific, c4x): Fix cross-reference to the
2118         main manual to work both for info and HTML versions.
2119
2120 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2121             Matt Kraai <kraai@alumni.carnegiemellon.edu>
2122
2123         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
2124         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
2125         (struct cpp_pool): New member first.
2126         * cppinit.c (append_include_chain): Plug memory leaks.
2127         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
2128         Allocate pragma structures from the (aligned) macro pool to
2129         avoid leaking memory.
2130         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
2131         so we don't leak memory.
2132         * hashtable.c (ht_destroy): New.
2133         * hashtable.h (ht_destroy): New.
2134
2135 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2136             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2137
2138         * c-lex.c (map): Make const.
2139         (cb_file_change): Update for callback passing a line map.
2140         Don't assume we have a previous map.  Remove sanity check
2141         about popping too many files.
2142         * cpperror.c (print_location): Make map const.
2143         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
2144         (cpp_make_system_header): Similarly.
2145         (search_from): Similarly.
2146         (_cpp_execute_include): Don't remember where we came from.
2147         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
2148         (struct cpp_reader): Make map const.
2149         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
2150         * cpplib.c (do_line): Update; line maps now hold sysp.
2151         (cpp_push_buffer): Similarly.
2152         (_cpp_do_file_change): Similarly; callback with map instead.
2153         (cpp_get_line_maps): Constify return value.
2154         (_cpp_pop_buffer): Update.
2155         * cpplib.h (struct cpp_file_change): Remove.
2156         (struct cpp_callbacks): Update.
2157         (cpp_get_line_maps): Constify return value.
2158         * cppmacro.c (_cpp_create_definition): Update.
2159         * cppmain.c (struct printer): Constify map.
2160         (maybe_print_line): Similarly.
2161         (print_line): Similarly.  Deduce flags 1 and 2 here.
2162         (cb_file_change): Update.
2163         * line-map.c (free_line_maps): Warn regardless.
2164         (add_line_map): Return pointer to const.  When passed NULL to_file
2165         with LC_LEAVE, use the obvious values for the return point so the
2166         caller doesn't have to figure them out.
2167         (lookup_line): Return pointer to const.
2168         (print_containing_files): Take pointer to const.
2169         * line-map.h (struct line_map): New members reason, sysp.
2170         (add_line_map): Return pointer to const.
2171         (lookup_line): Similarly.
2172         (print_containing_files): Take pointer to const.
2173
2174 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
2175             Richard Henderson  <rth@redhat.com>
2176
2177         * regmove.c (regmove_optimize): Avoid setting a register twice in
2178         a parallel set.
2179
2180 2001-08-10  Richard Henderson  <rth@redhat.com>
2181
2182         * doc/extend.texi (Arrays and pointers implementation): Document
2183         behavior of pointer/integer conversion.
2184
2185 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
2186
2187         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
2188
2189 2001-08-10  Richard Henderson  <rth@redhat.com>
2190
2191         * doc/extend.texi (C Implementation): New chapter.
2192         * doc/gcc.texi (Top): Link it in.
2193
2194 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
2195
2196         * doc/install.texi (Specific): Fix CVS merge botch.
2197
2198 2001-08-10  Richard Henderson  <rth@redhat.com>
2199
2200         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
2201         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
2202
2203 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
2204
2205         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
2206         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
2207         this macro is now required.
2208
2209         * cselib.c (cselib_process_insn), flow.c (propagate_block),
2210         loop.c (find_and_verify_loops), reload.c (reload): Check
2211         for rtx code of CALL_INSN, not CALL, when deciding if we
2212         need to check for REG_SETJMP note.
2213
2214         * gcse.c (compute_hash_table, compute_store_table): Update
2215         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
2216         logic.
2217
2218         * config/avr/avr.c: Fix typo.
2219         * config/convex/convex.c (expand_movstr): Use adjust_address.
2220         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
2221         variable.
2222         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
2223         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
2224         Fix typo.
2225         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
2226         Do define STACK_BOUNDARY.
2227         * config/i370/i370.c: Include expr.h.
2228         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
2229         config/pa/som.h, config/v850/v850.h: Take in_ctors and
2230         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
2231         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
2232         * config/m88k/m88k.c: Include c-tree.h after expr.h.
2233         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
2234         * config/romp/romp.c: Include expr.h after tree.h.
2235         Include toplev.h.
2236         (output_fpop): Use xmalloc, not oballoc.
2237         * config/we32k/we32k.c: Include expr.h.
2238
2239 2001-08-10  Kazu Hirata  <kazu@hxi.com>
2240
2241         * config/h8300/h8300.h: Fix formatting.
2242
2243 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
2244
2245         * c-common.h (RETURN_NULLIFIED_P): Lose.
2246         * c-semantics.c (genrtl_return_stmt): Don't check it.
2247
2248 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
2249
2250         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
2251         (mips_annotate_frame_insn): New function.
2252         (mips_emit_frame_related_store): New function.
2253         (save_restore_insns): Don't mark instructions that set up the base
2254         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
2255         the store instructions instead.
2256         (mips_expand_prologue): If the stack size is moved into a temporary
2257         register, do not mark that move as frame-related.  Add a
2258         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
2259
2260 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
2261
2262         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
2263         stack slot as unchanging if current_function_calls_eh_return.
2264
2265 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
2266
2267         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
2268         access the second half of the TFmode scratch operand.
2269
2270 2001-08-10  Anthony Green  <green@redhat.com>
2271
2272         * java/class.c (emit_register_classes): Conditionalize code on
2273         JCR_SECTION_NAME.
2274
2275 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2276
2277         * doc/install.texi (Specific, avr): Fix cross-reference to the
2278         main manual to work both for info and HTML versions.
2279
2280 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2281
2282         * stmt.c (expand_null_return_1): Remove code to generate simple returns
2283         and "use_goto" argument.
2284         (expand_null_return, expand_value_return): Update all callers.
2285         * function.c (expand_function_end): Remove code to generate simple
2286         return.
2287         * config/vax/vax.md (epilogue): New expander for function return.
2288         * doc/md.texi (epilogue): Remove "if defined".
2289
2290 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
2291
2292         * Makefile.in: Partially revert my previous change:
2293         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
2294         of the hashtab.o and safe-ctype.o rules.
2295
2296 2001-08-09  Richard Henderson  <rth@redhat.com>
2297
2298         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
2299         (USE_COLLECT2): Remove duplicate definition.
2300         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
2301         (use_collect2): Remove dead code.
2302         * configure.in (use_collect2): Remove will_use_collect2 and
2303         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
2304         * configure: Rebuild.
2305
2306         * target.h (targetm.asm_out.constructor): New.
2307         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
2308         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
2309         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
2310         * varasm.c (in_ctors, in_dtors): New.
2311         (assemble_constructor, assemble_destructor): Remove.
2312         (default_stabs_asm_out_destructor): New.
2313         (default_named_section_asm_out_destructor): New.
2314         (dtors_section, default_dtor_section_asm_out_destructor): New.
2315         (default_stabs_asm_out_constructor): New.
2316         (default_named_section_asm_out_constructor): New.
2317         (ctors_section, default_ctor_section_asm_out_constructor): New.
2318         * output.h: Update declarations.
2319         * c-decl.c (c_expand_body): Use target hooks instead of
2320         assemble_constructor and assemble_destructor.
2321         * profile.c (output_func_start_profiler): Likewise.
2322         * objc/objc-act.c (finish_objc): Likewise.
2323         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
2324         for the constructor.
2325         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
2326
2327         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
2328         (DTORS_SECTION_ASM_OP): Likewise.
2329         (__CTOR_LIST__): Use attribute section when possible.
2330         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
2331
2332         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
2333         ASM_OUTPUT_CONSTRUCTOR.
2334
2335         * config/darwin.c (machopic_asm_out_constructor): New.
2336         (machopic_asm_out_destructor): New.
2337         * config/darwin-protos.h: Update declarations.
2338         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2339         (ASM_OUTPUT_DESTRUCTOR): Remove.
2340         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2341         * config/nextstep.c (nextstep_asm_out_constructor): New.
2342         (nextstep_asm_out_destructor): New.
2343         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2344         (ASM_OUTPUT_DESTRUCTOR): Remove.
2345         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2346         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
2347         ASM_OUTPUT_*STRUCTOR.
2348         * config/i386/aix386ng.h: Likewise.
2349
2350         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
2351         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
2352         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
2353         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
2354         * config/lynx.h: Likewise.
2355         * config/netware.h: Likewise.
2356         * config/psos.h: Likewise.
2357         * config/alpha/alpha-interix.h: Likewise.
2358         * config/alpha/elf.h: Likewise.
2359         * config/arc/arc.h: Likewise.
2360         * config/arm/aof.h: Likewise.
2361         * config/arm/coff.h: Likewise.
2362         * config/arm/elf.h: Likewise.
2363         * config/c4x/c4x.h: Likewise.
2364         * config/h8300/h8300.h: Likewise.
2365         * config/i386/cygwin.h: Likewise.
2366         * config/i386/djgpp.h: Likewise.
2367         * config/i386/i386-coff.h: Likewise.
2368         * config/i386/i386-interix.h: Likewise.
2369         * config/i386/sco5.h: Likewise.
2370         * config/i386/vsta.h: Likewise.
2371         * config/i386/win32.h: Likewise.
2372         * config/i960/i960-coff.h: Likewise.
2373         * config/ia64/sysv4.h: Likewise.
2374         * config/m68hc11/m68hc11.h: Likewise.
2375         * config/m68k/coff.h: Likewise.
2376         * config/m68k/mot3300.h: Likewise.
2377         * config/m88k/m88k.h: Likewise.
2378         * config/mcore/mcore-pe.h: Likewise.
2379         * config/mcore/mcore.h: Likewise.
2380         * config/mips/elf.h: Likewise.
2381         * config/mips/elf64.h: Likewise.
2382         * config/mips/iris6.h: Likewise.
2383         * config/pa/pa64-hpux.h: Likewise.
2384         * config/rs6000/sysv4.h: Likewise.
2385         * config/sh/sh.h: Likewise.
2386         * config/sparc/litecoff.h: Likewise.
2387
2388         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
2389         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
2390         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
2391         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2392         (ASM_OUTPUT_DESTRUCTOR): Remove.
2393         * config/a29k/a29k.c: Move include of tree.h.
2394         * config/a29k/udi.h: Delete file.
2395         * config/alpha/alpha.c (vms_asm_out_constructor): New.
2396         (vms_asm_out_destructor): New.
2397         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
2398         (EXTRA_SECTION_FUNCTIONS): Likewise.
2399         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
2400         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2401         * config/c4x/c4x.c: Move include of tree.h.
2402         * config/clipper/clipper.c (clix_asm_out_constructor): New.
2403         (clix_asm_out_destructor): New.
2404         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2405         (ASM_OUTPUT_DESTRUCTOR): Remove.
2406         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2407         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2408         (TARGET_ASM_CONSTRUCTOR): New.
2409         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
2410         (sco_asm_out_constructor): New.
2411         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
2412         * config/i386/svr3gas.h: Remove stack grows up code.
2413         Remove code duplicated from i386/sysv3.h.
2414         (TARGET_ASM_CONSTRUCTOR): New.
2415         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
2416         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
2417         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2418         (TARGET_ASM_CONSTRUCTOR): New.
2419         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
2420         (m68hc11_asm_out_destructor): New.
2421         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
2422         (TARGET_ASM_DESTRUCTOR): New.
2423         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
2424         * config/m68k/dpx2.h: Properly undef all the bits inherited from
2425         config/svr3.h pertaining to section manipulation.
2426         * config/m68k/dpx2g.h: Remove #if 0 code.
2427         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
2428         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
2429         (ASM_OUTPUT_CONSTRUCTOR): Remove.
2430         (TARGET_ASM_CONSTRUCTOR): New.
2431         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
2432         (m88k_svr3_asm_out_constructor): New.
2433         (m88k_svr3_asm_out_destructor): New.
2434         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2435         (ASM_OUTPUT_DESTRUCTOR): Remove.
2436         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2437         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
2438         * config/rs6000/aix.h: Likewise.
2439         * config/mips/rtems64.h: Don't undef removed constructor related bits.
2440         * config/mips/vxworks.h: Likewise.
2441         * config/rs6000/lynx.h: Likewise.
2442         * config/sh/elf.h: Likewise.
2443         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
2444         (DTORS_SECTION_ASM_OP): New.
2445         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2446         (ASM_OUTPUT_DESTRUCTOR): Remove.
2447         * config/sparc/sol2-sld-64.h: Likewise.
2448         * config/vax/vax.c (vms_asm_out_constructor): New.
2449         (vms_asm_out_destructor): New.
2450         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
2451         (ASM_OUTPUT_DESTRUCTOR): Remove.
2452         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
2453
2454         * doc/tm.texi (@node Initialization): Update.
2455
2456 2001-08-09  Richard Henderson  <rth@redhat.com>
2457
2458         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
2459         (__do_global_dtors_aux): Use gp-relative static data to avoid
2460         one dynamic relocation.
2461         (__do_frame_setup): Register Java classes.
2462         * config/alpha/crtend.asm (__JCR_END__): New.
2463
2464 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
2465
2466         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
2467         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
2468         (GEN, STAGESTUFF): Add new files.
2469         (insn-constants.h, s-constants, tm-preds.h, s-preds,
2470         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
2471         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
2472         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
2473         as well as insn-codes.h and insn-flags.h in config.h; and no
2474         extra headers in tconfig.h and hconfig.h.
2475
2476         * gencodes.c: Eliminate code to generate predicate declarations
2477         or #defines for md-file constants.
2478         * genconstants.c, genpreds.c: New files.
2479
2480         * i386.md: Re-order guard expressions such that TARGET_64BIT
2481         comes first, when this permits better optimization.  Add
2482         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
2483         why this is desirable.
2484
2485 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
2486
2487         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
2488         (find_fde_for_dso): Remove.
2489         (_Unwind_IteratePhdrCallback): New.
2490         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
2491         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
2492
2493 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2494
2495         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
2496         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
2497
2498 2001-08-09  Graham Stott  <grahams@redhat.com>
2499
2500         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
2501         (vis_no_unit): Use it.
2502         (visualize_no_unit): Add the insn only if room exists.
2503
2504 2001-08-09  Graham Stott  <grahams@redhat.com>
2505
2506         * predict.c (estimate_probability): Replace magic numbers with
2507         appropriate enumeration.
2508
2509 2001-08-09  Graham Stott  <grahams@redhat.com>
2510
2511         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
2512         parameter.
2513         (EXTRACT_FLAGS): Likewise.
2514
2515 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
2516
2517         * config/mips/mips.c    (mips_legitimate_address_p): Check for
2518         CONST_INT in last patch.
2519
2520 2001-08-08  Anthony Green  <green@redhat.com>
2521
2522         * java/class.c (emit_register_classes): Use assemble_jcr if
2523         possible.  Keep the original mechanism as a fallback.
2524         * defaults.h (JCR_SECTION_NAME): Define if we have named section
2525         and weak symbol support.
2526         * crtstuff.c (__JCR_LIST__): Define.
2527         (__JCR_END__): Define.
2528         (_Jv_RegiserClasses): Define weak symbol if possible.
2529         (__do_global_ctors_aux): Register classes for ELF targets with
2530         weak symbol support.
2531
2532 2001-08-08  Kazu Hirata  <kazu@hxi.com>
2533
2534         * dbxout.c: Fix comment formatting.
2535         * dependence.c: Likewise.
2536         * df.c: Likewise.
2537         * diagnostic.c: Likewise.
2538         * dominance.c: Likewise.
2539         * doprint.c: Likewise.
2540         * dwarf2out.c: Likewise.
2541         * dwarfout.c: Likewise.
2542         * emit-rtl.c: Likewise.
2543         * except.c: Likewise.
2544         * explow.c: Likewise.
2545         * expmed.c: Likewise.
2546         * expr.c: Likewise.
2547         * flow.c: Likewise.
2548         * fold-const.c: Likewise.
2549         * function.c: Likewise.
2550
2551 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2552
2553         * global.c (retry_global_alloc): Avoid shadowing allocno.
2554
2555 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
2556
2557         * except.c (remove_fixup_regions): Fix typo.
2558
2559 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
2560
2561         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
2562         unsigned HOST_WIDE_INT to avoid warning.
2563         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
2564         * flow.c (set_block_for_new_insns): Likewise.
2565
2566 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
2567
2568         * sibcall.c (return_value_pseudo): New static variable.
2569         (skip_copy_to_return_value): Handle return_value_pseudo.
2570         (call_ends_block_p): Ensure that return_value_pseudo is set.
2571         (optimize_sibling_and_tail_recursive_call): Discover the
2572         load of pseudo return value in alternate exit block.
2573
2574 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
2575
2576         * calls.c (ECF_ALWAYS_RETURN): New constant.
2577         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
2578         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
2579         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
2580         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
2581         * rtl.c (reg_note_name): New name.
2582         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
2583
2584 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
2585
2586         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
2587
2588 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
2589
2590         * alias.c (get_alias_set): Return a previously calculated
2591         alias set for a VAR_DECL.
2592         * function.c (gen_mem_addressof): Calculate the alias set before
2593         touching the RTL.
2594
2595 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
2596
2597         * predict.def: Set hitrates according our experimental run.
2598
2599 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
2600
2601         * i386.h (HARD_REGNO_RENAME_OK): New macro.
2602
2603 2001-08-08  H.J. Lu <hjl@gnu.org>
2604
2605         * config/mips/mips.c (mips_unique_section): New. Copied from
2606         config/mips/elf.h.
2607
2608         * config/mips/mips-protos.h (mips_unique_section): New
2609         prototype.
2610
2611         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
2612
2613         * config/mips/little.h: New. Generic little endian mips
2614         targets. Only mips*-*-linux* is converted to use it so far.
2615
2616         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
2617         (WCHAR_TYPE): Defined
2618         (WCHAR_TYPE_SIZE): Likewise.
2619         (INIT_SUBTARGET_OPTABS): Likewise.
2620         (BSS_SECTION_ASM_OP): Likewise.
2621         (SBSS_SECTION_ASM_OP): Likewise.
2622         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2623         (ASM_DECLARE_OBJECT_NAME): Likewise.
2624         (UNIQUE_SECTION): Likewise.
2625         (EXTRA_SECTIONS): Likewise.
2626         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
2627         (ASM_OUTPUT_DESTRUCTOR): Likewise.
2628         (ASM_OUTPUT_DEF): Likewise.
2629         (HANDLE_SYSV_PRAGMA): Removed.
2630         (NO_IMPLICIT_EXTERN_C): Likewise.
2631         (TARGET_MEM_FUNCTIONS): Likewise.
2632         (STARTFILE_SPEC): Likewise.
2633         (ENDFILE_SPEC): Likewise.
2634         (LIB_SPEC): Likewise.
2635         (INVOKE__main): Likewise.
2636         (CTOR_LIST_BEGIN): Likewise.
2637         (CTOR_LIST_END): Likewise.
2638         (DTOR_LIST_BEGIN): Likewise.
2639         (DTOR_LIST_END): Likewise.
2640         (SET_ASM_OP): Likewise.
2641         (ASM_OUTPUT_SOURCE_LINE): Likewise.
2642         (ASM_OUTPUT_DEF): Likewise.
2643         (ASM_OUTPUT_IDENT): Likewise.
2644
2645         * config/mips/mips.h (ASM_SPEC): Undefine before define.
2646         (CPLUSPLUS_CPP_SPEC): Likewise.
2647         (ASM_APP_ON) Redefine only if not defined.
2648         (ASM_APP_OFF): Likewise.
2649         (ASM_OUTPUT_SOURCE_LINE): Likewise.
2650         (ASM_OUTPUT_IDENT): Likewise.
2651
2652         * config.gcc: Update tm_file for Linux/mips.
2653
2654 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
2655
2656         * cselib.c (cselib_record_sets): If insn is predicated, turn
2657         sources into IF_THEN_ELSEs.
2658
2659         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
2660         Turn into define_insn_and_split.
2661
2662         * sched-deps.c: Include "cselib.h".
2663         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
2664         Use cselib to turn memory addresses into VALUEs.
2665         (sched_analyze): Call cselib_init/cselib_finish if necessary.
2666         * sched-int.h (struct sched_info): New member USE_CSELIB.
2667         * sched-ebb.c (ebb_sched_info): Initialize it.
2668         * sched-rgn.c (rgn_sched_info): Likewise.
2669         * Makefile.in (sched-deps.o): Update dependencies.
2670
2671         * cselib.h (cselib_subst_to_values): Declare.
2672         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
2673         that have no value and autoincs to be handled by generating a new
2674         dummy value.
2675
2676 2001-08-08  Graham Stott  <grahams@redhat.com>
2677
2678         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
2679         within fixed length SEQUENCE.
2680
2681 2001-08-08  Graham Stott  <grahams@redhat.com>
2682
2683         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
2684         (diagnostic_prefixing_rule): Likewise.
2685         (diagnostic_line_cutoff): Likewise.
2686         (diagnostic_kind_count): Likewise.
2687
2688 2001-08-08  Graham Stott  <grahams@redhat.com>
2689
2690         * alias.c (find_base_decl): Delete redundent assignment.
2691
2692 2001-08-08  Graham Stott  <grahams@redhat.com>
2693
2694         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
2695         (abs): Uppercase and paranthesize macro parameter.
2696         (MEM_DEPENDENCY): Add whitespace.
2697
2698 2001-08-08  Graham Stott  <grahams@redhat.com>
2699
2700         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
2701         failure check for CONST_INT
2702
2703 2001-08-08  Graham Stott  <grahams@redhat.com>
2704
2705         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
2706         (libcall_dead_p): Likewise.
2707
2708         (mark_used_regs): Constify fmt.
2709         (find_use_as_address): Likewise.
2710
2711 2001-08-08  Graham Stott  <grahams@redhat.com>
2712
2713         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
2714          parameter.
2715
2716 2001-08-08  Graham Stott  <grahams@redhat.com>
2717
2718         * combine.c (combine_simplify_rtx): Update comment and
2719         remove erroneous test.
2720
2721 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2722
2723         * cppinit.c (cpp_finish): Pop the final buffer without comment.
2724         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
2725         take care to avoid multiple no-newline at EOF warnings in that
2726         case.
2727
2728 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
2729
2730         * calls.c (expand_call): Do not emit INSN_SETJMP note.
2731         (emit_library_call_value_1): Likewise.
2732         (emit_call_1): Emit REG_SETJMP note.
2733         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
2734         of INSN_SETJMP
2735         * cselib.c (cselib_process_insn): Likewise.
2736         * flow.c (propagate_block): Likewise.
2737         * loop.c (find_and_verify_loops): Likewise.
2738         * reload.c (find_equiv_regs): Likewise.
2739         * reload1.c (reload): Likewise.
2740         * resource.c (mark_referenced_resources,
2741         mark_set_resources): Likewise.
2742         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
2743         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
2744         * haifa-sched.c (unlink_other_notes): Likewise.
2745         (reemit_notes): Likewise.
2746         * sched-ebb.c (sched_ebb): Likewise.
2747         * sched-rgc.c (sched_region): Likewise.
2748         * rtl.c (note_insn_name): Likewise.
2749         (reg_note_name): Add REG_SETJMP
2750         * rtl.h (reg_note): Add REG_SETJMP.
2751         (insn_note): Remove NOTE_INSN_SETJMP.
2752
2753         * profile.c (branch_prob): Add fake edges for setjmp.
2754
2755 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
2756
2757         * config.gcc: Quote target_cpu_default2 correctly for
2758         powerpc*-*-* targets.
2759
2760 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2761
2762         * cpplib.h, line-map.h: Update comments.
2763         * cppmain.c (printer_init): Move inline.
2764         (maybe_print_line, print_line): Take a map pointer.
2765         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
2766         (cb_file_change): Don't use prior value of print.map.
2767
2768 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
2769
2770         * doc/install.texi: Document fine-grained multilib configuration.
2771
2772 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
2773
2774         * rtlanal.c (find_first_parameter_load): Call note_stores
2775         only on the instructions.
2776
2777 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
2778
2779         * alias.c (nonlocal_mentioned_p):
2780         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
2781         * calls.c (emit_call_1): Likewise.
2782         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
2783         * cselib.c (cselib_process_insn): Likewise.
2784         * df.c (df_insns_modify): Likewise.
2785         * flow.c (need_fake_edge_p): Likewise.
2786         (propagate_one_insn): Likewise.
2787         * haifa-sched.c (reemit_notes): Likewise.
2788         * integrate.c (copy_insn_list): Likewise.
2789         * jump.c (delete_prior_computation): Likewise.
2790         * local-alloc.c (validate_equiv_mem): Likewise.
2791         * loop.c (scan_loop): Likewise.
2792         * predict.c (estimate_probability): Likewise.
2793         * reload.c (reload): Likewise.
2794         * sched-deps (sched_analyze): Likewise.
2795         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
2796         * gcse.c (compute_hash_table): Likewise.
2797         (mark_call): Likewise.
2798         (store_killed_in_insn): Likewise.
2799
2800 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
2801
2802         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
2803
2804 2001-08-06  Richard Henderson  <rth@redhat.com>
2805
2806         * varasm.c (assemble_gc_entry): Remove.
2807         * output.h: Likewise.
2808
2809 2001-08-06  Richard Henderson  <rth@redhat.com>
2810
2811         * varasm.c (assemble_constructor): Take a symbol_ref and a
2812         priority instead of a bare string.  Move priority handling
2813         here from cp/decl2.c.
2814         * output.h: Update decls.
2815
2816         * c-decl.c (c_expand_body): Update calls to assemble_constructor
2817         and assemble_destructor.
2818         * profile.c (output_func_start_profiler): Likewise.
2819         * objc/objc-act.c (finish_objc): Likewise.
2820         (build_module_descriptor): Return the symbol not the symbol name.
2821
2822 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
2823
2824         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
2825         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
2826         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
2827         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
2828         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
2829         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
2830
2831 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2832
2833         * cpperror.c (print_containing_files): Moved to line-map.c.
2834         (print_location): line-map.c handles re-listing or otherwise.
2835         * cpphash.h (struct lexer_state): Remove next_bol.
2836         (struct cpp_buffer): Remove include_stack_listed.
2837         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
2838         Remove faked buffer handling.
2839         (_cpp_do_file_change): Tweak.
2840         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
2841         * cppmain.c (struct printer): Remove filename.
2842         (print_line, cb_file_change): Update accordingly.
2843         * line-map.c: Include intl.h.
2844         (init_line_maps): Initialize last_listed.
2845         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
2846         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
2847         (print_containing_files): New.
2848         * line-map.h (struct line_maps): New member last_listed.
2849         (print_containing_files, INCLUDED_FROM): New.
2850         * Makefile.in: Update.
2851         * po/POTFILES.in: Add line-map.c.
2852
2853 2001-08-06  Richard Henderson  <rth@redhat.com>
2854
2855         * except.c (convert_from_eh_region_ranges_1): Never mark
2856         USE or CLOBBER insns as throwing.
2857
2858         * expr.c (store_constructor): Don't clobber memory targets.
2859
2860 2001-08-06  Andreas Jaeger  <aj@suse.de>
2861
2862         * profile.c (branch_prob): Remove unused variable insn.
2863
2864         * Makefile.in (local-alloc.o): Add dependency on except.h.
2865
2866         * local-alloc.c: Include except.h for can_throw_internal prototype.
2867
2868 2001-08-06  Richard Henderson  <rth@redhat.com>
2869
2870         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
2871         * function.c (expand_main_function): Implement it.
2872         * doc/tm.texi: Document it.
2873
2874 2001-08-06  Stan Shebs  <shebs@apple.com>
2875
2876         * doc/install.texi: Document powerpc-*-darwin* details.
2877
2878 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
2879
2880         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
2881         (ASM_CPU_SPEC): Move back to rs6000.h
2882         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
2883
2884         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
2885
2886         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
2887         readded.
2888
2889         * config/rs6000/linux64.h: Ditto.
2890
2891         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
2892         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
2893         nothing.
2894
2895         Remove accidently readded definitions of FUNCTION_PROLOGUE,
2896         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
2897
2898         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
2899         to rs6000.h
2900
2901 2001-08-05  Richard Henderson  <rth@redhat.com>
2902
2903         * local-alloc.c (update_equiv_regs): Do not move insns that
2904         can throw.
2905
2906 2001-08-05  Jan Hubicka  <jh@suse.cz>
2907
2908         * Makefile.in (reload1.o): Add dedendancy on except.h
2909         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
2910         prototypes.
2911         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
2912         indicating wehther edges has been cleaned up.
2913         * reload1.c: Inlucde except.h
2914         (fixup_abnormal_edges): Accept deleted insns.
2915         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
2916         after combine.
2917
2918 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2919
2920         * cpplib.c (do_line): Correct line number after pop_buffer.
2921
2922 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2923
2924         PR preprocessor/3824
2925         * line-map.c: Update comments.
2926         * line-map.h: Update comments.
2927         * tradcif.y: Don't consider large numbers unsigned.
2928
2929 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2930
2931         PR preprocessor/3081
2932         * c-lex.c (map): New.
2933         (cb_file_change): Update map and use it.
2934         (cb_def_pragma, cb_define, cb_undef): Use map and line.
2935         (c_lex): Update to use map.
2936         * cpperror.c (print_location): Move to using logical line numbers.
2937         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
2938         (cpp_make_system_header): Similarly.
2939         (_cpp_execute_include): Stop line numbering hacks.  Store the
2940         line we will return to.
2941         * cpphash.h (CPP_BUF_LINE): Remove.
2942         (struct cpp_buffer): Remove lineno and pseudo_newlines.
2943         Add map and return_to_line.
2944         (_cpp_do_file_change): Update.
2945         * cppinit.c (cpp_start_read): Update line kludge.
2946         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
2947         (trigraph_ok): Use logical line numbers for diagnostics.
2948         (skip_block_comment): Likewise.
2949         (skip_whitespace): Likewise.
2950         (skip_line_comment): Use pfile->line instead.
2951         (_cpp_lex_token): Update to use logical line numbering exclusively.
2952         Handle BOL locally.  Accept new lines in directives, but keep
2953         pfile->line decremented.  Diagnostics use logical lines.  Update
2954         directive handling.
2955         * cpplib.c (SEEN_EOL): New.
2956         (skip_rest_of_line, check_eol): Use it.
2957         (end_directive): Increase line number when accepting the newline
2958         at the end of a directive.
2959         (run_directive): Simplify.
2960         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
2961         (_cpp_do_file_change): Update to take buffer line number as an
2962         argument, and store the current map in the cpp_reader.  Remove
2963         line number kludges.
2964         (_cpp_do__Pragma): Restore output position after a _Pragma.
2965         (cpp_push_buffer): Don't set output line or lineno.
2966         (_cpp_pop_buffer): Transfer more info from a faked buffer.
2967         Remove line kludge.  Set output_line.
2968         * cppmacro.c (builtin_macro): Update handling of __LINE__.
2969         (parse_arg): Use logical lines.
2970         (save_lookahead_token): Save EOFs too now.
2971         * cppmain.c (struct printer): Fix comments.
2972         (printer_init): Simplify, let caller do errors.
2973         (scan_translation_unit, check_multiline_token, dump_macro): Update.
2974         (maybe_print_line): Simplify.
2975         (print_line): Don't print a linemarker if -P.
2976         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
2977         (cb_file_change): Simplify.
2978         * line-map.h (LAST_SOURCE_LINE): Fix.
2979         (CURRENT_LINE_MAP): New.
2980
2981 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
2982
2983         * doloop.c (doloop_modify_runtime): Properly compute number of
2984         iterations if loop was unrolled.
2985
2986         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
2987         if their CSELIB_VAL_PTRs are.
2988
2989         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
2990         (setup_spill_pointers): Initialize it.
2991         (spill_restore_mem): Set it.
2992         (do_spill, do_restore): Use it to add REG_INC note.
2993         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
2994
2995         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
2996         asms if other insns are available.
2997
2998         * config/ia64/ia64.c (condop_operator): New predicate.
2999         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
3000         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
3001         patterns.
3002
3003         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
3004         temporary register than directly using a MEM.
3005
3006 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
3007
3008         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
3009         parameter in last change.
3010
3011 2001-08-04  Zack Weinberg  <zackw@panix.com>
3012
3013         * sparc.md: Don't use #if inside C test expression.
3014
3015 2001-08-04  Richard Henderson  <rth@redhat.com>
3016
3017         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
3018
3019 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3020
3021         * cpphash.h (struct cpp_reader): New member directive_line.
3022         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
3023         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
3024         do_pragma): Pass line to callbacks.
3025         (start_directive): Record line of directive.
3026         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
3027         cb_include): Similarly.
3028         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
3029         Similarly.
3030
3031 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
3032
3033         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
3034         comment.
3035
3036 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
3037
3038         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
3039
3040         * reload1.c (fixup_abnormal_edges): New static function.
3041         (reload): Use it.
3042
3043         * flow.c (need_fake_edge_p): New function.
3044         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
3045         avoid call insn to be very last insn in the insn stream.
3046
3047         * profile.c (branch_prob): Call flow_call_edges_add instead of
3048         doing that by hand; cleanup cfg to re-merge basic blocks once
3049         we are done.
3050
3051 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3052
3053         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
3054         are also on line-map.h.
3055         * cppfiles.c (stack_include_file): Update.
3056         * cpphash.h (struct cpp_buffer): New member return_at_eof.
3057         (_cpp_pop_buffer): New.
3058         * cppinit.c (cpp_destroy, cpp_finish): Update.
3059         (do_includes): Mark each buffer to return at EOF.
3060         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
3061         return as requested.
3062         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
3063         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
3064         * cpplib.h (cpp_pop_buffer): Remove.
3065         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
3066         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
3067         buffers.
3068         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
3069         to pop buffers.
3070         (do_preprocessing): Update.
3071         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
3072         * c-parse.in (_yylex): Similarly.
3073         * scan-decls.c (scan_decls): Similarly.
3074         * line-map.h: Update comments.
3075
3076         * objc/Make-lang.in (objc-act.o): Update dependencies.
3077
3078 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3079
3080         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
3081         and soft register for operand 0.
3082         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
3083
3084 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3085
3086         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
3087         register for operand 0.
3088         ("bitcmpqi_z_used"): Allow memory for operand 0.
3089         (split "bitcmpqi"): New split to handle address reg as operand 1.
3090
3091 2001-08-04  Andreas Jaeger  <aj@suse.de>
3092
3093         * gcse.c: Revert Daniel's last patch.
3094
3095 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
3096
3097         * sparc-protos.h: Add prototypes for fp_zero_operand and
3098         reg_or_0_operand.
3099         * sh-protos.h: Add prototype for fpul_operand.
3100
3101 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
3102
3103         * doc/extend.texi (Other Builtins): Fix typo in last change.
3104
3105 2001-08-03  Richard Henderson  <rth@redhat.com>
3106
3107         * target.h (gcc_target): Add asm_out.named_section,
3108         section_type_flags, have_named_sections.
3109         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
3110         (TARGET_HAVE_NAMED_SECTIONS): New.
3111         (TARGET_SECTION_TYPE_FLAGS): New.
3112
3113         * Makefile.in (toplev.o): Depend on TARGET_H.
3114         (varasm.o, dbxout.o): Likewise.
3115         * c-common.c (decl_attributes): Check targetm.have_named_sections
3116         instead of ifdef ASM_OUTPUT_SECTION_NAME.
3117         * dbxout.c (dbxout_function_decl): Likewise.
3118         (dbxout_function_end): Likewise.
3119         * toplev.c (compile_file): Likewise.
3120         * varasm.c (exception_section): Likewise.
3121         * cp/decl2.c (finish_objects): Likewise.
3122
3123         * defaults.h (EH_FRAME_SECTION): Remove.
3124         (EH_FRAME_SECTION_ASM_OP): Remove.
3125         (EH_FRAME_SECTION_NAME): New.
3126         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
3127         (UNIQUE_SECTION_P): Remove.
3128         * dwarf2out.c (SECTION_FORMAT): Remove.
3129         (ASM_OUTPUT_SECTION): Remove.
3130         (output_call_frame_info): Use named_section_flags.
3131         (output_comp_unit, dwarf2out_start_source_file): Likewise.
3132         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
3133         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
3134         * varasm.c (in_eh_frame, eh_frame_section): Remove.
3135         (named_section_flags): New.
3136         (named_section): Use it and targetm.section_type_flags.
3137         (resolve_unique_section): New.
3138         (assemble_start_function): Use it.
3139         (asm_emit_uninitialised, assemble_variable): Likewise.
3140         (default_section_type_flags): New.
3141         (default_no_named_section, default_elf_asm_named_section): New.
3142         (default_coff_asm_named_section, default_pe_asm_named_section): New.
3143         * output.h: Update varasm.c decls.
3144         (SECTION_*): New flags.
3145
3146         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
3147         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
3148
3149         * config/elfos.h (UNIQUE_SECTION_P): Remove.
3150         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
3151         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
3152         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
3153         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
3154         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
3155         * config/mips/elf.h, config/mips/elf64.h: Likewise.
3156         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
3157         * config/pa/pa64-hpux.h,
3158
3159         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
3160         (TARGET_ASM_NAMED_SECTION): New.
3161         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
3162         * config/alpha/vms.h, config/arm/coff.h: Likewise.
3163         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
3164         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
3165         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
3166         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
3167         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
3168         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
3169         * config/i386/sco5.h, config/i386/win32.h: Likewise.
3170         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
3171         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
3172         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
3173         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
3174         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
3175         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
3176         * config/sparc/sysv4.h: Likewise.
3177
3178         * config/nextstep.h: Error until named sections implemented.
3179
3180         * config/a29k/a29k.c (a29k_asm_named_section): New.
3181         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
3182         (vms_section_type_flags, vms_asm_named_section): New.
3183         * config/arm/arm.c (arm_elf_asm_named_section): New.
3184         * config/avr/avr.c (asm_output_section_name): Remove.
3185         * config/avr/avr-protos.h: Update.
3186         * config/c4x/c4x.c (c4x_asm_named_section): New.
3187         * config/h8300/h8300.c (h8300_asm_named_section): New.
3188         * config/i386/i386.c (sco_asm_named_section): New.
3189         * config/i386/winnt.c (SECTION_PE_SHARED): New.
3190         (i386_pe_section_type_flags): New.
3191         (i386_pe_asm_named_section): New.
3192         * config/i386/i386-protos.h: Update.
3193         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
3194         * config/mcore/mcore.c (mcore_asm_named_section): New.
3195         * config/mips/mips.c (iris6_asm_named_section): New.
3196         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
3197         instead of UNIQUE_SECTION_P.
3198         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
3199         (xcoff_asm_named_section): New.
3200         * config/sh/sh.c (sh_asm_named_section): New.
3201         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
3202
3203         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
3204         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
3205         (EH_FRAME_SECTION_NAME): New.
3206         (EXCEPTION_SECTION): New.
3207         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
3208         (DEBUG_*_SECTION): Remove.
3209         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
3210         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
3211         (EH_FRAME_SECTION_ASM_OP): Remove.
3212
3213         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
3214         (ASM_OUTPUT_SECTION_NAME): Remove.
3215         (TARGET_ASM_NAMED_SECTION): New.
3216         (TARGET_HAVE_NAMED_SECTIONS): New.
3217         (TARGET_SECTION_TYPE_FLAGS): New.
3218         (EH_FRAME_SECTION_ASM_OP): Remove.
3219         (EH_FRAME_SECTION_NAME): New.
3220
3221 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
3222
3223         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
3224         for complex expressions when cfun == 0.
3225         * doc/extend.texi: Document that __builtin_constant_p can be
3226         used in data initializers as well as functions.
3227
3228 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
3229
3230         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
3231         variable I locally, instead of expecting a declaration in the
3232         calling context.
3233
3234 2001-08-03  Richard Henderson  <rth@redhat.com>
3235
3236         * except.c (collect_one_action_chain): Add an explicit cleanup
3237         action if regions surrounding a catch were encoded entirely
3238         within the call-site entry.
3239
3240 2001-08-03  Richard Henderson  <rth@redhat.com>
3241
3242         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
3243         don't take REGNO of a non-register.
3244
3245 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3246
3247         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
3248         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
3249         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
3250         (__gthread_mutex_init_function): New function for mutex initialization.
3251
3252 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
3253
3254         * Makefile.in: Revert screwed up commit.
3255
3256 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3257
3258         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
3259         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
3260         merged by linker script to get a final _exit().
3261         (__do_global_dtors): New for destructor handling in specific exit
3262         section.
3263         (__do_global_ctors): New for constructors in specific install section.
3264         (__map_data_section): Map data sections before running constructors.
3265         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
3266         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
3267         (DTORS_SECTION_ASM_OP): Likewise.
3268         (CTORS_SECTION_FUNCTION): Define to force a reference to
3269         __do_global_ctors.
3270         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
3271
3272 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
3273
3274         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
3275
3276         * Makefile.in: Add df.h to gcse.c dependencies.
3277
3278 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3279
3280         * varasm.c (output_constant_def_contents): Use for the length of a
3281         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
3282         depending on which is larger.
3283
3284 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
3285
3286         * gcse.c: Include df.h for use as a dataflow analyzer.
3287         Remove regvec.
3288         Declaration of reg_set_info: gone.
3289         New df_analyzer variable used by store motion.
3290         (reg_set_info): Deleted.
3291         (mark_mem_regs): New function, analyze regs used by a mem.
3292         (store_ops_ok): Use dataflow analyzer results to determine if
3293         necessary regs are changed in the block.
3294         (find_moveable_store): Remove check for symbol ref, we can handle
3295         much more complex expressions now.
3296         (compute_store_table): Remove most of the code, it's unnecessary
3297         now that the dataflow analyzer records the info for us.
3298         (store_killed_after): Add parameter to say whether to do the
3299         store_ops_okay test, used to speed up testing when we already know
3300         the answer, and just want to know if the store itself was killed.
3301         (build_store_vector): Largely rewritten to calculate the various
3302         vectors properly, and somewhat optimized.
3303         (store_motion): Init the df_analyzer, get REG_DEF chains.
3304         Also handle trapping expressions (since mems almost always trap)
3305         (simple_mem): Redefine what a simple mem is.
3306
3307 2001-08-03  DJ Delorie  <dj@redhat.com>
3308
3309         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
3310         set from a constant part of the condition.
3311
3312 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
3313
3314         * mkdeps.c (deps_add_default_target): Make local variable
3315         ``start'' a const char pointer.
3316         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
3317
3318 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3319
3320         * doc/install.texi (Configuration): Fix markup.
3321         (Specific, i?86-*-udk): Likewise.
3322         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
3323         --with-gnu-ld.
3324         Document --enable-threads and --enable-libgcj status.
3325         (Specific, mips-sgi-irix*): Canonicalize triples.
3326         (Specific, mips-sgi-irix5): Warn about problems with this config.
3327         Mention required GNU as patch.
3328         Native assembler problems are fixed.
3329         (Specific, mips-sgi-irix6): Update O32 ABI support status.
3330         Document --enable-threads and --enable-libgcj status.
3331
3332 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
3333
3334         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
3335         of mkinstalldirs.
3336
3337 2001-08-03  Richard Henderson  <rth@redhat.com>
3338
3339         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
3340         constant data.
3341
3342 2001-08-03  Richard Henderson  <rth@redhat.com>
3343
3344         * rtlanal.c (find_first_parameter_load): Stop if we
3345         reach a CODE_LABEL at BOUNDARY.
3346
3347 2001-08-03  Richard Henderson  <rth@redhat.com>
3348
3349         * config/alpha/alpha.md (force_movdi): New insn.
3350         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
3351         Tweek FRP marking of VMS prologue insns.
3352         * config/alpha/vms.h (EPILOGUE_USES): New.
3353
3354 2001-08-02  Richard Henderson  <rth@redhat.com>
3355
3356         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
3357
3358 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
3359
3360         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
3361         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
3362         config/convex/convex.h, config/d30v/d30v.c,
3363         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
3364         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
3365         config/mips/mips.h, config/mn10200/mn10200.h,
3366         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
3367         config/v850/v850.h, config/vax/openbsd.h,
3368         config/vax/openbsd1.h, config/vax/ultrix.h,
3369         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
3370         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
3371         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
3372         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
3373         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
3374         in comments and documentation.
3375
3376 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3377
3378         * line-map.c: New.
3379         * line-map.h: New.
3380         * Makefile.in (line-map.o): New.
3381         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
3382         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
3383         * cpperror.c (print_containing_files): Similarly.
3384         (print_location): Update.  Don't output a space before _Pragma.
3385         * cppfiles.c (stack_include_file): Set to line 1 immediately.
3386         (stack_include_filee, cpp_make_system_header): Update.
3387         (_cpp_execute_include): Get logical line number right for calling
3388         as-yet-unterminated #include.
3389         * cpphash.h (struct cpp_reader): Add line_maps.
3390         (_cpp_do_file_change): Update.
3391         * cppinit.c (cpp_create_reader): Initialize line maps.
3392         (cpp_destroy): Destroy line maps.
3393         (cpp_start_read): Get logical line number right.
3394         * cpplex.c (parse_string): Only warn once for multi-line strings.
3395         Use boolean variable for null warning.
3396         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
3397         already.
3398         (do_include_common): End the directive early.
3399         (do_line): Don't warn about out-of-range lines in preprocessed
3400         source.  Update.  Remove unused variables.
3401         (_cpp_do_file_change): Update for new line mapping.
3402         (pragma_cb): New typedef.
3403         (cpp_register_pragma): Stop looking ahead before calling the
3404         handler.  Clean up.
3405         (do_pragma_system_header): End directive early.
3406         (cpp_get_line_maps): New.
3407         (cpp_pop_buffer): Fudge logical line.  Update.
3408         * cpplib.h: Include line-map.h
3409         (enum cpp_fc_reason): Remove.
3410         (struct cpp_file_change): Update.
3411         (cpp_get_line_maps): New.
3412         * cppmain.c (struct_printer): New member map.
3413         (cb_file_change): Update for new mappings.
3414         * fix-header.c (cb_file_change): Similarly.
3415
3416 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
3417
3418         * Makefile.in (libgcc.mk): Define mkinstalldirs.
3419         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
3420
3421 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
3422
3423         * config/vax/vax.c: include expr.h.
3424
3425 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
3426
3427         * Makefile.in ($(srcdir)/configure): Only rebuild in
3428         maintainer mode.
3429         ($(srcdir)/config.in): Only define in maintainer mode.
3430         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
3431
3432 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
3433
3434         * doc/install.texi (Install GCC: Binaries): Update Bull info.
3435
3436 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3437
3438         * gcc.c (set_collect_gcc_options): New function, split out from
3439         main.
3440         Ignore elided switches.
3441         (do_spec_1): Invoke before executing command.
3442         (set_input): Export.
3443         Move declaration ...
3444         * gcc.h (set_input): ... here.
3445         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
3446         file.
3447
3448 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
3449
3450         Kill -fhonor-std.
3451         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
3452         interaction.
3453         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
3454
3455 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
3456
3457         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
3458         for the unnamed instructions it expands to.
3459
3460 2001-08-02  Richard Henderson  <rth@redhat.com>
3461
3462         * regclass.c (call_really_used_regs): Conditionally define.
3463         (init_reg_sets_1): Don't use it if not defined.
3464         (fix_register): Similarly, don't set it.
3465
3466 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3467
3468         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
3469         Correct comment that had been missed in the previous change.
3470
3471 2001-08-01  Stan Shebs  <shebs@apple.com>
3472
3473         * config/darwin.c (machopic_stub_name): Try matching by name.
3474         (update_stubs): New function.
3475         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
3476         unconditionally.
3477
3478 2001-08-01  Richard Henderson  <rth@redhat.com>
3479
3480         * except.c (output_function_exception_table): Use assemble_align.
3481         * varasm.c (assemble_eh_label): Remove.
3482         (assemble_eh_align, assemble_eh_integer): Remove.
3483
3484 2001-08-01  Robert Lipe  <robertl@caldera.com>
3485
3486         * dwarfout.c: Remove reference to README.DWARF.
3487
3488 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
3489
3490         * regclass.c (call_really_used_regs): New array for registers which
3491         are actually used by a call.
3492         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
3493         new array.
3494         (fix_register): Set call_really_used too.
3495         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
3496         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
3497
3498 2001-08-01  Richard Henderson  <rth@redhat.com>
3499
3500         * read-rtl.c (read_name): Consider \r whitespace.
3501
3502 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
3503
3504         * config.gcc: Recognize powerpc-*-netbsd*.
3505
3506         * doc/install.texi (Host/target specific installation notes for
3507         GCC): Mention powerpc-*-netbsd*.
3508
3509         * config/rs6000/netbsd.h: New file.
3510         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
3511         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
3512         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
3513         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
3514         (TARGET_VERSION): Redefine.
3515
3516         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
3517         mcall-netbsd as a match for mcall-sysv.
3518         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
3519         (ncrti.S, ncrtn.S): New targets.
3520         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
3521
3522         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
3523         "netbsd' as a V4 ABI.
3524         (ASM_SPEC): Check for -mcall-netbsd.
3525         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
3526         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
3527         (LIB_SPEC, ENDFILE_SPEC): Ditto.
3528         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
3529         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
3530         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
3531         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
3532
3533         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
3534         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
3535
3536 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
3537
3538         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
3539         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
3540         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
3541         including "unwind-pe.h".
3542
3543 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
3544
3545         * rs6000.md (define_splits): Kill unused constraints.
3546
3547 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
3548                               Jan Hubicka  <jh@suse.cz>
3549
3550         * function.c (thread_prologue_and_epilogue_insns): Kill code
3551         dealing with non-existent CFG.
3552
3553 2001-08-01  Kazu Hirata  <kazu@hxi.com>
3554
3555         * alias.c: Fix comment formatting.
3556         * bitmap.c: Likewise.
3557         * builtins.c: Likewise.
3558         * calls.c: Likewise.
3559         * c-common.c: Likewise.
3560         * c-decl.c: Likewise.
3561         * c-dump.c: Likewise.
3562         * c-lex.c: Likewise.
3563         * collect2.c: Likewise.
3564         * combine.c: Likewise.
3565         * conflict.c: Likewise.
3566         * cppfiles.c: Likewise.
3567         * cppinit.c: Likewise.
3568         * cpplex.c: Likewise.
3569         * cpplib.c: Likewise.
3570         * cppmacro.c: Likewise.
3571         * cppspec.c: Likewise.
3572         * c-pragma.c: Likewise.
3573         * crtstuff.c: Likewise.
3574         * cse.c: Likewise.
3575         * cselib.c: Likewise.
3576         * c-semantics.c: Likewise.
3577         * c-typeck.c: Likewise.
3578
3579 2001-08-01  H.J. Lu <hjl@gnu.org>
3580
3581         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
3582
3583 2001-08-01  H.J. Lu <hjl@gnu.org>
3584
3585         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
3586
3587 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
3588
3589         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
3590         contextualizing Objective-C class name lookup by the lexer.
3591         (typespec_reserved_nonattr): Disable ObjC class name lookup after
3592         seeing a TYPESPEC.
3593         (protocoldef): Add support for forward @protocol declarations.
3594         (yylexname): Suppress ObjC class name lookup in certain contexts;
3595         re-enable after lookup is complete.
3596         (_yylex): Re-enable ObjC class name lookup when certain
3597         punctuation marks are seen.
3598
3599         * objc/objc-act.c (check_protocol_recursively): New function used
3600         for finding circular dependencies in protocols.
3601         (objc_declare_protocols): New function for handling forward
3602         @protocol declarations.
3603         (receiver_is_class_object): Detect the case when 'self' is used
3604         inside of a class method.
3605         (build_message_expr): Issue a warning if class method is desired
3606         but instance method is found instead.
3607         (conforms_to_protocol): Streamline.
3608         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
3609         protocol Foo, even if 'Bar foo' does not.
3610         (check_protocols): Streamline.
3611         (start_protocol): Add checks for circular and duplicate protocol
3612         definitions.
3613         (encode_aggregate_within): For typedefs of structs, encode the
3614         underlying struct.
3615         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
3616         (objc_declare_protocols): New prototype.
3617
3618 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3619
3620         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
3621         * cpplex.c (handle_newline): Update prototype.  Maintain logical
3622         line number.
3623         (skip_escaped_newlines, skip_block_comment, parse_string):
3624         Update accordingly.
3625         (_cpp_lex_token): Update, and store token position within the token.
3626         * cpplib.h (struct cpp_token): Add line and column entries.
3627         * cppmacro.c (replace_args): Position stringified tokens correctly.
3628
3629 2001-08-01  Andreas Jaeger  <aj@suse.de>
3630
3631         * basic-block.h: Add prototype for last_loop_beg_note.
3632
3633 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
3634
3635         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
3636         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
3637         comment.
3638         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
3639         while handling WITH_CLEANUP_EXPR node. Use second operand calling
3640         expand_decl_cleanup.
3641         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
3642         the first RTX.
3643         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
3644         operand while calling simple_cst_equal.
3645         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
3646         operand is the cleanup expression, the third is the RTL_EXPR.
3647         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
3648
3649 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
3650
3651         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
3652
3653 2001-07-31  matthew green  <mrg@eterna.com.au>
3654
3655         * config.gcc (i386-*-netbsdelf): New description.
3656         * config/i386/netbsd-elf.h: New file.
3657
3658 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
3659
3660         * loop.c (check_dbra_loop): Use single_set to compute
3661         jump_label.
3662
3663 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
3664
3665         PowerPC reorg and support for powerpc64-*-linux*.
3666
3667         Also fixes emitting of constants on 32 bit and 64 bit
3668         platforms.
3669
3670         * config.gcc: powerpc64-*-linux* is a new target.
3671         Things that needed aix.h now also include xcoff.h
3672
3673         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
3674         xcoff.h.
3675         Move AIX specific stuff into aix.h.
3676         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
3677         with more than just XCOFF now.
3678         (SET_ASM_OP): Remove, now defined where needed.
3679         (FUNCTION_PROLOGUE): New macro definition.
3680         (FUNCTION_EPILOGUE): New macro definition.
3681         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
3682
3683         * config/rs6000/xcoff.h: New file.
3684
3685         * config/rs6000/linux64.h: New file.
3686
3687         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
3688
3689 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
3690
3691         * rs6000.c (print_operand_address): Handle ELF syntax.
3692         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
3693         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
3694         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
3695
3696 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
3697
3698         * rs6000.c (rs6000_override_options): Only disable
3699         flag_function_sections for XCOFF.
3700         (exact_log2_cint_operand): New predicate.
3701         (reg_or_{add,sub}_cint64_operand): New predicates.
3702         (add_operand): Compare CONST_INT with fewer function calls.
3703         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
3704         (print_operand, case 'p'): Ensure positive operand.
3705         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
3706         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
3707         (PREDICATE_CODES): Add new predicates.
3708         * rs6000.md (addsi3): Split 32-bit constants more correctly.
3709         (divsi3, modsi3): Ensure positive power-of-2.
3710         (adddi3): Use new predicate.  Split 32-bit constants more
3711         correctly.  Re-arrange splitter to handle any constant.
3712         (subdi3): Use new predicate.
3713         (divdi3, moddi3): Ensure positive power-of-2.
3714         (movdi): Use rs6000_emit_set_const.
3715         (load_toc_v4_pic_di): Delete.
3716
3717 2001-07-31  Graham Stott <grahams@redhat.com>
3718
3719         * function.c (pad_below): Revert 2001-07-26 patch.
3720
3721 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
3722
3723         * reg-stack (convert_regs_1): Fix best edge condition.
3724
3725 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
3726
3727         * jump.c (duplicate_loop_exit_test): Better test for jumps
3728         entering the loop; create loop pre_header.
3729
3730 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
3731
3732         * doc/install.texi: Add s390 and s390x as new targets.
3733         * doc/invoke.texi: Add documantation of S/390 and zSeries
3734         target options.
3735         * doc/md.texi: Add documantation of S/390 and zSeries constraints.
3736
3737 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
3738
3739         * config/m68k/m68k.md: Replace all general_operand with
3740         nonimmediate_operand for all destinations.
3741         * config/m68k/m68k.c (not_sp_operand): Likewise.
3742
3743 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
3744
3745         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
3746
3747 2001-07-30  Richard Henderson  <rth@redhat.com>
3748
3749         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
3750         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
3751
3752 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
3753
3754         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
3755         Add missing doc strings
3756         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
3757         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
3758
3759 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
3760
3761         * i386.c (ix86_output_main_function_alignment_hack): New function.
3762         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
3763
3764         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
3765         edges by EDGE_DFS_BACK flag.
3766         (dump_edge_info): Add dfs_back flag.
3767         * basic-block.h (EDGE_DFS_BACK): New constant.
3768         (mark_dfs_back_edges): Declare.
3769         * alias.c (loop_p): Remove.
3770         (mark_constant_function): Use mark_dfs_back_edges.
3771
3772         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
3773         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
3774         (compensate_edge): Break out from ...
3775         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
3776         (convert_regs_2): Set block_done once block is really done;
3777         Do updating of the predecesors counts.
3778
3779         * toplev.c (rest_of_compilation): Recompute block_for_insn
3780         before post-reload cfg_cleanup.
3781         * function.c (thread_prologue_epilogue_insns):
3782         Call set_block_for_new_insns when emitting prologue directly.
3783
3784 2001-07-30  Andreas Jaeger  <aj@suse.de>
3785
3786         * jump.c: Add prototype for mark_modified_reg.
3787
3788         * cse.c (set_live_p): Add unused attribute.
3789
3790         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
3791         overflow.
3792         (scan_for_source_files): Use long for count to avoid overflow.
3793         (output_data): Likewise.
3794         (output_data): Don't use string concatatenation to silence gcc
3795         -traditional.
3796
3797         * predict.c: Fix typos and grammar.
3798
3799         * gcse.c (insert_insn_end_bb): Remove unused variables.
3800
3801 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
3802
3803         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
3804         (attempt_auto_inc): LIkewise.
3805         (mark_used_reg): Likewise.
3806         (try_pre_increment_1): Likewise.
3807         * regclass.c (regclass): Likewise.
3808         * global.c (allocno_compare): Update comment; change scaling factor.
3809         * local-alloc.c (QTY_CMP_PRI): Likewise.
3810         * regs.h (REG_FREQ_FROM_BB): New.
3811         (REG_FREQ_MAX): Likewise.
3812
3813 2001-07-30  H.J. Lu <hjl@gnu.org>
3814
3815         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
3816         -D_GNU_SOURCE.
3817
3818 2001-07-30  H.J. Lu  (hjl@gnu.org)
3819
3820         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
3821         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
3822         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
3823
3824 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
3825
3826         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
3827         as -mthumb-interwork when -mcpu=arm7 is specified.
3828
3829 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3830
3831         * predict.def (noreturn, loop branch, loop exit): Mark as first
3832         match heuristics.
3833
3834 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
3835
3836         * combine.c (try_combine): Avoid barrier after noop jumps.
3837
3838 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3839
3840         * cpphash.h (struct cpp_reader): Remove import_warning.
3841         * cpplib.c (skip_rest_of_line): Don't bother turning off
3842         macro expansion.
3843         (parse_include): Move include handling to...
3844         (do_include_common): ... here.  Move import warning from...
3845         (do_import): ... here.
3846         (do_pragma_poison): Don't do a callback for poison identifiers.
3847         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
3848         * cppmain.c (setup_callbacks): Similarly.
3849
3850 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
3851
3852         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
3853         handle multiple sets.
3854         * except.c (sjlj_mark_call_sites): .... here.
3855         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
3856
3857 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
3858
3859         Suggested by Richard Henderson and Richard Kenner:
3860         * combine.c (recog_for_combine): Use the fake recog
3861         only if instruction does not match.
3862         * rtl.h (NOOP_MOVE_INSN_CODE): New.
3863         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
3864
3865         * combine.c (try_combine): Discover noop jump as direct jump.
3866
3867 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
3868
3869         * df.c (df_rd_global_compute): Add successors to worklist, not
3870         current item.
3871         (df_ru_global_compute): Ditto.
3872
3873 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
3874
3875         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
3876         increment REG_N_SETS.
3877
3878 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
3879
3880         * sbitmap.h: New prototype for sbitmap_a_xor_b.
3881
3882         * sbitmap.c (sbitmap_a_xor_b): New function.
3883         ifdef the basic block stuff on IN_GCC.
3884
3885 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
3886
3887         * cppexp.c (parse_defined): Always record the macro name.
3888         (lex): Don't worry about identifiers, or special-case
3889         CPP_NOT here.
3890         (_cpp_parse_expr): Figure out at the end of the routine
3891         whether we saw a valid !defined() expression.
3892         * cppfiles.c (stack_include_file): Update for mi_valid.
3893         (_cpp_pop_file_buffer): Similarly.
3894         * cpplex.c (_cpp_lex_token): Similarly.
3895         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
3896         mi_if_not_defined, mi_lexed): Remove.
3897         (mi_valid): New.
3898         * cpplib.c (do_if): Simplify.
3899         (do_endif, push_conditional, _cpp_handle_directive): Update
3900         for renaming of mi_state to mi_valid.
3901 doc:
3902         * cpp.texi: Add index entries for digraphs, and add comment
3903         that C++ refers to them as alternative tokens.
3904
3905 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
3906
3907         * basic-block.h (CLEANUP_PRE_LOOP): New.
3908         * except.c (finish_eh_generation): Update call of cleanup_cfg.
3909         * sibcall.c (optimize_sibling_calls): Likewise.
3910         * toplev.c (rest_of_compilation): Likewise.
3911         * flow.c (try_forward_edges): Take argument MODE;
3912         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
3913         (try_optimize_cfg): Update call of try_forward_edges.
3914
3915 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
3916                                Jan Hubicka  <jh@suse.cz>
3917
3918         * (validate_replace_rtx_1): Fix simplification of MINUS.
3919
3920 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3921
3922         PR preprocessor/3669
3923         * cppinit.c (init_dependency_output): Turn off dump requests
3924         if sending dependencies to stdout.
3925
3926 2001-07-28  Richard Henderson  <rth@redhat.com>
3927
3928         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
3929         not optimizing.
3930
3931 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
3932
3933         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
3934
3935 2001-07-28  Kazu Hirata  <kazu@hxi.com>
3936
3937         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
3938         is VAR_DECL first to prevent an ICE.
3939
3940 2001-07-28  Richard Henderson  <rth@redhat.com>
3941
3942         * varasm.c (immed_real_const_1): Don't elide special cases for
3943         nested functions.
3944         (clear_const_double_mem): Clear const_tiny_rtx too.
3945
3946 2001-07-28  Richard Henderson  <rth@redhat.com>
3947
3948         * dwarf2out.c (dw_val_class_offset): New.
3949         (struct dw_ranges_struct, dw_ranges_ref): New.
3950         (ranges_table, ranges_table_allocated): New.
3951         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
3952         (add_AT_offset, add_ranges, output_ranges): New.
3953         (print_die, output_die): Handle dw_val_class_offset.
3954         (attr_checksum, size_of_die, value_format): Likewise.
3955         (gen_lexical_block_die): Handle non-contiguous blocks.
3956         (gen_block_die): Likewise.
3957         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
3958         if needed.  Dump the ranges table.
3959         * final.c (final_start_function): Remove unnecessary notes and
3960         rebuild the block tree before numbering the blocks.
3961         * function.c (reorder_blocks_0): Walk the existing block tree
3962         to unmark all blocks.
3963         (reorder_blocks_1): Create block fragments when duplicate block
3964         notes are seen.
3965         (reorder_fix_fragments): New.
3966         (reorder_blocks): Call it.
3967         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
3968
3969 2001-07-28  Richard Henderson  <rth@redhat.com>
3970
3971         * emit-rtl.c (adjust_address): Make a copy of the memory address.
3972
3973 2001-07-28  Richard Henderson  <rth@redhat.com>
3974
3975         * flow.c (add_to_mem_set_list): New function.
3976         (init_propagate_block_info): Use it.
3977         (mark_set_1): Likewise.
3978         (insn_dead_p): Canonicalize memory address for dead store
3979         comparison.  Allow wider mode stores to kill narrower mode stores.
3980         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
3981         (invalidate_mems_from_set): Don't handle MEMs.
3982
3983 2001-07-28  Kazu Hirata  <kazu@hxi.com>
3984
3985         * config/h8300/h8300.h: Fix formatting.
3986
3987 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
3988
3989         * basic-block.h (EDGE_FREQUENCY): New macro.
3990         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
3991         for new BB/edges.
3992         * flow.c (find_sub_basic_blocks): Likewise.
3993         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
3994         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
3995
3996         * predict.c (DEF_PREDICTOR): New argument FLAGS.
3997         (HITRATE): New macro.
3998         (PRED_FLAG_FIRST_MATCH): New constant.
3999         (predictor_info): New field flgags.
4000         (combine_predictions_for_insn): Use DS theory to combine
4001         probabilities; set the edge probabilities when finished.
4002         (estimate_probability): Avoid duplicated matches
4003         of LOOP_BRANCH heuristics for nested loops; update comment.
4004         * predict.def: Add flags for each prediction, set probabilities
4005         according to B&L paper.
4006         * predict.h (DEF_PREDICTOR): New argument FLAGS.
4007
4008         * profile.c (compute_branch_probabilities):  Cleanup way the edge
4009         probabilities are computed and REG_BR_PROB notes are dropped; if
4010         values does not match, emit error.
4011         (init_branch_prob): Do error instead of warning when profile driven
4012         feedback is missing or corrupt.
4013
4014 2001-07-27  DJ Delorie  <dj@redhat.com>
4015
4016         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
4017         against a constant, try to adjust the compare to have the desired
4018         constant in it so that min/max optimizations happen more often.
4019
4020 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
4021
4022         * flow.c (last_loop_beg_note): New function.
4023         (redirect_edge_and_branch): Use it.
4024         (split_edge): Likewise.
4025
4026         * alias.c (loop_p): Avoid uninitialized memory access.
4027
4028         * flow.c (try_forward_edges): Avoid accessing freed memory.
4029
4030         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
4031         variable access.
4032
4033 2001-07-26  Andrew Haley  <aph@redhat.com>
4034         Joern Rennecke <amylaar@redhat.com>
4035
4036         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
4037         (SUBTARGET_CPP_ENDIAN_SPEC): New.
4038         (SUBTARGET_CPP_SPEC): New.
4039         (CPP_SPEC): Remove.
4040         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
4041         (SUBTARGET_CPP_PTR_SPEC): New.
4042         (CPP_DEFAULT_CPU_SPEC): New.
4043         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
4044         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
4045         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
4046         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
4047         (SUBTARGET_CPP_SPEC): Define as an empty string.
4048
4049 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4050
4051         * doc/install.texi (Configuration): Properly link the host
4052         specific instructions also when generating HTML.
4053
4054 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
4055
4056         * flow.c (redirect_edge_and_branch_force): Test
4057         target->global_live_at_start.
4058
4059 2001-07-26  Richard Henderson  <rth@redhat.com>
4060
4061         * simplify-rtx.c (avoid_constant_pool_reference): Export.
4062         * rtl.h (avoid_constant_pool_reference): Declare it.
4063         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
4064         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
4065
4066 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
4067
4068         * rtl.h (cleanup_barriers): Declare.
4069         * jump.c (cleanup_barriers): New function.
4070         * toplev.c (rest_of_compilation): Call cleanup_barriers
4071         before loop optimizer and after bb_reorder.
4072
4073         * flow.c (back_edge_of_syntactic_loop_p): New.
4074         (split_edge): Use it.
4075
4076 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4077
4078         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
4079
4080 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
4081
4082         * cse.c (cse_process_notes): Replace any registers if the address
4083         remains valid.
4084
4085 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
4086
4087         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
4088         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
4089         (propagate_block): Update prototype.
4090         * flow.c (update_life_info): Simplify the CFG and
4091         recalculate the global regs which are alive when
4092         removing dead code during a global update.
4093         (propagate_block): Return non-zero if an INSN is
4094         deleted.
4095
4096 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4097
4098         * Makefile.in (LIBICONV): Define.
4099
4100 2001-07-26  Catherine Moore  <clm@redhat.com>
4101
4102         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
4103         of conditional to avoid tree checking errors.
4104
4105 2001-07-26  Kazu Hirata  <kazu@hxi.com>
4106
4107         * regmove.c (regmove_optimize): Don't replace a reg with
4108         another reg of a different mode.
4109
4110 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
4111
4112         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
4113         limit length of dependancy flush list.
4114         * params.h (MAX_PENDING_LIST_LENGTH): Define.
4115         * sched-int.h  (struct deps): Add pending_flush_length field.
4116         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
4117         has 1 element in it.
4118         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
4119         (sched_analyze): After a jump, if the pending memory flush list is too
4120         large, flush the pending lists.
4121         (init_deps): Initialize pending_flush_length to 0.
4122         * doc/invoke.texi (max_pending_list_length): Document parameter.
4123
4124 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4125
4126         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
4127         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
4128         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
4129
4130 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4131
4132         * cpphash.h (struct_lexer_state): Delete was_skipping.
4133         Move skipping here from struct cpp_reader.
4134         * cpplex.c (parse_identifier): Update.
4135         (_cpp_lex_token): Don't skip tokens in a directive.
4136         * cpplib.c (struct if_stack): Update.
4137         (start_directive, end_directive): Don't change skipping state.
4138         (_cpp_handle_directive): Update.
4139         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
4140         (do_else, do_endif): Update; only check for excess tokens if not
4141         in a skipped conditional block.
4142         (push_conditional): Update for new struct if_stack.
4143
4144 2001-07-26  Graham Stott  <grahams@redhat.com>
4145
4146         * function.c (locate_and_pad_parm): Also pad initial offset
4147         so that the total argument size also includes the padding.
4148
4149 2001-07-26  Graham Stott <grahams@redhat.com>
4150
4151         * gensupport.c (alter_output_for_insn): Correct enable checking failure
4152         change XSTR to XTMPL.
4153
4154         (process_one_cond_exec): Likewise
4155
4156 2001-07-25  Richard Henderson  <rth@redhat.com>
4157
4158         * varasm.c (assemble_variable): Create DECL_RTL before setting
4159         TREE_ASM_WRITTEN.
4160
4161 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
4162
4163         * predict.c (estimate_probability): Avoid duplicated predictions.
4164
4165         * loop.c (find_and_verify_loops): Grok multiple barriers.
4166
4167 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4168
4169         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
4170
4171         * dbxout.c: Consistently use putc instead of fputc.
4172         (print_wide_int): New function; call instead of direct fprintf.
4173         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
4174         (dbxout_type_fields, dbxout_type_method_1): Likewise.
4175         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
4176         (print_int_cst_octal): Likewise.
4177         (print_octal): Show we wrote characters.
4178         (dbxout_type): Set have_used_extensions in more places.
4179
4180 2001-07-25  Catherine Moore  <clm@redhat.com>
4181
4182         * config/v850/v850.c (v850_va_arg):  Use addr
4183         instead of valist to build incr.
4184
4185 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
4186
4187         * flow.c (delete_dead_jumptables): New function.
4188         (life_analyzis): Call it.
4189         * bb-reorder.c (skip_insns_after_block): Handle contradictory
4190         sequences.
4191
4192 2001-07-25  Richard Henderson  <rth@redhat.com>
4193
4194         * except.c (reachable_handlers): Handle a region being removed
4195         out from under a RESX.
4196
4197 2001-07-25  Richard Henderson  <rth@redhat.com>
4198
4199         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
4200         swap GE/GT if it is an fp comparison.
4201
4202 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
4203
4204         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
4205         operands.
4206
4207 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
4208
4209         * ssa.c (rename_insn_1): Do not wrap an assignment to a
4210         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
4211         glitch.
4212
4213         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
4214         throw an exception.
4215         (visit_expression): When attempting to simplify an expression,
4216         retrieve any modes for arguments before they are simplified
4217         to constants.
4218
4219 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
4220             Janis Johnson  <janis@us.ibm.com>
4221
4222         * stmt.c (expand_goto): A nonlocal goto can be a call too.
4223         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
4224         pointer parameters to match documented usage of nonlocal_goto.
4225         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
4226         parameters to their correct order.
4227         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
4228         parameters to their correct order.
4229
4230 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
4231
4232         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
4233
4234 2001-07-25  Jan Hubicka  <jh@suse.cz>
4235             Richard Henderson  <rth@redhat.com>
4236
4237         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
4238         the sequence.
4239         (make_edges): New argument update_p; populate the edge cache if set.
4240         (find_basic_blocks): Update make_edges invocation.
4241
4242 2001-07-24  Joel Sherrill <joel@OARcorp.com>
4243
4244         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
4245
4246 2001-07-24  Joel Sherrill <joel@OARcorp.com>
4247
4248         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
4249         -Acpu and -Amachine.h.
4250         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
4251         Corrected header to say ELF not a.out.
4252         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
4253         when given -msoft-float.
4254
4255 2001-07-24  Joel Sherrill <joel@OARcorp.com>
4256
4257         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
4258         extra multilib parts like arm-elf.
4259         (i960-*-coff*, i960-*-rtems): Should not use collect2.
4260         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
4261         crtfini.o as extra multilib parts.
4262
4263 2001-07-24  Joel Sherrill <joel@OARcorp.com>
4264
4265         * configure.in: Add rtems as a supported thread model.
4266         * gthr-rtems.h: Add missing entry point __gthread_active_p.
4267         * configure: Rebuilt.
4268
4269 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
4270
4271         * stor-layout.c (get_mode_alignment): make it work when
4272         BITS_PER_UNIT is not a power of two.
4273         * builtins.c (get_pointer_alignment): Likewise.
4274
4275 2001-07-24  Richard Henderson  <rth@redhat.com>
4276
4277         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
4278         the retrieved constant into the expected mode.
4279
4280 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
4281
4282         * flow.c (try_simplify_condjump): Avoid duplicated edges.
4283         (verify_flow_info): Check for duplicated edges; clarify
4284         error reporting.
4285
4286         * flow.c (block_label): Update basic_block_for_insn.
4287         (commit_edge_insertions): Call compute_bb_for_insn.
4288
4289         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
4290         returns too.
4291
4292         * flow.c (redirect_edge_and_branch,
4293         try_optimize_cfg): Use redirect_edge_succ_nodup
4294         (redirect_edge_succ_nodup): New.
4295         * basic_block.h (redirect_edge_succ_nodup): Declare.
4296
4297         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
4298         after gcse.
4299
4300 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
4301
4302         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
4303         (try_crossjump_to_edge): Update commetns.
4304         (try_crossjump_bb): Likewise.
4305
4306 2001-07-24  Richard Henderson  <rth@redhat.com>
4307
4308         * combine.c (distribute_notes): Move set of need_refresh
4309         for noop_move_p down to catch all cases.
4310
4311 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
4312
4313         * recog.c (split_all_insns_noflow): New.
4314         * rtl.h (split_all_insns_noflow): Declare.
4315         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
4316         * m68hc11.c (m68hc11_reorg): Likewise.
4317         * sh.c (machine_dependent_reorg): Likewise.
4318         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
4319         call.
4320
4321 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
4322
4323         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
4324         (ashlsi3_n splitter): Likewise.
4325         (lshrsi3_n splitter): Likewise.
4326
4327         (GOTaddr2picreg): Make const SImode.
4328         (sym_label2reg): Likewise.
4329         (symGOT2reg): Likewise.
4330         (symGOTOFF2reg) Likewise.
4331
4332         (casesi_worker_0): Make unspec SImode.
4333
4334 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
4335
4336         * config/sh/sh.c (barrier_align): Check that an operand really is
4337         an insn before extracting its INSN_CODE.
4338
4339 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
4340
4341         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
4342         dangling else.
4343
4344         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
4345         for SImode to prevent overflow.
4346
4347 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4348
4349         * config/mips/irix6-libc-compat.c: New file.
4350         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
4351         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
4352         passing workaround.
4353
4354 2001-07-24  lars brinkhoff  <lars@nocrew.org>
4355
4356         * rtl.texi (REG_POINTER): Document.
4357         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
4358         QFmode, HFmode, TQFmode, QCmode, and HCmode.
4359
4360 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
4361
4362         * flow.c (delete_noop_moves): Do not confuse libcall regions.
4363
4364 2001-07-23  Richard Henderson  <rth@redhat.com>
4365
4366         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
4367
4368 2001-07-23  Kazu Hirata  <kazu@hxi.com>
4369
4370         * config/h8300/h8300-protos.h: Add a prototype for
4371         general_operand_dst_push.
4372         * config/h8300/h8300.c (general_operand_dst_push): New.
4373         * config/h8300/h8300.h (OK_FOR_T): New.
4374         (EXTRA_CONSTRAINT): Use it.
4375         * config/h8300/h8300.md (movqi_push): Remove and integrate into
4376         the existing movqi pattern.
4377         (movhi_push): Likewise.
4378
4379         * reload.c: Fix comment typos.
4380
4381 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
4382
4383         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
4384
4385 2001-07-23  H.J. Lu  (hjl@gnu.org)
4386
4387         * doc/extend.texi: Update __builtin_return_address and
4388         __builtin_frame_address.
4389
4390 2001-07-23  Richard Henderson  <rth@redhat.com>
4391
4392         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
4393         before CSE.
4394         * config/i386/i386.md: New setcc+movzbl peephole2.
4395
4396 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4397
4398         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
4399         * objc/objc-act.c: Include debug.h.
4400         (synth_module_prologue): Save and restore debug hooks too.
4401
4402 2001-07-23  lars brinkhoff  <lars@nocrew.org>
4403
4404         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
4405         and C4X_FLOAT_FORMAT.
4406         (BOOL_TYPE_SIZE): Document.
4407
4408 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
4409
4410         * unroll.c (loop_iterations): Fix miscalculation of initial
4411         giv offset.
4412
4413 2001-07-13  Andrew Haley  <aph@redhat.com>
4414
4415         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
4416         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
4417         * config/sh/sh.c (sh_can_redirect_branch): New function.
4418         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
4419         * reorg.c (steal_delay_list_from_target): Use
4420         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
4421
4422 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
4423
4424         * flow.c (try_simplify_condjump): Unlink insn chain on
4425         fallthru edge; use can_fallthru.
4426
4427 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
4428
4429         * basic-block.h (find_sub_basic_block): Declare.
4430         * flow.c (make_edges): New arguments MIN and MAX;
4431         (find_sub_basic_blocks): Revamp to use make_edges
4432         and purge_dead_edges.
4433         (find_basic_blocks): Update call of find_sub_basic_block.
4434
4435         * recog.c (split_all_insns): Always expect CFG to be consistent;
4436         call find_sub_basic_blocks in case something has changed.
4437         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
4438         has been built.
4439
4440         * basic-block.h (delete_noop_moves): Declare.
4441         * combine.c (combine_instructions): Call it.
4442         (recog_for_combine): Tolerate noop moves
4443         (distribute_notes): Force refresh when register dies at noop move.
4444         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
4445         too.
4446         (life_analysis): Update delete_noop_moves call.
4447         (set_noop_p): Move too ...
4448         * rtlanal.c (noop_move_p): ... here.
4449         * rtl.h (noop_move_p): Declare.
4450
4451         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
4452         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
4453         after combine.
4454         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
4455         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
4456
4457 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
4458
4459         * reload.c (push_reload): Fix typo in comment.
4460         (find_reloads_address): Ditto.
4461         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
4462
4463 2001-07-22  Richard Henderson  <rth@redhat.com>
4464
4465         * flow.c: Grammar check and clarify a lot of comments.
4466         (try_simplify_condjump): Rename variables to be clearer.
4467         (try_forward_edges): Skip complex and fallthru edges.
4468         Rearrange tests to avoid duplicate checks.
4469         (flow_find_cross_jump): Likewise.
4470         (outgoing_edges_match): Allow match if neither branch has
4471         probability data.  Loosen probability match to 5%.
4472         (try_crossjump_to_edge): Hoist repeated indirection into
4473         local variables.
4474         (try_crossjump_bb): Don't check complex edges.  Eliminate
4475         redundant crossjump tests.
4476         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
4477         checks before more expensive checks.
4478
4479 2001-07-22  Richard Henderson  <rth@redhat.com>
4480
4481         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
4482         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
4483         arguments.
4484
4485 2001-07-22  Richard Henderson  <rth@redhat.com>
4486
4487         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
4488         (const_sint32_operand): Likewise.
4489         * m68k.md (anon mulsi pattern): Use const_int_operand not
4490         const_sint32_operand.
4491         (umulsi3_highpart): Zero extend a constant input.
4492         (smulsi3_highpart): Don't bother checking SImode constant.
4493         (const_umulsi3_highpart): Give op3 DImode.
4494         (const_smulsi3_highpart): Likewise.
4495
4496 2001-07-22  Richard Henderson  <rth@redhat.com>
4497
4498         * flow.c (split_block): Make sure bb_note is included in the
4499         new block when splitting before a label.
4500
4501 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
4502
4503         * basic-block.h (redirect_edge_and_branch_force,
4504         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
4505         * flow.c (redirect_edge_and_branch_force,
4506         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
4507         (redirect_edge_and_branch_force): Fix copying of lifeness information.
4508         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
4509         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
4510         instead of label; update CFG after transformation.
4511         (find_if_case_1): Update call, use redirect_edge_and_branch_force
4512         for finishing the transformation; handle even case where ELSE
4513         does not follow THEN.
4514         (find_if_case_2): Update call of dead_or_predictable; simplify
4515         CFG update.
4516
4517         * emit-rtl.c (split_branch_probability): New global variable.
4518         (try_split): Take care to set split_branch_probability and
4519         create REG_BR_PROB note for new jump insns.
4520         * md.texi (define_split): Document new feature.
4521
4522         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
4523
4524 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4525
4526         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
4527         (asm_out_file): Remove redundant declaration.
4528         (assemble_asm): Remove old #if 0 block.
4529         (assemble_variable): Remove end of function; debug output is
4530         now handled with global_decl.  Remove old #if 0 block.  Update.
4531         Remove saved_in_section and associated no-op code.
4532         * Makefile.in (varasm.o): Correct dependencies.
4533
4534 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
4535
4536         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4537         the definition in defaults.h.
4538
4539 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
4540
4541         * jump.c: Update comments.
4542         (delete_barrier_successors, delete_unreferenced_labels,
4543         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
4544         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
4545         jump_optimize, jump_optimize_minimal): Kill.
4546         (rebuild_jump_labels): Move code from jump_optimize_1.
4547         (purge_line_number_notes): Likewise.
4548         (copy_loop_headers): Likewise.
4549         * reg-stack.c: Update comment.
4550         * stmt.c: Likewise.
4551         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
4552         JUMP_AFTER_REGSCAN): Kill.
4553         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
4554         purge_line_number_notes and copy_loop_headers.
4555
4556 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
4557            Richard Henderson  <rth@redhat.com>
4558
4559         * dbxout.c (dbxout_global_decl): New.
4560         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
4561         * sdbout.c (sdbout_finish): New.
4562         (sdbout_debug_hooks): Use it, add comments.
4563         (sdbout_global_decl): Defer initialised public vars to
4564         sdbout_finish.
4565         * varasm.c (assemble_variable): Don't output debug information
4566         for file-scope variables.
4567
4568 2001-07-22  Richard Henderson  <rth@redhat.com>
4569
4570         * config/alpha/alpha.c (get_trap_mode_suffix): New.
4571         (get_round_mode_suffix): New.
4572         (print_operand): Use them for [/].  Remove support for [&'`()+].
4573         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
4574         * config/alpha/alpha.md (attr round_suffix): New.
4575         (attr trap_suffix): New.
4576         (all insns): Set them appropriately.  Use %/ instead of the
4577         myriad punctuators.
4578
4579 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
4580
4581         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
4582
4583 2001-07-22  Richard Henderson  <rth@redhat.com>
4584
4585         * regrename.c (regrename_optimize): Compute nregs for each
4586         potential target register.
4587
4588 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
4589            Richard Henderson  <rth@redhat.com>
4590
4591         * dbxout.c (dbxout_global_decl): New.
4592         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
4593         * sdbout.c (sdbout_finish): New.
4594         (sdbout_debug_hooks): Use it, add comments.
4595         (sdbout_global_decl): Defer initialised public vars to
4596         sdbout_finish.
4597         * varasm.c (assemble_variable): Don't output debug information
4598         for file-scope variables.
4599
4600 2001-07-21  H.J. Lu  (hjl@gnu.org)
4601
4602         * config/mips/mips.c (mips_cpu): Moved into ...
4603         (override_options): Here.
4604
4605         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
4606         mips_tune.
4607         (mips_cpu): Removed.
4608
4609 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4610
4611         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
4612         ("iorqi3"): Likewise.
4613         ("xorqi3"): Likewise.
4614         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
4615         ("*subhi3_sp): Likewise.
4616         ("*subhi3"): Likewise.
4617         ("extendhisi2"): Accept D, X and Y as source operand to avoid
4618         reload problems.
4619
4620 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
4621
4622         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
4623         * config/freebsd.h: Likewise.
4624         * config/linux.h: Likewise.
4625         * config/openbsd.h: Likewise.
4626         * config/alpha/linux-elf.h: Likewise.
4627         * config/arm/linux-elf.h: Likewise.
4628         * config/d30v/d30v.h: Likewise.
4629         * config/fr30/fr30.h: Likewise.
4630         * config/ia64/aix.h: Likewise.
4631         * config/ia64/ia64.h: Likewise.
4632         * config/mips/linux.h: Likewise.
4633         * config/pj/pj.h: Likewise.
4634         * config/rs6000/linux.h: Likewise.
4635         * config/sparc/linux.h: Likewise.
4636         * config/sparc/linux64.h: Likewise.
4637
4638 2001-07-20  Bruce Korb  <bkorb@gnu.org>
4639
4640         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
4641         because getc() and char* may disagree on signedness.
4642
4643 2001-07-20  Richard Henderson  <rth@redhat.com>
4644
4645         * doc/rtl.texi (REG_DEAD): Update for current semantics.
4646
4647         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
4648         insns to delete in the presence of cc0 in a jump insn.
4649
4650 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
4651                                Jan Hubicka  <jh@suse.cz>
4652
4653         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
4654         of doing the change by hand.
4655
4656 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
4657
4658         * rtlanal.c (set_noop_p): Return true for noop jumps.
4659
4660         * expr.c (emit_single_push_insn): Add call to push expander.
4661         * expr.h (optab_index): Add OTI_push
4662         (push_optab): New constant.
4663         * genopinit.c (optabs): Add push_optab.
4664         * optabs.c (init_optab): Init push optab.
4665         * md.texi (push??1): Document
4666
4667 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4668
4669         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
4670         expand to emit the pattern; put a REG_INC note for push/pop
4671         instructions.
4672         ("movdf", "movdf_internal"): Likewise.
4673         ("movsi", "movsi_internal"): Likewise.
4674         ("movsf", "movsf_internal"): Likewise.
4675         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
4676
4677 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4678
4679         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
4680         gen_highpart.
4681
4682 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
4683
4684         * params.def: Change default max inline insns to 100.
4685
4686 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
4687
4688         * combine.c (combine_simplify_rtx): Generate a new shift operation
4689         when simplifying the first operand of a (neg (ashift)) expression.
4690
4691 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
4692
4693         * regclass.c (N_REG_INTS): Use only 32 bits per element.
4694
4695 2001-07-20  Kelley Cook  <kelley.cook@home.com>
4696
4697         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
4698         information.   Move rest into ...
4699         (*-*-solaris): ... here.  Eliminate redundant information and
4700         reword necessary packages section.  Delete 4.x assembler bug info.
4701         (sparc-sun-*): Merge into ...
4702         (sparc-sun-sunos*): here.
4703
4704 2001-07-20  Catherine Moore  <clm@redhat.com>
4705
4706         * config/v850/v850.md (casesi): Generate LABEL_REF
4707         with Pmode.
4708
4709 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
4710
4711         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
4712         * i386.c (ix86_zero_extend_to_Pmode): Make global.
4713         * i386.md (strclrsi expander): Use it.
4714
4715 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
4716
4717         * integrate.c (copy_insn_list): handle
4718         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
4719         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
4720         identically as to CODE_LABEL.
4721
4722         * fold-const (fold): Convert A/B/C to A/(B*C) and
4723         A/(B/C) to (A/B)*C
4724
4725         * except.c (connect_post_landing_pads): Delete the RESX insns.
4726
4727 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
4728
4729         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
4730
4731         * config/mips/mips.md (nmadd/nmsub): Use macro.
4732
4733 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
4734
4735         * cppinit.c (remove_dup_dir): Make static.
4736         (remove_dup_dirs): Make static. Only warn about preempting a
4737         system directory with a non-system directory.
4738
4739 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
4740
4741         * ifcvt.c (noce_try_store_flag_constants): Correct order
4742         of parameters to trunc_int_for_mode.
4743
4744 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
4745
4746         * reorg.c (fill_simple_delay_slots): If an instruction might throw
4747         an exception that will be caught within this function, do not fill
4748         its delay slot with any subsequent instruction.
4749
4750 2001-07-19  Steve Ellcey <sje@cup.hp.com>
4751
4752         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
4753         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
4754         pointer extension instruction.
4755         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
4756         * simplify-rtx.c (simplify_unary_operation) Likewise.
4757         * explow.c (convert_memory_address) Check value of
4758         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
4759         less than zero.
4760         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
4761         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
4762         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
4763         Add Multilib Support.
4764         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
4765         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
4766         Add Multilib Support.
4767         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
4768         support.
4769         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
4770         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
4771         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
4772
4773 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
4774
4775         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
4776         old and new operands in `<', `3' and `b'.
4777
4778 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4779
4780         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
4781         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
4782         (toplev.o): Don't depend on xcoffout.h.
4783         * c-decl.c: Include debug.h
4784         (duplicate_decls): Use debug hook.
4785         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
4786         (dbx_debug_hooks, xcoff_debug_hooks): Update.
4787         (dbxout_types): Remove.
4788         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
4789         * debug.c (do_nothing_debug_hooks): Update.
4790         (debug_true_tree, debug_nothing_rtx): New.
4791         * debug.h (struct rtx_def): New.
4792         (struct gcc_debug_hooks): New hooks ignore_block,
4793         outlining_inline_function and label.
4794         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
4795         dwarf2out_frame_finish): New.
4796         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
4797         Make static, update prototype.
4798         (dwarf2_debug_hooks): Update.
4799         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
4800         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
4801         * dwarfout.c (dwarf_debug_hooks): Update.
4802         * emit-rtl.c: Include debug.h.
4803         (remove_unnecessary_notes): Use debug hook.
4804         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
4805         (final_scan_insn): Use debug hook.
4806         * integrate.c (output_inline_function): Use debug hook.
4807         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
4808         (sdb_debug_hooks): Update.
4809         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
4810         * toplev.c: Don't include xcoffout.h.
4811         (note_outlining_of_inline_function, debug_ignore_block): Remove.
4812         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
4813         Remove.
4814         * tree.h (dwarf2out_do_frame): Remove.
4815
4816 2001-07-19  Catherine Moore  <clm@cygnus.com>
4817
4818         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
4819
4820 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
4821
4822         * reload1.c (eliminate_regs_in_insn): When updating a set
4823         to the frame pointer to the hardware frame pointer, perform
4824         the update always not just when REPLACE is set.
4825
4826         * reload1.c (choose_reload_regs): Don't inherit a reload
4827         that crosses multiple registers if registers past the first
4828         don't fit in the desired class.
4829
4830         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
4831         when negating constants.
4832
4833 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
4834
4835         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
4836         * doc/tree.texi: Ditto.
4837
4838 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
4839             Jakub Jelinek  <jakub@redhat.com>
4840
4841         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
4842         (extract_cie_info): Handle "eh" augmentation properly,
4843         remember eh_ptr.
4844         (struct frame_state, __frame_state_for): New.
4845
4846 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4847
4848         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
4849         HANDLE_SYSV_PRAGMA): Define.
4850         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
4851         previous args.
4852         (copy_object): Caller changed.
4853
4854 2001-07-19  Andreas Schwab  <schwab@suse.de>
4855
4856         * configure.in (assembler dwarf2 debug_line support): Define nop
4857         insn for m68k.
4858         * configure: Regenerated.
4859
4860 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4861
4862         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
4863         dwarfout.h.
4864         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
4865         to conditionally compiled block.
4866         (dbx_debug_hooks, xcoff_debug_hooks): Update.
4867         * dbxout.h (dbxout_function): Remove.
4868         * debug.c (do_nothing_debug_hooks): Update.
4869         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
4870         global_decl, deferred_inline_function.
4871         * dwarf2out.c (dwarf2_debug_hooks): Update.
4872         (dwarf2out_global_decl): New.
4873         * dwarfout.c: Don't include dwarfout.h.
4874         (dwarfout_global_decl, dwarfout_function_decl,
4875         dwarfout_deferred_inline_function): New.
4876         (dwarf_debug_hooks): Update.
4877         * dwarfout.h: Remove.
4878         * final.c: Don't include dwarfout.h.
4879         * sdbout.c (sdbout_global_decl): New.
4880         (sdbout_debug_hooks): Update.
4881         * toplev.c: Don't include dwarfout.h.
4882         (check_global_declarations, rest_of_compilation): Use new debug hooks.
4883         (note_deferral_of_defined_inline_function): Remove.
4884         * toplev.h (note_deferral_of_defined_inline_function): Remove.
4885         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
4886         * ch/lex.c: Don't include dwarfout.h.
4887         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
4888         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
4889         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
4890         * cp/optimize.c: Include debug.h.
4891         (maybe_clone_body): Use debug hook.
4892         * cp/semantics.c: Include debug.h.
4893         (expand_body): Use debug hook.
4894         * po/POTFILES.in: Remove dwarfout.h.
4895
4896 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4897
4898         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
4899         * c-parse.in (yyerror, _yylex): Similarly.
4900         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
4901         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
4902         Update comments.
4903         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
4904         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
4905
4906 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
4907
4908         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
4909         in-class declaration at -g1.  Fixes c++/2814.
4910
4911 2001-07-18  Richard Henderson  <rth@redhat.com>
4912
4913         * doc/md.texi (reload_in/out): Document restrictions in predicates
4914         and constraints for these patterns.  Document empty string matching
4915         ALL_REGS.
4916
4917 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4918
4919         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
4920
4921 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
4922
4923         * cse.c: Undo my previous patch.
4924
4925 2001-07-18  Tom Tromey  <tromey@redhat.com>
4926
4927         For PR java/2812:
4928         * configure: Rebuilt.
4929         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
4930         instead.
4931         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
4932
4933 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
4934                                Jan Hubicka  <jh@suse.cz>
4935
4936         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
4937         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
4938         * jump.c (mark_jump_label): Do not forward branches.
4939
4940 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
4941
4942         * cse.c (delete_trivially_dead_insns): Delete the libcall block
4943         when return value is unused.
4944
4945 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
4946
4947         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
4948
4949 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
4950
4951         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
4952         on error.  We can't blindly return the result of
4953         pthread_mutex_trylock because it returns a positive number on
4954         error, while we must return -1 on error.
4955         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
4956         fixes.
4957         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
4958
4959 2001-07-18  Andreas Jaeger  <aj@suse.de>
4960
4961         * integrate.c (output_inline_function): Correct type of debug_hooks.
4962
4963 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
4964
4965         * combine.c (combine_simplify_rtx): DIV can be treated
4966         associatively for floats if unsafe math optimisations are enabled.
4967
4968 2001-07-17  Richard Henderson  <rth@redhat.com>
4969
4970         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
4971
4972 2001-07-17  Richard Henderson  <rth@redhat.com>
4973
4974         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
4975         don't force the function address into a register.
4976         (expand_call, emit_library_call_value_1): Update callers.
4977         * builtins.c (expand_builtin_apply): Likewise.
4978         * expr.h (prepare_call_address): Update decl.
4979
4980 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
4981
4982         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
4983         config directory.
4984         * config/i386/chorus.h: Move up.
4985         * config/sparc/chorus.h: Likewise.
4986         * config/rs6000/chorus.h: Likewise.
4987         * config/chorus.h: Moved here.
4988
4989 2001-07-17  Andreas Schwab  <schwab@suse.de>
4990
4991        * configure.in  (assembler eh_frame optimization): Handle big
4992        endian.
4993        * configure: Regenerated.
4994
4995 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
4996
4997         * expr.c (epxand_expr): Convert divisions into multiplications by
4998         reciprocals if -ffast-math.
4999
5000 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5001
5002         * dbxout.c (dbxout_really_begin_function): Rename to
5003         dbxout_begin_function.
5004         (dbx_debug_hooks, xcoff_debug_hooks): Update.
5005         (dbxout_begin_function): Remove.
5006         (dbxout_function): Update.
5007         (dbxout_source_line): Update prototype.
5008         * dbxout.h (dbxout_begin_function): Remove.
5009         * debug.c (do_nothing_debug_hooks): Update.
5010         (debug_nothing_tree): Update.
5011         (debug_nothing_charstar_rtx): Remove.
5012         * debug.h (union tree_node): Declare.
5013         (struct rtx_def): Remove.
5014         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
5015         begin_function.  Change source_line prototype.
5016         (debug_nothing_tree): New.
5017         (debug_nothing_charstar_rtx): Delete.
5018         (dwarf2out_begin_prologue): Moved from ...
5019         * tree.h: ... here.
5020         * dwarf2out.c (dwarf2_debug_hooks): Update.
5021         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
5022         debug info, call dwarf2out_source_line.
5023         (dwarf2out_souce_line): Update prototype.
5024         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
5025         Change prototype, make static.
5026         (dwarfout_source_line): Update prototype.
5027         (dwarf_debug_hooks): Update.
5028         * dwarfout.h (dwarfout_begin_function): Remove.
5029         * final.c (final_start_function, final_scan_insn): Use appropriate
5030         debug hooks, update to use notice_source_line.
5031         (output_source_line): Rename notice_source_line.  Don't call the
5032         source_line debug hook.
5033         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
5034         make static, update prototype.
5035         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
5036         prototype.
5037         (sdbout_end_prologue): New.
5038         (sdbout_source_line): Update prototype.
5039         (sdbout_debug_hooks): Update.
5040         (sdbout_symbol): Remove unused var.
5041         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
5042         Delete.
5043         * varasm.c: Include debug.h.
5044         (assemble_start_function): Use begin_function debug_hook.
5045         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
5046         update with prototype.
5047         (xcoffout_source_line): Update prototype.
5048         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
5049         update prototype.
5050         (xcoffout_source_line): Update prototype.
5051
5052 2001-07-17  Richard Henderson  <rth@redhat.com>
5053
5054         * c-typeck.c (build_binary_op): Do not shorten unsigned
5055         right shift after sign extension.
5056
5057 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
5058
5059         * combine.c (combine_simplify_rtx): Attempt to simplify
5060         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
5061
5062         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
5063         (simplify_binary_operation, simplify_unary_operation,
5064          simplify_relational_operation): Use it.
5065
5066         * combine.c (combine_simplify_rtx): Don't do associative law
5067         on divisions; allow associative law on floats.
5068
5069 2001-07-17  H.J. Lu <hjl@gnu.org>
5070             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5071
5072         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
5073         ASM_OUTPUT_WEAK_ALIAS are defined.
5074         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
5075         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
5076         Moved ...
5077         * config/mips/iris5.h: ... here.
5078         (HANDLE_SYSV_PRAGMA): Defined as 1.
5079         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
5080         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
5081         symbol.
5082
5083 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
5084
5085         * c-parse.in (all_prefix_attributes): New variable.
5086         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
5087         (maybe_resetattrs): New production.
5088         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
5089         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
5090         notype_initdcl, nested_function, notype_nested_function,
5091         component_decl, components, components_notype,
5092         component_declarator, component_notype_declarator,
5093         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
5094         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
5095         after a comma being applied to more than one declarator.
5096         * doc/extend.texi (Attribute Syntax): Update.  Remove
5097         documentation of bugs that are no longer present.
5098
5099 2001-07-13  Eric Christopher  <echristo@redhat.com>
5100
5101         * config/mips/mips.h: Change TUNE_MIPS* options to use
5102         mips_tune.
5103         (EXTRA_SPECS): Add cc1_cpu_spec.
5104         * config/mips/mips.md (muldf3): Fix typo.
5105
5106 2001-07-16  Richard Henderson  <rth@redhat.com>
5107
5108         * config/m68k/m68k.c: Include expr.h and reload.h.
5109         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
5110         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
5111
5112 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
5113             Richard Henderson  <rth@redhat.com>
5114
5115         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
5116         (insn_live_p): Fix fall off end of function.
5117         (dead_libcall_p): Remove COUNTS argument; update callers.
5118         (delete_trivially_dead_insns): Remove unused variables.
5119
5120 2001-07-17  Andreas Jaeger  <aj@suse.de>
5121
5122         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
5123         x86-64 pic support.
5124
5125         * lcm.c (optimize_mode_switching): Avoid warning for unused
5126         variable if !NORMAL_MODE.
5127
5128         * flow.c (try_crossjump_to_edge): Remove unused variable.
5129
5130 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5131
5132         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
5133         atexit declaration in stdlib.h.
5134
5135 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
5136
5137         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
5138
5139 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
5140
5141         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
5142         * except.c (finish_eh_generation): Update call of cleanup_cfg;
5143         do rebuild_jump_labels instead of jump_optimize
5144         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5145         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
5146         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
5147
5148         * flow.c: Include timevar.h
5149         (find_basic_block): Push/pop timevar;
5150         (cleanup_cfg): Likewise.
5151         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
5152         * Makefile: Add dependencies on timevar.h
5153
5154         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
5155         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
5156
5157         * rtl.h (delete_trivially_dead_insns): Add new parameter.
5158         * toplev.c (rest_of_compilation): Update calls.
5159         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
5160         (delete_trivially_dead_insns): ... here; accept new argument
5161         preserve_basic_blocks; preserve basic blocks if set.
5162
5163         * reg-stack.c (stack_regs_mentioned): Return 0 if
5164         stack_regs_mentioned_data is not initialized.
5165         (reg_to_stack): Make stack_regs_mentioned survive after the
5166         reg-stack is completted; do not call cleanup_cfg.
5167         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
5168         make cleanup_cfg after bb-reorder to output to debug file.
5169
5170 2001-07-16  Richard Henderson  <rth@redhat.com>
5171
5172         * regclass.c (init_reg_sets): Use only 32 bits per initializer
5173         from int_reg_class_contents.
5174
5175 2001-07-16  Richard Henderson  <rth@redhat.com>
5176
5177         * hard-reg-set.h (regs_invalidated_by_call): Declare.
5178         * regclass.c (regs_invalidated_by_call): Move from cse.c.
5179         (init_reg_sets_1): Move initialization from cse_main.
5180         * cse.c (regs_invalidated_by_call): Move to regclass.c.
5181         (cse_main): Move its initialization also.
5182         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
5183         * flow.c (propagate_one_insn): Likewise.
5184         * gcse.c (compute_hash_table): Likewise.
5185         (compute_kill_rd, compute_store_table): Likewise.
5186         * sched-deps.c (sched_analyze_1): Likewise.
5187
5188 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
5189
5190         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
5191         gen_rtx_SET.
5192
5193 2001-07-16  Steve Ellcey <sje@cup.hp.com>
5194
5195         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
5196         in if statement so we don't access undefined memory.
5197
5198 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
5199
5200         * gcse.c: Update comment at top.
5201         Update comment on mem handling.
5202         mem_last_set, mem_first_set, mem_set_in_block: gone.
5203         Declaration of reg_set_info: gone.
5204         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
5205         pointless with load_killed_in_block_p (they are *more*
5206         conservative then it, not less, and less accurate).
5207         (oprs_not_set_p): Ditto.
5208         (alloc_gcse_mem): Don't allocate mem_set_in_block
5209         (free_gcse_mem): Don't free it, either.
5210         (record_last_mem_set_info): Update comment in front, remove
5211         mem_*set_* stuff. Note the reason we don't handle stores directly
5212         here.
5213         (compute_hash_table): Update comments to reflect reality. Remove
5214         mem_*set_* references.
5215         (reset_opr_set_tables): Remove mem_*set_* references.
5216         (mark_call): Ditto.
5217         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
5218         (mark_clobber): Ditto (on both parts, we double set here too).
5219         (expr_killed_p): Remove mem_set_in_block test.
5220         (compute_transp): Remove mem_set_in_block test.
5221
5222         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
5223         of edge, and removal of phi alternative to dump file.
5224         (ssa_ccp_substitute_constants): Add note about register now being
5225         constant, and which uses were replaced in what insns to dump file.
5226
5227 2001-07-16  Andreas Jaeger  <aj@suse.de>
5228
5229         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
5230         variables of type HOST_WIDEST_INT.
5231
5232         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
5233         (__bb_exit_func): Correct type of count_max to avoid overflow.
5234         (num_digits): Handle long long argument.
5235
5236         * combine.c (gen_lowpart_for_combine): Remove unused variable.
5237
5238 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5239
5240         * output.h (sdb_begin_function_line): Restore as an extern
5241         variable.
5242         * sdbout.c (sdb_begin_function_line): Make extern.
5243
5244 2001-07-15  Richard Henderson  <rth@redhat.com>
5245
5246         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
5247         * genrecog.c (maybe_both_true_mode): New.
5248         (maybe_both_true_2): Use it.
5249         (write_switch): Don't put Pmode in a switch.
5250         * rtl.c (mode arrays): Don't explicitly size them.
5251
5252 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
5253
5254         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
5255         handling; move unconditional splitting before mode switching.
5256
5257         * i386.md (type): Add fistp type.
5258         (i387, length_attr, scheduling definitions): Handle this type.
5259         (fix_trunc?f?i2): Revamp to use mode switching.
5260         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
5261         * i386.h (fp_cw_mode): New enum
5262         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
5263         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
5264
5265 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5266
5267         * Makefile.in (integrate.o): Add debug.h.
5268         * integrate.c (debug.h): Add.
5269         (output_inline_function): Save, reset, and restore debug_hooks.
5270
5271 2001-07-15  Richard Henderson  <rth@redhat.com>
5272
5273         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
5274         instead of COMPARE for the EQUIV expression.
5275
5276 2001-07-15  Richard Henderson  <rth@redhat.com>
5277
5278         * flow.c (redirect_edge_and_branch_force): Initialize
5279         global_live_at_start and global_live_at_end.
5280         (allocate_bb_life_data): Export.
5281         * basic-block.h (allocate_bb_life_data): Declare.
5282         * toplev.c (rest_of_compilation): Call it.
5283
5284 2001-07-15  Richard Henderson  <rth@redhat.com>
5285
5286         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
5287         (alpha_tablejump_best_label): New.
5288         * config/alpha/alpha-protos.h: Declare them.
5289         * config/alpha/alpha.md: Use braced strings for code blocks.
5290         (tablejump_osf): Break out add with r29.
5291         (tablejump_osf_internal): Remove.
5292         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
5293         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
5294
5295 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
5296
5297         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
5298         of the movable.
5299
5300         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
5301
5302         * i386-protos.h (ix86_split_fp_branch): Update prototype.
5303         (ix86_fp_jump_nontrivial_p): New.
5304         * i386.md (fp_jcc_?): Update call of split_fp_branch;
5305         use ix86_fp_jump_nontrivial_p.
5306         * i386.c (ix86_fp_jump_nontrivial_p): New.
5307         (ix86_split_fp_branch): Accept code instead of rtx.
5308         (ix86_expand_compare): Expand comparison early in case
5309         doing so is resonably cheap.
5310
5311 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
5312
5313         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
5314         not 'machine'.
5315         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
5316         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
5317
5318 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
5319
5320         * dbxout.c (dbxout_source_line): Make static, update prototype.
5321         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
5322         (dbxout_init, dbxout_finish, dbxout_source_line,
5323         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
5324         * dbxout.h (dbxout_source_line): Delete.
5325         * debug.c (debug_nothing_file, debug_nothing_file_int,
5326         debug_nothing_file_charstar_rtx): New.
5327         (do_nothing_debug_hooks): Update.
5328         (debug_nothing_void, debug_nothing_charstar_rtx,
5329         dwarf2out_end_epilogue): New.
5330         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
5331         * debug.h (struct rtx_def): Declare.
5332         (gcc_debug_hooks): New hooks source_line, end_epilogue
5333         and end_function.
5334         (debug_nothing_void, debug_nothing_charstar_rtx,
5335         dwarf2out_end_epilogue): New.
5336         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
5337         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
5338         (dwarf2_debug_hooks): Update.
5339         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
5340         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
5341         * dwarf2out.h (dwarf2out_source_line): Remove.
5342         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
5343         Make static, update prototype.
5344         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
5345         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
5346         (dwarf_debug_hooks): Update.
5347         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
5348         dwarfout_end_function): Remove.
5349         * final.c (profile_function): Use debug hooks for ending functions
5350         and epilogues.
5351         (output_source_line, final_end_function): Update prototype,
5352         use debug hooks.
5353         (final_start_function, final_scan_insn): Update.
5354         * output.h (sdb_begin_function_line): Remove.
5355         (final_end_function): Update prototype.
5356         * sdbout.c (sdb_begin_function_line): Make static.
5357         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
5358         (sdbout_source_line): New.
5359         (sdbout_end_epilogue, sdbout_end_function): Make static, update
5360         prototypes.
5361         (sdb_debug_hooks): Update.
5362         (sdbout_init, sdbout_source_line,
5363         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
5364         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
5365         * toplev.c (compile_file, rest_of_compilation): Update.
5366         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
5367         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
5368         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
5369         Update for prototype changes.
5370         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
5371         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
5372
5373 2001-07-15  Richard Henderson  <rth@redhat.com>
5374
5375         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
5376         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
5377         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
5378         * config/alpha/alpha.c: Likewise.
5379         * config/alpha/alpha.md: Likewise.
5380         * config/alpha/alpha32.h: Likewise.
5381         * config/alpha/vms.h: Likewise.
5382         (OPEN_VMS): Remove.
5383
5384 2001-07-14  Richard Henderson  <rth@redhat.com>
5385
5386         * config/alpha/alpha.md: Use define_constants for unspec values.
5387         Substitute throughout.
5388
5389 2001-07-14  Tim Josling  <tej@melbpc.org.au>
5390
5391         * tree.def (EXPON_EXPR) remove. Never supported anyway.
5392
5393 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5394
5395         * pa.md: Remove unused constraints from define_split's.
5396
5397 2001-04-14  Richard Henderson  <rth@redhat.com>
5398
5399         * ifcvt.c (find_cond_trap): Test for exit block.
5400
5401 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
5402
5403         Re-install recently reverted patch.
5404         * emit-rtl.c (try_split): Update mark_jump_label call.
5405         * flow.c (find_sub_basic_blocks): Likewise.
5406         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
5407         jump_back_p): Kill.
5408         (mark_all_labels): Kill second parameter.
5409         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
5410         (rebuild_jump_labels, jump_optimize_minimal): Update call
5411         of jump_optimize_1.
5412         (jump_optimize_1): Kill crossjumping code.
5413         (mark_jump_label): Kill cross_jump parameter.
5414         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
5415         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
5416         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
5417          splitting.
5418         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
5419         DFI_bpro.
5420         (dump_file_info): Likewise.
5421         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
5422         reorganize passes to do reg-stack first, bb-reorder second.
5423         * invoke.texi (-d letters doc): Remove the jump2 pass.
5424
5425 2001-07-14  Richard Henderson  <rth@redhat.com>
5426
5427         * ifcvt.c (find_cond_trap): New.
5428         (find_if_header): Call it.
5429         (merge_if_block): Relax existing jump sanity check.
5430         * jump.c (jump_optimize_1): Remove conditional trap handling.
5431
5432 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
5433
5434         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
5435         millicode.
5436         (insn_refs_are_delayed): Correct comment.
5437         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
5438         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
5439         instead of r31.  Make associated insn !TARGET_64BIT, and
5440         provide an additional 64-bit insn that clobbers r2.
5441         (divsi3): Likewise.
5442         (udivsi3): Likewise.
5443         (modsi3): Likewise.
5444         (umodsi3): Likewise.
5445
5446 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
5447
5448         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
5449
5450         * flow.c (redirect_edge_and_branch_force, split_edge,
5451         try_crossjump_to_edge): Use set_block_for_new_insns.
5452         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
5453
5454 2001-07-13  H.J. Lu  (hjl@gnu.org)
5455
5456         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
5457         the correct patch.
5458
5459 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
5460
5461         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
5462
5463 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
5464
5465         * c-common.c (decl_attributes): Take a pointer to the node to
5466         which attributes are to be attached, and a flags argument.
5467         * c-common.h (enum attribute_flags): New.
5468         (decl_attributes): Update prototype.
5469         * c-decl.c (start_decl, push_parm_decl, finish_struct,
5470         finish_enum, start_function): Update calls to decl_attributes.
5471         * c-parse.in (component_declarator, component_notype_declarator,
5472         label): Update calls to decl_attributes.
5473
5474 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
5475
5476         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
5477         * config/avr/avr.c (legitimate_address_p): Return value changed
5478         from letter to register classes. For better debugging.
5479
5480 2001-07-13  Kazu Hirata  <kazu@hxi.com>
5481
5482         * jump.c (reversed_comparison_code_parts): Fix comment typos.
5483
5484 2001-07-13  H.J. Lu  (hjl@gnu.org)
5485
5486         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
5487
5488 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
5489
5490         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
5491         correctly for shared configurations.
5492         * config/t-libgcc-pic:  New.
5493         * config/{i386,m68k,sparc}/t-openbsd:  New.
5494         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
5495         Support -shared.  Support debugging libraries with -g.
5496         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
5497         frame information does not emit pointer diffs.
5498         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
5499         emit pointer diffs.
5500
5501 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
5502
5503         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
5504
5505 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
5506
5507         * combine.c (try_combine): Ensure const_int pow2 is positive.
5508
5509 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
5510
5511         * config.gcc: Add configuration for s/390.
5512         * config/s390/s390.c: New. Subroutines for code generation.
5513         * config/s390/s390.h: New. Definitions for s/390.
5514         * config/s390/s390-protos.h: New. Prototypes.
5515         * config/s390/linux.h: New. Definitions for linux for s/390.
5516         * config/s390/linux64.h: New. Definitions for linux for zSeries.
5517         * config/s390/t-linux: New. Makefile fragment.
5518         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
5519         * config/s390/fixdfdi.h: New. Fix L_fix*di.
5520
5521 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
5522
5523         * emit-rtl.c (try_split): Update mark_jump_label call.
5524         * flow.c (find_sub_basic_blocks): Likewise.
5525         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
5526         jump_back_p): Kill.
5527         (mark_all_labels): Kill second parameter.
5528         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
5529         (rebuild_jump_labels, jump_optimize_minimal): Update call
5530         of jump_optimize_1.
5531         (jump_optimize_1): Kill crossjumping code.
5532         (mark_jump_label): Kill cross_jump parameter.
5533         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
5534         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
5535         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
5536          splitting.
5537         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
5538         DFI_bpro.
5539         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
5540         reorganize passes to do reg-stack first, bb-reorder second.
5541         * invoke.texi (-d letters doc): Remove the jump2 pass.
5542
5543 2001-07-12  Steve Ellcey <sje@cup.hp.com>
5544
5545         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
5546
5547 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
5548
5549         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
5550         basic blocks.
5551         (verify_flow_info): Make diagnostics prettier.
5552
5553 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5554
5555         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
5556
5557         * flow.c (outgoing_edges_match): Return early if condition reversal
5558         failed.
5559
5560 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
5561
5562         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
5563         (mips_move_2words): When splitting a move into two instructions,
5564         prefix the second address operand with '%D'.
5565
5566 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5567
5568         * Makefile.in (final.o): Depend on debug.h.
5569         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
5570         (dbx_debug_hooks): Add new hooks.
5571         (xcoff_debug_hooks): New.
5572         * debug.c (debug_nothing_file_int_int): New.
5573         (do_nothing_debug_hooks): Update.
5574         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
5575         (debug_nothing_file_int_int): New.
5576         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
5577         static, update prototype.
5578         (dwarf2_debug_hooks): Update.
5579         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
5580         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
5581         static, update prototype.
5582         (dwarf_debug_hooks): Update.
5583         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
5584         * final.c: Include debug.h.
5585         (final_scan_insn): Use debug hooks when beginning and ending blocks.
5586         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
5587         static, update prototype.
5588         (sdb_debug_hooks): Update.
5589         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
5590         * toplev.c: Distinguish between xcoff and dbx.
5591
5592         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
5593         Call all debug hooks, not just dwarf ones.
5594
5595 2001-07-11  Timothy Wall  <twall@redhat.com>
5596
5597         * config.gcc: Add configuration for AIX5/IA64.
5598         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
5599         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
5600         support prefix/suffix code.
5601         * config/ia64/t-aix: New.  Makefile fragment.
5602         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
5603
5604 2001-07-11  Kazu Hirata  <kazu@hxi.com>
5605
5606         * recog.c (validate_change): Fix a comment typo.
5607
5608 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5609
5610         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
5611         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
5612         hooks directly.
5613         * dbxout.c (dbx_debug_hooks): Add new hooks.
5614         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
5615         make static.
5616         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
5617         make static.
5618         * dbxout.h (dbxout_start_new_source_file,
5619         dbxout_resume_previous_source_file): Delete.
5620         * debug.c (do_nothing_debug_hooks): Add new hooks.
5621         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
5622         (debug_nothing_int_charstar, debug_nothing_int): New.
5623         * debug.h (gcc_debug_hooks): New hooks define, undef,
5624         start_source_file and end_source_file.
5625         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
5626         (debug_nothing_int_charstar, debug_nothing_int): New.
5627         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
5628         the conditionally compiled section.
5629         (dwarf2out_start_source_file, dwarf2out_end_source_file,
5630         dwarf2out_define, dwarf2out_undef): Make static.
5631         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
5632         dwarf2out_define, dwarf2out_undef): Remove.
5633         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
5634         (dwarfout_start_source_file, dwarfout_end_source_file,
5635         dwarfout_define, dwarfout_undef): Make static.
5636         (dwarfout_start_source_file_check,
5637         dwarfout_end_source_file_check): New.
5638         (dwarfout_define, dwarfout_finish): Update.
5639         * dwarfout.h (dwarfout_start_new_source_file,
5640         dwarfout_resume_previous_source_file, dwarfout_define,
5641         dwarfout_undef): Remove.
5642         * sdbout.c (sdb_debug_hooks): Add new hooks.
5643         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
5644         make static.
5645         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
5646         make static, take an arg.
5647         * sdbout.h (sdbout_start_new_source_file,
5648         sdbout_resume_previous_source_file): Delete.
5649         * toplev.c (debug_start_source_file, debug_end_source_file,
5650         debug_define, debug_undef): Delete.
5651         * toplev.h (debug_start_source_file, debug_end_source_file,
5652         debug_define, debug_undef): Delete.
5653
5654         * java/jcf-parse.c: Include debug.h.
5655         (parse_class_file): Update to use debug hooks directly.
5656         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
5657
5658 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5659
5660         * alias.c (set_mem_alias_set): New function.
5661         * rtl.h (set_mem_alias_set): Declare it.
5662         * builtins.c (expand_builtin_return_addr): Call it instead of
5663         using MEM_ALIAS_SET accessor.
5664         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
5665         (get_memory_rtx, expand_builtin_va_arg): Likewise.
5666         (expand_builtin_va_copy):Likewise.
5667         * caller-save.c (setup_save_areas): Likewise.
5668         * calls.c (compute_argument_addresses): Likewise.
5669         * explow.c (set_mem_attributes): Likewise.
5670         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
5671         (expand_assignment, store_constructor_field, store_field): Likewise.
5672         (expand_expr_unaligned): Likewise.
5673         * function.c (assign_stack_temp_for_type): Likewise.
5674         (put_reg_into_stack, gen_mem_addressof): Likewise.
5675         * ifcvt.c (noce_try_cmove_arith): Likewise.
5676         * reload1.c (reload, alter_reg): Likewise.
5677         * config/alpha/alpha.c (get_aligned_mem): Likewise.
5678         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
5679         (alpha_expand_unaligned_store): Likewise
5680         (alpha_expand_unaligned_load_words): Likewise.
5681         (alpha_expand_unaligned_store_words): Likewise.
5682         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
5683         (alpha_expand_epilogue): Likewise.
5684         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
5685         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
5686         * config/i386/i386.c (legitimize_pic_address): Likewise.
5687         * config/i960/i960.c (setup_incoming_varargs): Likewise.
5688         * config/ia64/ia64.c (spill_restore_mem): Likewise.
5689         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5690         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
5691         * config/mips/mips.c (mips_va_arg): Likewise.
5692         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
5693         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
5694         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5695         (setup_incoming_varargs, rs6000_va_arg): Likewise.
5696         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
5697         (rs6000_emit_epilogue): Likewise.
5698         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
5699         * config/sparc/sparc.c (sparc_va_arg): Likewise.
5700         * config/v850/v850.c (v850_va_arg): Likewise.
5701
5702 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
5703
5704         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
5705         when fallthru edge is present.
5706         (mege_blocks): Handle case where creation of jump insn
5707         is required.
5708
5709         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
5710         CLEANUP_POST_REGSTACK): New constants.
5711         * except.c (finish_eh_generation): Update call of cleanup_cfg,
5712         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
5713         * output.h (cleanup_cfg): Update prototype.
5714         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
5715         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
5716         cleanup_cfg call; kill missleading comment.
5717         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
5718         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
5719         parameter; control optimizations performed using it.
5720         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
5721         try_crossjump_bb): New functions.
5722
5723 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5724
5725         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
5726         extern.
5727         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
5728         pa_output_function_prologue.
5729         * pa-protos.h (pa_output_function_prologue): New prototype.
5730
5731 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5732
5733         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
5734         and low to get correct sign extension in low+high test.
5735
5736 2001-07-11  Janis Johnson <janis@us.ibm.com>
5737
5738         * gcov.c (arcdata): Use gcov_type to fix branch percentage
5739         for large hit count.
5740
5741         * profile.c (branch_prob): Fix .bbg info for computed gotos
5742         and C++ EH code.
5743
5744 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
5745
5746         * stmt.c (parse_output_constraint): New function, split out
5747         from ...
5748         (expand_asm_operands): ... here.  Use parse_output_constraint.
5749         * tree.h (parse_output_constraint): Declare it.
5750
5751 2001-07-11  Richard Henderson  <rth@redhat.com>
5752
5753         * bitmap.c: Comment some functions; fiddle whitespace.
5754         (bitmap_free): Don't export.
5755         (bitmap_element_allocate): Use memset.
5756         * bitmap.h (bitmap_free): Don't declare.
5757
5758 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
5759
5760         * gcse.c, lcm.c, sched-deps.c:
5761         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
5762
5763         * flow.c (flow_loops_find): Free dom if we found no loops, since
5764         we aren't going to save it.
5765
5766         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
5767         done.
5768
5769 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
5770
5771         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
5772
5773 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5774
5775         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
5776         #ifndef DWARF2_DEBUGGING_INFO.
5777
5778 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
5779
5780         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
5781
5782 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
5783
5784         * config/mips/mips.c (gen_int_relational): Tell the caller not to
5785         reverse a branch if a NE comparison is implemented with GTU.
5786
5787 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
5788             H.J. Lu  <hjl@gnu.org>
5789
5790         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
5791         constant addresses.
5792         (call_internal2): Likewise.
5793         (call_value_internal1): Likewise.
5794         (call_value_internal2): Likewise.
5795         (call_value_multiple_internal1): Likewise.
5796         (call_value_multiple_internal2): Likewise.
5797
5798 2001-07-10  Kazu Hirata  <kazu@hxi.com>
5799
5800         * calls.c (emit_library_call_value_1): Fix a comment typo.
5801         * dwarf2out.c (mem_loc_descriptor): Likewise.
5802         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
5803
5804 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
5805
5806         * simplify-rtx.c (simplify_subreg): Fix typo in comment
5807
5808 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5809
5810         * recog.c (offsettable_address_p): Handle LO_SUM case.
5811         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
5812         instead of plus_constant.
5813
5814 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5815
5816         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
5817         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
5818
5819 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5820
5821         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
5822         adjust_address_nv instead of plus_constant.
5823
5824 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5825
5826         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
5827         dwarf2out.o): Depend on debug.h, wrap long lines.
5828         * dbxout.c: Include debug.h.
5829         (dbx_debug_hooks): New.
5830         (dbxout_init): Make static, take just 2 args.
5831         (dbxout_finish): Make static.
5832         * dbxout.h (dbxout_init, dbxout_finish): Delete.
5833         * debug.c: New file.
5834         * debug.h: New file.
5835         * dwarf2out.c: Include debug.h.
5836         (dwarf2_debug_hooks): New.
5837         (dwarf2out_init): Make static.
5838         (dwarf2out_finish): Make static, take 2 args.
5839         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
5840         * dwarfout.c: Include debug.h.
5841         (dwarf_debug_hooks): New.
5842         (dwarfout_init): Make static.
5843         (dwarfout_finish): Make static, take 2 args.
5844         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
5845         * sdbout.c: Include debug.h.
5846         (sdb_debug_hooks): New.
5847         (sdbout_init): Make static, take 2 args.
5848         * sdbout.h (sdbout_init): Delete.
5849         * toplev.c: Include debug.h.
5850         (debug_hooks): New.
5851         (compile_file): Set deubg_hooks based on command line options.
5852         Use the hooks unconditionally rather than conditional compilation.
5853
5854 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
5855
5856         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
5857         first_insn_after_basic_block_note instead.
5858
5859         * df.c (df_bb_refs_unlink): #if 0 out for now.
5860
5861 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
5862
5863         * ssa.h: Add prototype for ssa_const_prop
5864         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
5865         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
5866         (ssa_fast_dce): Remove unused variable
5867
5868 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5869
5870         * diagnostic.c (finish_diagnostic): Rename to
5871         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
5872         calls thourghout.
5873
5874 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
5875
5876         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
5877         .loc support.
5878
5879         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
5880         (dump_file): Only pad the demangled name with spaces if the
5881         mangled name was padded with spaces.
5882
5883 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
5884
5885         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
5886         edge detection.
5887
5888 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5889
5890         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
5891         extraction if no direct load if either EXPAND_CONST_ADDRESS or
5892         EXPAND_INITIALIZER.
5893
5894         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
5895         whether can put offset inside LO_SUM to check mode alignment, not size.
5896
5897 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5898
5899         * doc/tm.texi (Misc): Fix thinko.
5900
5901 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
5902
5903         * regmove.c (replace_in_call_usage): Fix warnings.
5904         * sched-deps.c (add_dependence): Fix warnings.
5905         * simplify-rtx.c (simplify_subreg): Likewise.
5906         Return NULL_RTX instead of NULL.
5907
5908         * reg-stack.c (emit_swap_insn): Eliminate warnings.
5909         (subst_asm_stack_regs): Likewise.
5910
5911         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
5912         warnings.
5913
5914         * dwarf2out.c (output_call_frame_info): Declare i as int.
5915         (build_abbrev_table): Declare n_alloc as int.
5916         (dwarf2out_finish): Initialize die.
5917         * except.c: Declare sjlj_funcdef_number as unsigned.
5918         (connect_post_landing_pads): Declare j as unsigned.
5919         (convert_to_eh_region_ranges): Initialize call_site.
5920         (output_function_exception_table): Initialize tt_format_size.
5921         * expr.c (move_by_pieces_1): Initialize to1.
5922         (store_constructor): Initialize minelt and maxelt.
5923         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
5924         * function.c (instantiate_decls): Avoid signed/unsigned warning.
5925
5926         * c-decl.c (combine_parm_decls): Unused, remove.
5927         * c-tree.h: Remove prototype for combine_parm_decls.
5928
5929         * reload.c (push_reload): Fix warning.
5930         (regno_clobbered_p): Likewise.
5931         * reload1.c (replace_pseudos_in_call_usage): Likewise.
5932         (reload_combine): Likewise.
5933
5934         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
5935         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
5936         warnings.
5937         * bitmap.c (bitmap_operation): Change user.
5938         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
5939
5940 2001-07-10  Eric Christopher  <echristo@redhat.com>
5941
5942         * config/mips/mips.c (override_options): Fix typo.
5943
5944 2001-07-09  Stan Shebs  <shebs@apple.com>
5945
5946         * target.h (struct gcc_target): New fields init_builtins and
5947         expand_builtin.
5948         * target-def.h (TARGET_INIT_BUILTINS): New macro.
5949         (TARGET_EXPAND_BUILTIN): New macro.
5950         (TARGET_INITIALIZER): Add them.
5951         * builtins.c: Include target.h.
5952         (expand_builtin): Use targetm.expand_builtin.
5953         (default_init_builtins): New function.
5954         (default_expand_builtin): New function.
5955         * expr.h (default_init_builtins): Declare.
5956         (default_expand_builtin): Declare.
5957         * c-common.c (c_common_nodes_and_builtins): Use
5958         targetm.init_builtins.
5959         * defaults.h (MD_INIT_BUILTINS): Remove.
5960         * Makefile.in (builtins.o): Depend on target.h.
5961
5962         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
5963         (TARGET_EXPAND_BUILTIN): Define.
5964         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
5965         (MD_EXPAND_BUILTIN): Remove.
5966
5967         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
5968         (TARGET_EXPAND_BUILTIN): Define.
5969         (c4x_init_builtins): Make endlink arg a local.
5970         (c4x_print_operand): Fix typos in adjust_address usages.
5971         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
5972         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
5973         (MD_EXPAND_BUILTIN): Remove.
5974
5975         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
5976         (TARGET_EXPAND_BUILTIN): Define.
5977         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
5978         (ix86_init_builtins): Call new function only if TARGET_MMX.
5979         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
5980         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
5981         (MD_EXPAND_BUILTIN): Remove.
5982
5983         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
5984         (TARGET_EXPAND_BUILTIN): Define.
5985         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
5986         (MD_EXPAND_BUILTIN): Remove.
5987
5988         * doc/tm.texi: Document these changes.
5989
5990 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
5991
5992         * basic-block.h (tree_node): Forward declare if needed.
5993         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
5994         (BLOCK_HEAD_TREE): Define.
5995         (BLOCK_END_TREE): Define.
5996         (struct loops): Rename field 'tree' to 'tree_root'.
5997         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
5998         'end_tree'.
5999         (flow_loops_tree_build): Rename reference to field 'tree' to
6000         'tree_root'.
6001         (flow_loops_level_compute): Ditto.
6002         * predict.c (estimate_bb_frequencies): Ditto.
6003         * tree.h (struct tree_common): Add field 'aux'.
6004
6005 2001-07-09  Stan Shebs  <shebs@apple.com>
6006
6007         * config/darwin.c (darwin_encode_section_info): Don't mark any
6008         DECL_EXTERNAL node as defined.
6009
6010 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6011
6012         * pa.c (pa_init_machine_status, pa_mark_machine_status,
6013         pa_free_machine_status, hppa_init_pic_save): Delete.
6014         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
6015         (hppa_profile_hook): Use hppa_pic_save_rtx.
6016         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
6017         hppa_init_pic_save): Delete.
6018         (hppa_pic_save_rtx): Declare.
6019         * pa.md (call, call_value, sibcall, sibcall_value,
6020         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
6021
6022 2001-07-09  Kazu Hirata  <kazu@hxi.com>
6023
6024         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
6025         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
6026
6027 2001-07-09  Andreas Jaeger  <aj@suse.de>
6028
6029         * output.h: Add declaration of final_forward_branch_p.
6030
6031         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
6032
6033         * varray.c: Include errors.h for internal_error and trim_filename
6034         declarations.
6035
6036         * Makefile.in (varray.o): Add errors.h.
6037
6038 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
6039
6040         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
6041         * optabs.c (have_add2_insn): Check whether the add insn chosen
6042         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
6043         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
6044
6045 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
6046
6047         * Makefile.in (OBJS): Add ssa-ccp.o
6048         (ssa-ccp.o): Add dependencies.
6049         * toplev.c (DFI_ssa_ccp): New dump file enum.
6050         (dump_file): Add entry for dumping after SSA CCP.
6051         (flag_ssa_ccp): New flag variable.
6052         (f_options): Add -fssa-ccp.
6053         (rest_of_compilation): Run SSA CCP if requested.
6054         * timevar.def (TV_SSA_CCP): New timevar.
6055         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
6056         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
6057         Fix minor typo in SSA DCE documentation.
6058         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
6059         Add documentation for new dump option.  Renumber dump files
6060         appropriately.
6061
6062 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
6063
6064         * emit-rtl.c (gen_highpart_mode): New.
6065         * rtl.h (gen_highpart_mode): Declare.
6066         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
6067         operand can be VOIDmode constant.
6068
6069 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
6070
6071         * flow.c (redirect_edge_and_branch_force): New.
6072         (can_fallthru): Ensure that basic blocks are succeeding.
6073         (try_optimize_cfg): Do not delete basic block if it is the last one.
6074
6075         * flow.c (try_redirect_by_replacing_jump): Do not remove
6076         jumps with side effects, unlink chain on fallthru edge;
6077         set block for new jump instruction; avoid basic block to
6078         over by line number note.
6079
6080         * flow.c (try_simplify_condjump): Verify that the condjump
6081         is not always falling trought.
6082
6083         Re-install patch:
6084         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
6085
6086         * flow.c (forwarder_block_p): Fix for fallthru blocks.
6087         (try_redirect_by_replacing_jump): Update properly the count
6088         and frequency information.
6089
6090 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6091
6092         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
6093         address that is a LO_SUM specially.
6094         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
6095
6096         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
6097
6098         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
6099         (operand_subword): Use them.
6100         (change_address_1): Renamed from change_address; new arg VALIDATE.
6101         * expr.h: Reflect above changes; change_address now macro.
6102         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
6103         making MEM.
6104         * cselib.c (add_mem_for_addr): Likewise.
6105         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
6106         * regmove.c (try_apply_stack_adjustment): Likewise.
6107         * reload.c (push_reload, make_memloc): Likewise.
6108         * reload1.c (eliminate_regs): Likewise.
6109         * simplify-rtx.c (simplify_replace_rtx): Likewise.
6110         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
6111         adjust_addess.
6112         * combine.c (make_extraction, simplify_shift_const): Likewise.
6113         (gen_lowpart_for_combine): Likewise.
6114         * cse.c (gen_lowpart_if_possible): Likewise.
6115         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
6116         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
6117         * optabs.c (gen_move_insn): Likewise.
6118         * reload1.c (alter_reg): Likewise.
6119         * simplify-rtx.c (simplify_subreg): Likewise.
6120         * stmt.c (expand_anon_union_decl): Likewise.
6121         * recog.c (validate_replace_rtx_1): Likewise.
6122         (expr.h): Include.
6123         * Makefile.in (recog.o): Add $(EXPR_H).
6124         * explow.c (stabilize): Call replace_equiv_address.
6125         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
6126         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
6127
6128 2001-07-03  Andrew Haley  <aph@redhat.com>
6129
6130         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
6131         the mode of the memory location.
6132
6133 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
6134
6135         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
6136
6137 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6138
6139         * final.c (output_addr_const): Use target opening and
6140         closing parentheses.
6141         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
6142         defaults, add to TARGET_ASM_OUT.
6143         * target.h (struct gcc_target): Add open_paren and close_paren.
6144         * doc/md.texi: Update.
6145         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
6146         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
6147         TARGET_ASM_CLOSE_PAREN.
6148         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
6149         Override.
6150         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
6151         Override.
6152         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
6153         * config/a29k/a29k.h: Similarly.
6154         * config/alpha/alpha.h: Similarly.
6155         * config/arc/arc.h: Similarly.
6156         * config/arm/aof.h: Similarly.
6157         * config/arm/aout.h: Similarly.
6158         * config/avr/avr.h: Similarly.
6159         * config/c4x/c4x.h: Similarly.
6160         * config/clipper/clipper.h: Similarly.
6161         * config/convex/convex.h: Similarly.
6162         * config/d30v/d30v.h: Similarly.
6163         * config/dsp16xx/dsp16xx.h: Similarly.
6164         * config/elxsi/elxsi.h: Similarly.
6165         * config/fr30/fr30.h: Similarly.
6166         * config/h8300/h8300.h: Similarly.
6167         * config/i370/i370.h: Similarly.
6168         * config/i386/i386.h: Similarly.
6169         * config/i860/i860.h: Similarly.
6170         * config/i960/i960.h: Similarly.
6171         * config/ia64/ia64.h: Similarly.
6172         * config/m32r/m32r.h: Similarly.
6173         * config/m68hc11/m68hc11.h: Similarly.
6174         * config/m68k/m68k.h: Similarly.
6175         * config/m88k/m88k.h: Similarly.
6176         * config/mcore/mcore.h: Similarly.
6177         * config/mips/mips.h: Similarly.
6178         * config/mn10200/mn10200.h: Similarly.
6179         * config/mn10300/mn10300.h: Similarly.
6180         * config/ns32k/ns32k.h: Similarly.
6181         * config/pa/pa.h: Similarly.
6182         * config/pdp11/pdp11.h: Similarly.
6183         * config/pj/pj.h: Similarly.
6184         * config/romp/romp.h: Similarly.
6185         * config/rs6000/rs6000.h: Similarly.
6186         * config/sh/sh.h: Similarly.
6187         * config/sparc/sparc.h: Similarly.
6188         * config/v850/v850.h: Similarly.
6189         * config/vax/vax.h: Similarly.
6190         * config/we32k/we32k.h: Similarly.
6191
6192 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
6193
6194         * doc/c-tree.texi: Document representation of attributes.
6195
6196 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6197
6198         * doc/tm.texi: Update some places for the rename of target to
6199         targetm.  Fix typo.
6200
6201 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6202
6203         * target.h (struct gcc_target): Add insert_attributes.
6204         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
6205         (TARGET_INITIALIZER): Update.
6206         * tree.c, tree.h (default_insert_attributes): New function.
6207         Update comments on other default functions to refer to targetm,
6208         not target.
6209         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
6210         TARGET_INSERT_ATTRIBUTES.
6211         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
6212         * c-common.c (decl_attributes): Use targetm.insert_attributes.
6213         Don't use PRAGMA_INSERT_ATTRIBUTES.
6214         * Makefile.in (c-common.o): Depend on $(TARGET_H).
6215         * c-decl.c (start_decl, start_function): Don't call
6216         SET_DEFAULT_DECL_ATTRIBUTES.
6217         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
6218         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
6219         declare.
6220         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
6221         (c4x_check_attribute): Avoid modifying attribute list itself.
6222         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
6223         Make static.
6224         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
6225         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
6226         declare.
6227         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
6228         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
6229         Make static.
6230         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
6231         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
6232         declare.
6233         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
6234         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
6235         Adjust parameters.  Make static.
6236
6237 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6238
6239         * c-common.c (decl_attributes): Only take a single attributes
6240         parameter.
6241         * c-common.h (decl_attributes): Update prototype.
6242         * c-decl.c (start_decl, start_function): Only take a single
6243         attributes parameter.  Update calls to decl_attributes.
6244         (finish_struct, finish_enum): Update calls to decl_attributes.
6245         (push_parm_decl): Expect unified list of attributes.  Update call
6246         to decl_attributes.
6247         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
6248         notype_nested_function, component_declarator,
6249         component_notype_declarator, label): Update calls to
6250         decl_attributes.
6251         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
6252         lists that are passed to push_parm_decl.
6253         * c-tree.h (start_function, start_decl): Update prototypes.
6254         * config/sh/sh-protos.h, config/sh/sh.c
6255         (sh_pragma_insert_attributes): Only take a single attributes
6256         parameter.
6257         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
6258         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
6259         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
6260         build_module_descriptor, generate_static_references,
6261         generate_strings, build_selector_translation_table,
6262         generate_descriptor_table, generate_protocols,
6263         generate_ivars_list, generate_dispatch_table,
6264         generate_protocol_list, generate_category,
6265         generate_shared_structures, really_start_method, add_objc_decls,
6266         generate_classref_translation_entry): Update calls to start_decl
6267         and start_function.
6268         (build_tmp_function_decl, start_method_def): Unify attribute lists
6269         that are passed to push_parm_decl.
6270
6271 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6272
6273         * final.c (no_asm_to_stream): New.
6274         (final_scan_insn): Use target structures for prologue ends
6275         and epilogue starts.
6276         * output.h (no_asm_to_stream): New.
6277         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
6278         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
6279         (TARGET_ASM_OUT): Update.
6280         * target.h (struct gcc_target): New members function_end_prologue
6281         and function_begin_epilogue.
6282         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
6283         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
6284         * config/alpha/alpha.c (output_end_prologue): Rename to
6285         alpha_output_function_end_prologue.  Use in target struct
6286         and make static.
6287         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
6288         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
6289         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
6290         ia64_output_function_end_prologue.  Use in target struct
6291         and make static.
6292         (ia64_function_prologue, ia64_funciton_epilogue): Rename
6293         mistyped prototypes.
6294         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
6295         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
6296         Delete.
6297         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
6298         an use in target struct, make static.
6299         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
6300         Delete.
6301
6302 2001-07-08  Richard Henderson  <rth@redhat.com>
6303
6304         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
6305
6306 2001-07-08  Richard Henderson  <rth@redhat.com>
6307
6308         * config/i386/i386.md: Remove constraints strings from define_split
6309         and define_peephole2 patterns.
6310         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
6311         (eh_return): Use them.
6312
6313 2001-07-08  Richard Henderson  <rth@redhat.com>
6314
6315         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
6316         Document MD_FALLBACK_FRAME_STATE_FOR.
6317
6318 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6319
6320         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
6321         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
6322         elimination.
6323         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
6324
6325 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
6326
6327         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
6328         of the label inside NAME as opposed to just the end of NAME.
6329
6330 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
6331
6332         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
6333         * config/alpha/alpha.c (alpha_init_machine_status,
6334         alpha_mark_machine_status, alpha_free_machine_status): Delete.
6335         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
6336         (vms_valid_decl_attribute_p): Make static, conditionally compile.
6337         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
6338
6339 2001-07-06  Stan Shebs  <shebs@apple.com>
6340
6341         * target.h (targetm): Rename global from "target", so as not to
6342         conflict with local variables.
6343         * c-decl.c: Ditto.
6344         * c-typeck.c: Ditto.
6345         * final.c: Ditto.
6346         * tree.c: Ditto.
6347         * cp/decl.c: Ditto.
6348         * cp/decl2.c: Ditto.
6349         * cp/typeck.c: Ditto.
6350         * 1750a/1750a.c: Ditto.
6351         * a29k/a29k.c: Ditto.
6352         * arc/arc.c: Ditto.
6353         * arm/arm.c: Ditto.
6354         * avr/avr.c: Ditto.
6355         * clipper/clipper.c: Ditto.
6356         * convex/convex.c: Ditto.
6357         * d30v/d30v.c: Ditto.
6358         * dsp16xx/dsp16xx.c: Ditto.
6359         * elxsi/elxsi.c: Ditto.
6360         * fr30/fr30.c: Ditto.
6361         * h8300/h8300.c: Ditto.
6362         * i370/i370.c: Ditto.
6363         * i386/i386.c: Ditto.
6364         * i860/i860.c: Ditto.
6365         * i960/i960.c: Ditto.
6366         * ia64/ia64.c: Ditto.
6367         * m32r/m32r.c: Ditto.
6368         * m68hc11/m68hc11.c: Ditto.
6369         * m68k/m68k.c: Ditto.
6370         * m88k/m88k.c: Ditto.
6371         * mips/mips.c: Ditto.
6372         * ns32k/ns32k.c: Ditto.
6373         * pa/pa.c: Ditto.
6374         * pdp11/pdp11.c: Ditto.
6375         * romp/romp.c: Ditto.
6376         * rs6000/rs6000.c: Ditto.
6377         * sh/sh.c: Ditto.
6378         * sparc/sparc.c: Ditto.
6379         * vax/vax.c: Ditto.
6380         * we32k/we32k.c: Ditto.
6381         * doc/tm.texi: Update the manual to match.
6382
6383 2001-07-06  Richard Henderson  <rth@redhat.com>
6384
6385         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
6386         DWARF2_UNWIND_INFO not just whether it is defined.
6387
6388 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
6389
6390         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
6391         call to simplify_binary_operation returns a new pattern.
6392
6393 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
6394
6395         * glimits.h (__SHRT_MAX__): New.
6396         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
6397         (SHRT_MAX): Define in terms of __SHRT_MAX__.
6398
6399 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
6400
6401         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
6402         avoid warnings.
6403
6404 2001-07-06  Richard Henderson  <rth@redhat.com>
6405
6406         * bitmap.c (bitmap_release_memory): Move adjacent to the
6407         allocation functions.
6408         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
6409         the implementation.  Binary search for the set bit.
6410         (bitmap_union_of_diff): Allocate the temporary on the stack
6411         instead of using xmalloc.
6412
6413 2001-07-06  Richard Henderson  <rth@redhat.com>
6414
6415         * genrecog.c (validate_pattern): Warn for constraints in
6416         define_{expand,split,peephole2}.  Remove strict_low_part
6417         before looking up match_dup.
6418
6419 2001-07-06  DJ Delorie  <dj@redhat.com>
6420
6421         * doc/gcc.texi (Makefile): Rename to be a more general purpose
6422         chapter about various build hints and history.  Add section
6423         talking about the various types of native and cross builds.
6424
6425 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6426
6427         * Makefile.in (final.o): Depend on target.h.
6428         * final.c: Include target.h.
6429         (default_function_pro_epilogue): New.
6430         (final_start_function): Use target structure for function prologues.
6431         (final_end_function): Use target structure for function epilogues.
6432         * fold-const.c (real_hex_to_f): Constify s and p.
6433         * output.h (default_function_pro_epilogue): New.
6434         * real.h (real_hex_to_f): Update prototype.
6435         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
6436         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
6437         (TARGET_INITIALIZER): Update.
6438         * target.h (gcc_target): Add struct asm_out.
6439         * doc/tm.texi: Update.
6440
6441 config:
6442         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
6443         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
6444         in cpu/cpu.c, or rename old functions consistently.  Take
6445         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
6446         redundant macros and prototypes.  Make new functions static.
6447
6448         * 1750a/1750a.c: Similarly.
6449         * 1750a/1750a.h: Similarly.
6450         * a29k/a29k-protos.h: Similarly.
6451         * a29k/a29k.c: Similarly.
6452         * a29k/a29k.h: Similarly.
6453         * arc/arc-protos.h: Similarly.
6454         * arc/arc.c: Similarly.
6455         * arc/arc.h: Similarly.
6456         * arm/arm-protos.h: Similarly.
6457         * arm/arm.c: Similarly.
6458         * arm/arm.h: Similarly.
6459         * avr/avr-protos.h: Similarly.
6460         * avr/avr.c: Similarly.
6461         * avr/avr.h: Similarly.
6462         * clipper/clipper-protos.h: Similarly.
6463         * clipper/clipper.c: Similarly.
6464         * clipper/clipper.h: Similarly.
6465         * convex/convex.c: Similarly.
6466         * convex/convex.h: Similarly.
6467         * d30v/d30v-protos.h: Similarly.
6468         * d30v/d30v.c: Similarly.
6469         * d30v/d30v.h: Similarly.
6470         * d30v/d30v.md: Similarly.
6471         * dsp16xx/dsp16xx-protos.h: Similarly.
6472         * dsp16xx/dsp16xx.c: Similarly.
6473         * dsp16xx/dsp16xx.h: Similarly.
6474         * elxsi/elxsi.c: Similarly.
6475         * elxsi/elxsi.h: Similarly.
6476         * fr30/fr30.c: Similarly.
6477         * fr30/fr30.md: Similarly.
6478         * h8300/h8300-protos.h: Similarly.
6479         * h8300/h8300.c: Similarly.
6480         * h8300/h8300.h: Similarly.
6481         * i370/i370-protos.h: Similarly.
6482         * i370/i370.c: Similarly.
6483         * i370/i370.h: Similarly.
6484         * i386/i386.c: Similarly.
6485         * i386/osf1elf.h: Similarly.
6486         * i386/osfrose.h: Similarly.
6487         * i860/i860-protos.h: Similarly.
6488         * i860/i860.c: Similarly.
6489         * i860/i860.h: Similarly.
6490         * i960/i960-protos.h: Similarly.
6491         * i960/i960.c: Similarly.
6492         * i960/i960.h: Similarly.
6493         * ia64/ia64-protos.h: Similarly.
6494         * ia64/ia64.c: Similarly.
6495         * ia64/ia64.h: Similarly.
6496         * m32r/m32r-protos.h: Similarly.
6497         * m32r/m32r.c: Similarly.
6498         * m32r/m32r.h: Similarly.
6499         * m68hc11/m68hc11-protos.h: Similarly.
6500         * m68hc11/m68hc11.c: Similarly.
6501         * m68hc11/m68hc11.h: Similarly.
6502         * m68k/crds.h: Similarly.
6503         * m68k/dpx2.h: Similarly.
6504         * m68k/m68k-protos.h: Similarly.
6505         * m68k/m68k.c: Similarly.
6506         * m68k/m68k.h: Similarly.
6507         * m68k/news.h: Similarly.
6508         * m88k/m88k-protos.h: Similarly.
6509         * m88k/m88k.c: Similarly.
6510         * m88k/m88k.h: Similarly.
6511         * mips/mips-protos.h: Similarly.
6512         * mips/mips.c: Similarly.
6513         * mips/mips.h: Similarly.
6514         * ns32k/merlin.h: Similarly.
6515         * ns32k/ns32k.c: Similarly.
6516         * ns32k/ns32k.h: Similarly.
6517         * ns32k/tek6000.h: Similarly.
6518         * pa/pa-protos.h: Similarly.
6519         * pa/pa.c: Similarly.
6520         * pa/pa.h: Similarly.
6521         * pdp11/2bsd.h: Similarly.
6522         * pdp11/pdp11-protos.h: Similarly.
6523         * pdp11/pdp11.c: Similarly.
6524         * pdp11/pdp11.h: Similarly.
6525         * romp/romp-protos.h: Similarly.
6526         * romp/romp.c: Similarly.
6527         * romp/romp.h: Similarly.
6528         * rs6000/rs6000-protos.h: Similarly.
6529         * rs6000/rs6000.c: Similarly.
6530         * rs6000/rs6000.h: Similarly.
6531         * rs6000/sysv4.h: Similarly.
6532         * sh/sh-protos.h: Similarly.
6533         * sh/sh.c: Similarly.
6534         * sh/sh.h: Similarly.
6535         * sparc/sparc-protos.h: Similarly.
6536         * sparc/sparc.c: Similarly.
6537         * sparc/sparc.h: Similarly.
6538         * vax/vax.c: Similarly.
6539         * vax/vax.h: Similarly.
6540         * vax/vms.h: Similarly.
6541         * we32k/we32k.c: Similarly.
6542         * we32k/we32k.h: Similarly.
6543
6544 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
6545
6546         * basic-block.h (first_insn_after_basic_block_note): Declare.
6547         * flow.c (first_insn_after_basic_block_note): Define.  Moved
6548         from...
6549         * ssa.c (first_insn_after_basic_block_note): Remove.
6550         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
6551         necessary.
6552         (ssa_eliminate_dead_code): Properly update the CFG and PHI
6553         nodes when we find a dead conditional branch.  Insert BARRIERs
6554         after any blocks with no successors, but which do not have
6555         any BARRIERs.
6556
6557 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
6558
6559         * varray.c (varray_check_failed): Use internal_error.
6560
6561 2001-07-05  Andrew Haley  <aph@redhat.com>
6562
6563         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
6564         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
6565         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
6566
6567 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
6568
6569         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
6570         reference if the target constant is also a SYMBOL_REF.
6571
6572 2001-07-05  Eric Christopher  <echristo@redhat.com>
6573
6574         * config/mips/mips.h (MASK_MIPS3900): Remove.
6575         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
6576         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
6577         (TARGET_MIPS3900): Change to use mips_arch.
6578         (TARGET_MIPS4000): New.
6579         (TARGET_MIPS4100): New.
6580         (TARGET_MIPS4300): New.
6581         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
6582         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
6583         for -mipsX.
6584         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
6585         (ISA_HAS_BRANCHLIKELY): To here.
6586         (CC1_CPU_SPEC):  New.
6587         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
6588         (mips_arch_string): Declare.
6589         (mips_arch): Declare.
6590         (TARGET_OPTIONS): Add -march and -mtune.
6591
6592         * config/mips/mips.c (mips_arch_string): New.
6593         (mips_arch): New.
6594         (override_options): Handle -march for codegen and -mtune
6595         for scheduling. Use mips_arch. Move tx39 target default here.
6596         (mips_parse_cpu): Move error message to override_options.
6597
6598         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
6599
6600         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
6601
6602         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
6603         (MIPS Options): Ditto.  Change mcpu entry to historical text.
6604
6605 2001-07-05  H.J. Lu  (hjl@gnu.org)
6606
6607         * config/mips/mips.c (mips_parse_cpu): New function to parse
6608         -march=*/-mcpu=*.
6609
6610 2001-07-05  Jim Wilson  <wilson@redhat.com>
6611
6612         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
6613         * config/ia64/t-ia64: Likewise.
6614         (LIB1ASMFUNCS): Update comment.
6615
6616 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
6617
6618         * doc/install.texi (Install GCC: Binaries): Fix typo.
6619
6620 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6621
6622         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
6623         reference using the stack pointer, adjust it since we push Y
6624         temporarily.
6625         ("*ashrsi3"): Likewise.
6626         ("*lshrsi3"): Likewise.
6627
6628 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6629
6630         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
6631         when -fomit-frame-pointer is used.
6632
6633 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
6634
6635         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
6636         (try_redirect_by_replacing_jump): Reverse updating properly the
6637         count and frequency information.  Reverse removing cc0 setter.
6638         (forwarder_block_p): Reverse fixing for fallthru blocks.
6639
6640 2001-07-05  DJ Delorie  <dj@redhat.com>
6641
6642         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
6643         (translate_options): If the above is defined, use it to map
6644         given options to new options.
6645         * doc/tm.texi: Document it.
6646
6647 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
6648             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6649
6650         * doc/invoke.texi (Optimize Options): Document that -fgcse may
6651         cause programs using computed gotos to run more slowly.
6652
6653 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6654
6655         * doc/install.texi (Specific): Markup, spelling and typo fixes.
6656         Fixed sorting.
6657         Consistently require binutils 2.11.2, not prereleases.
6658         (Specific, decstation-*): Canonicalize as mips-dec-*.
6659         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
6660         always necessary.
6661         (Specific, m68k-altos): Removed reference to README.altos, deleted.
6662         (Specific, mips-*): Reword MIPS C compiler requirements.
6663         (Specific, powerpc*-*-*): New, mention --with-cpu once.
6664         (Specific, sunv5): Removed, obsolete.
6665
6666 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
6667
6668         * dwarf2out.c (output_loc_list): Use an all ones mask for
6669         .text asm output and don't rely on long long
6670         literals. Reformat some long lines.
6671
6672 2001-07-05  Andreas Jaeger  <aj@suse.de>
6673
6674         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
6675         section.
6676
6677 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
6678
6679         * dwarf2out.c (dwarf2out_define): Update comment.
6680         (dwarf2out_undef): Ditto.
6681         (dwarf2out_start_source_file): Ditto.
6682         (dwarf2out_end_source_file): Ditto.
6683         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
6684         since we never call the start/end debug hook for the primary file.
6685
6686 2001-07-04  Kazu Hirata  <kazu@hxi.com>
6687
6688         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
6689         from shll.
6690
6691 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
6692
6693         * cppinit.c (remove_dup_dirs): Inform if a system include
6694         directory is being reordered.
6695         * doc/invoke.texi (Directory Options): GCC warns if you hide a
6696         system include.
6697         * doc/cpp.texi (Search Paths): Likewise.
6698         * doc/gcc.texi (Interoperation): Remove information about
6699         -I/usr/include.
6700
6701 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
6702
6703         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
6704         (VARRAY_TOP_CHAR_PTR): Likewise.
6705
6706 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6707
6708         * gcc.c (process_command): Don't assign elements of a const char*.
6709
6710 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6711
6712         * emit-rtl.c (change_address): Don't abort if invalid address while
6713         reload is in progress.
6714
6715 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
6716
6717         * c-lex.c (cb_file_change): Pass line number to
6718         debug_start_source_file.
6719         (cb_undefine): Pass correct line number to debug_undef.
6720
6721         * toplev.c (debug_start_source_file): Add line number to
6722         parameters. Pass it along to dwarf2out_start_source_file.
6723         (decode_g_option): Stop resetting debug level back to normal when
6724         we change debug formats, unless the current level is
6725         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
6726         3).
6727
6728         * toplev.h (debug_start_source_file): Add line number to
6729         parameters.
6730
6731         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
6732         parameters.
6733
6734         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
6735         parameters.
6736         Output debug_macinfo data for starting file if requested.
6737         (dwarf2out_end_source_file): Output debug_macinfo data for ending
6738         file if requested.
6739         (dwarf2out_define): Output debug_macinfo data for defining a macro
6740         if requested.
6741         (dwarf2out_undef): Output debug_macinfo data for undefining a
6742         macro if requested.
6743         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
6744         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
6745         (macinfo_section_label): New. DWARF2 macro info section label.
6746         (dwarf2out_init): If we want macro info, output the start label
6747         for the section.
6748         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
6749         attribute to the compilation unit die pointing to the macro info.
6750
6751 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
6752
6753         * dwarf2out.c (new_loc_list): Move to inside #ifdef
6754         DWARF2_DEBUGGING_INFO.
6755         (add_loc_descr_to_loc_list): Ditto.
6756         (output_loc_list): Ditto.
6757         Also, fix thinko in curr not being initialized.
6758         (gen_internal_sym): Ditto.
6759
6760 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6761
6762         * emit-rtl.c (replace_equiv_address): New function.
6763         * expr.h (replace_equiv_address): New declaration.
6764         * explow.c (validize_mem): Call it instead of change_address and
6765         also call if -fforce-addr and address is constant.
6766         * expr.c: Replace more calls to change_address with adjust_address
6767         and/or replace_equiv_address or to validize_mem.
6768         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
6769         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
6770         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
6771         * config/i370/i370.md, config/i860/i860.md: Likewise.
6772         * config/i960/i960.md, config/mips/mips.c: Likewise.
6773         * config/mips/mips.md, config/pa/pa.md: Likewise.
6774         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
6775         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
6776
6777 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6778
6779         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
6780
6781         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
6782         function.
6783
6784 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
6785
6786         * doc/include: New directory.
6787         * doc/fdl.texi: Move to doc/include/fdl.texi.
6788         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
6789         * doc/include/funding.texi, doc/include/gpl.texi: New files.
6790         * doc/gcc.texi: Use funding.texi and gpl.texi.
6791         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
6792         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
6793         Update dependencies and use -I $(docdir)/include.
6794
6795 2001-07-04  Anthony Green  <green@redhat.com>
6796
6797         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
6798
6799 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6800
6801         * doc/install.texi (sparc64-*-*): Remove garbage.
6802
6803 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
6804
6805         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
6806         Fix typo in last change to use adjust_address.
6807
6808 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6809
6810         * doc/install.texi (Specific): Update information for *-*-solaris*.
6811
6812 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6813
6814         * explow.c (plus_constant_wide): Reinitialize Y for restart.
6815
6816 2001-07-03  Stan Shebs  <shebs@apple.com>
6817
6818         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
6819         case for flag_no_mach_text_sections.
6820         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
6821         * config/darwin.c (flag_no_mach_text_sections): Remove.
6822         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
6823
6824 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6825
6826         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
6827         and avoid checking for constant as first operand.
6828         * recog.c (find_constant_term_loc): No longer static.
6829         (adj_offettable_operand): Delete.
6830         * rtl.h (adj_offsettable_operand): Delete declaration.
6831         (find_constant_term): Add declaration.
6832         * caller-save.c: Replace calls to adj_offsettable_operand with calls
6833         to adjust_address.
6834         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
6835         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
6836         * config/i386/i386.c, config/i386/i386.md: Likewise.
6837         * config/i860/i860.c, config/i960/i960.c: Likewise.
6838         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
6839         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
6840         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
6841         * config/mips/mips.c, config/mips/mips.md: Likewise.
6842         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
6843         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
6844         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
6845         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
6846         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
6847         * config/ns32k/ns32k.md: Likewise.
6848
6849 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
6850
6851         * rtl.c (copy_rtx): Handle 'T' format letter.
6852         * gensupport.c (collect_insn_data): Likewise.
6853         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
6854
6855 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
6856
6857         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
6858         -B option.  Use 'dir' not 'foo' as example directory name.
6859
6860 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6861
6862         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6863         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
6864
6865 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6866
6867         * doc/cppinternals.texi: Improve formatting and logical markup.
6868
6869 2001-07-03  Andreas Jaeger  <aj@suse.de>
6870
6871         * Makefile.in (insn-recog.o): Add dependency on reload.h.
6872
6873         * genrecog.c (write_header): Include reload.h for prototypes in
6874         insn-recog.c.
6875
6876 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6877
6878 config:
6879         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
6880         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
6881         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
6882         i386_pe_valid_type_attribute_p): Add.
6883         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
6884         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
6885
6886 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6887
6888         * explow.c (plus_constant_wide, case LO_SUM): New case.
6889         (plus_constant_for_output_wide): Delete.
6890         * rtl.h (plus_constant_for_output): Delete.
6891         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
6892         instead of plus_constant_for_output.
6893         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
6894         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
6895         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
6896         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
6897         * config/sparc/sparc.md: Likewise.
6898         Convert some change_address calls to adjust_address.
6899
6900 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6901
6902         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
6903         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
6904         documentation of -std and -Wwrite-strings.
6905
6906 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
6907
6908         * cse.c (canon_hash): Don't register registers in very small
6909         register classes, as extending their lifetime might cause
6910         reload to fail.
6911
6912 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
6913
6914         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
6915
6916         * flow.c (forwarder_block_p): Fix for fallthru blocks.
6917         (try_redirect_by_replacing_jump): Update properly the count
6918         and frequency information.
6919
6920 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
6921
6922         * toplev.c (dump_file_index): Move SSA dumps just after first
6923         jump dump.
6924         (dump_file): Corresponding changes.
6925         (rest_of_compilation): Move SSA path to just after the first
6926         jump pass.
6927         * doc/gcc.texi (Passes): Update due to movement of SSA path.
6928         * doc/invoke.texi: Update dump file #s as they were completely
6929         out of date with reality.
6930
6931 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
6932
6933         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
6934
6935         * expr.c (emit_move_insn_1): Deal with non-default
6936         STACK_PUSH_CODE.
6937
6938         * expr.c (emit_single_push_insn): Fix warning.
6939
6940 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6941
6942         * expr.c (emit_move_insn_1): Avoid modifying
6943         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
6944
6945 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6946
6947         * emit-rtl.c (adjust_address): New function.
6948         * expr.h (adjust_address): Add declaration.
6949         * builtins.c: Replace some calls to change_address with calls to it
6950         or to validize_mem.
6951         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
6952         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
6953         * config/arm/arm.c, config/convex/convex.c: Likewise.
6954         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
6955         * config/i386/i386.c, config/i386/i386.md: Likewise.
6956         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
6957         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
6958         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
6959         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
6960         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
6961
6962 2001-07-02  Jim Wilson  <wilson@redhat.com>
6963
6964         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
6965
6966 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
6967
6968         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
6969         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
6970
6971 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
6972
6973         * cppinit.c (lang_defaults): New table.
6974         (set_lang): Just read from lang_defaults into the live options
6975         structure.
6976
6977 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
6978
6979         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
6980         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
6981         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
6982
6983 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6984
6985         * doc/install.texi: Various spelling and markup fixes.
6986         (Installing GCC): Component specific installation instructions are
6987         gone.
6988         Fix reference.
6989         Warn about removing old install dir in the presence of shared libs.
6990         (Configuration): Invoke with options target to match configure
6991         --help.
6992         Consistently refer to gas, gld pathnames.
6993         Invert --enable-multilib documentation.
6994         Remove references to old compiler versions.
6995
6996 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6997
6998         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
6999
7000 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7001
7002         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
7003         section.
7004         (Specific, mips*-sgi-irix5): Note IDO download.
7005         Reworded MIPS C hints.
7006         Use GNU as instead of GAS.
7007         Markup fixes.
7008         Removed SGI Freeware reference, IRIX 6 only.
7009         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
7010         Note N64 library requirement/workaround.
7011         Update O32 hints.
7012         Complete list of structure passing bug victims.
7013
7014 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7015
7016         * doc/install.texi: Remove CVS Id.
7017
7018 2001-07-02  Andreas Jaeger  <aj@suse.de>
7019
7020         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
7021         (find_inherently_necessary): Remove unused variable.
7022
7023 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
7024
7025         * c-common.h (TDI_inlined): New ast dump phase.
7026         (dump_flag_name): New function.
7027         * c-dump.c (dump_files): Add inlined phase.
7028         (dump_flag_name): Define.
7029         * doc/invoke.texi (-fdump-ast-inlined): Document.
7030
7031 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7032
7033         * stor-layout.c (layout_decl): Revert change to handling of alignment
7034         in packed types.
7035
7036 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7037
7038         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
7039         for FIELD_DECL.
7040
7041 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
7042
7043         * doc/tm.texi (FUNCTION_ARG): Document that the last call
7044         is special.
7045
7046 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
7047
7048         * tlink.c (recompile_files): Remove COMPILER_PATH and
7049         LIBRARY_PATH from the environment.
7050
7051 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
7052
7053         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
7054         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
7055         enumerators.
7056         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
7057
7058         * c-parse.in (OBJC_STRING): Kill.
7059         (objc_string): Decompose to [objc_string] '@' STRING.
7060         (reswords): Take the leading '@' off all the Objective C keywords.
7061         (objc_rid_sans_at): Kill.
7062         (init_reswords): Don't initialize it.
7063         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
7064         (_yylex): Kill reconsider label.  Look ahead one token after
7065         an '@'; if we get an identifier, check whether it's an
7066         Objective C @-keyword.  If so, return the keyword.  Otherwise,
7067         put back the token and return the '@' as a terminal.
7068
7069         * cpplib.c (lex_macro_node): Remove unnecessary check for
7070         leading '@' on identifier.  Clarify control flow and commentary.
7071
7072 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7073
7074         * cse.c (new_label_ref): Variable deleted.
7075         (insert): Remove set of new_label_ref.
7076         (check_for_label_ref): New function.
7077         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
7078
7079 See ChangeLog.5 for earlier changes.