OSDN Git Service

fc1904ea838af03150fc5c47d4c0f19241291382
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
2
3         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
4         of the frame pointer or arg pointer register which strict register
5         checking is not enabled.
6
7 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
8
9         * gcc.dg/altivec-8.c: New.
10
11         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
12         PRE_INC and PRE_DEC for altivec modes.
13
14 2002-05-01  Bruce Korb  <bkorb@gnu.org>
15
16         * fixinc/check.tpl(set-writable): make sure the function exists first
17         * fixinc/inclhack.def(alpha_assert): fix test_text
18         * fixinc/tests/base/assert.h: add in missing result
19
20 2002-05-01  Jeff Law  <law@redhat.com>
21
22         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
23         'T' constraint.
24
25 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
26
27         * dbxout.c (dbxout_type): Emit size information for range types,
28         as well, but only when using GDB extensions.
29
30 2002-05-01  Richard Henderson  <rth@redhat.com>
31
32         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
33         target-independent gnu binutils date test.
34
35 2002-05-01  Richard Henderson  <rth@redhat.com>
36
37         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
38         info before expunging the block.
39
40 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
41
42         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
43         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
44         -M -or -MM is in effect.
45
46 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
47
48         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
49         A29k configurations.
50         * doc/install.texi: Update to match.
51
52 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
53
54         PR bootstrap/6514
55         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
56         for duplicates. Always loop over whole list.
57
58 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
59
60         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
61
62 2002-05-01      Joel Sherrill <joel@OARcorp.com>
63
64         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
65         support routines.
66
67 2002-05-01      Joel Sherrill <joel@OARcorp.com>
68
69         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
70
71 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
72
73         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
74         (nabs_nopower): Same.
75         (floatdisf2): New pattern.
76         (absdi2): Convert to define_insn_and_split.
77         (nabsdi2): Same.
78         (trunctfsf2): Same.
79         (floatditf2): Same.
80         (floatsitf2): Same.
81         (fix_trunctfdi2): Same.
82         (fix_trunctfsi2): Same.
83
84 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
85
86         * doc/install.texi: Update Texinfo version requirement
87         documentation.
88
89 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
90
91         PR target/6512, PR target/5628
92         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
93         when memory is not aligned.
94         (movdf_insn_v9only_vis): Likewise.
95         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
96         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
97         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
98
99 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
100
101         * gcc.dg/altivec-7.c: New.
102
103         * config/rs6000/altivec.h: Cleanup.
104
105 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
106
107         * doc/invoke.texi (Option Summary): Add -mvrsave=.
108         (RS/6000 and PowerPC Options): Document -mvrsave=.
109
110         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
111         (rs6000_altivec_vrsave_string): Same.
112         (rs6000_override_options): Call rs6000_parse_vrsave_option.
113         (rs6000_parse_vrsave_option): New.
114         (rs6000_stack_info): Only generate vrsave instructions when
115         TARGET_ALTIVEC_VRSAVE.
116
117         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
118         (rs6000_altivec_vrsave_string): Define extern.
119         (rs6000_altivec_vrsave): Same.
120         (TARGET_ALTIVEC_VRSAVE): New.
121
122 2002-04-30  Richard Henderson  <rth@redhat.com>
123
124         PR opt/6516
125         * toplev.c (rest_of_compilation): Don't run cross-jump before
126         bb-reorder.
127
128 2002-04-30  Tom Rix  <trix@redhat.com>
129
130         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
131         check which_alternative.
132
133 2002-04-30  Kazu Hirata  <kazu@hxi.com>
134
135         * cpplex.c: Fix comment formatting.
136         * function.c: Likewise.
137         * integrate.c: Likewise.
138         * regrename.c: Likewise.
139         * sibcall.c: Likewise.
140         * simplify-rtx.c: Likewise.
141         * tree-inline.c: Likewise.
142
143 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
144
145         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
146         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
147         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
148         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
149         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
150         * pa/x-ada: New file.  Define ADA_CFLAGS.
151
152 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
153
154         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
155         from MMIX_LAST_REGISTER_FILE_REGNUM.
156         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
157         (struct machine_function): New member highest_saved_stack_register
158         previously static variable in mmix.c.
159         (MACHINE_DEPENDENT_REORG): Define.
160         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
161         (MMIX_OUTPUT_REGNO): New.
162         (mmix_target_asm_function_prologue): Move calculation of last used
163         saved-stack-register into...
164         (mmix_machine_dependent_reorg): New function.  Update to also handle
165         !TARGET_ABI_GNU.
166         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
167         register names, simplify somewhat by new variable regno.
168         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
169         register.
170         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
171         emitting register names.
172         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
173         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
174         Remove fixed FIXME.
175         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
176         Declare.
177
178         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
179
180 2002-04-30  Richard Henderson  <rth@redhat.com>
181
182         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
183         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
184         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
185         emit_tfmode_cvt): New.
186         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
187         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
188         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
189         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
190         * config/sparc/sparc-protos.h: Update.
191
192 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
193
194         * install.texi (Final install): Add to the list of info to include
195         in a report of a successful bootstrap, and add link to 3.1 list.
196
197 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
198
199         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
200         (mode): Add vector modes
201         (i387): Kill attribute.
202         (unit): New attribute.
203         (length_immediate): Grok new types.
204         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
205         (modrm): Use "unit".
206         (memory): Handle MMX/SSE properly.
207         (scheduling descriptions): Kill uses of fop1.
208         (sse, mmx, fp patterns): Set type and mode properly.
209
210 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
211
212         * pa.c (override_options): Default to PA8000 scheduling.
213         * doc/invoke.texi (HP-PA options): Mention newly added 7300
214         scheduling parameter.
215
216         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
217         handling of double precision multiplies.
218
219         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
220         fpdiv and fpsqrt instructions.
221         (7200 & 7300 scheduling): Fix typo in handling of
222         store-load and store-store penalties.
223
224 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
225
226         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
227         mips.  Add two missing commas.
228
229 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
230
231         * doc/contrib.texi (Contributors): Update Paolo Carlini's
232         and Benjamin Kosnik's entries.
233
234 2002-04-29  David S. Miller  <davem@redhat.com>
235
236         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
237         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
238         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
239         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
240
241 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
242
243         * combine.c (find_split_point): Use gen_int_mode.
244
245 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
246
247         Merging code from dfa-branch:
248
249         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
250
251         * genautomata.c (output_reserv_sets): Fix typo.
252
253         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
254
255         * genautomata.c (output_reserv_sets): Remove
256         next_cycle_output_flag.
257
258         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
259
260         * sched-rgn.c (init_ready_list): Make the DFA code handle
261         USE/CLOBBER insns in the same way as the traditional
262         scheduler.
263         (new_ready): Similarly..
264
265         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
266
267         * haifa-sched.c (schedule_block): Change the DFA state only after
268         issuing insn.
269
270         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
271
272         * pa.c (hppa_use_dfa_pipeline_interface): New function.
273         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
274         (override_options): Add PA7300 scheduling support.
275         (pa_adjust_cost): Update various comments.  Properly
276         handle anti and output dependencies when using the
277         DFA scheduler.
278         (pa_issue_rate): Add PA7300 scheduling support.
279         (pa_can_combine_p): Call extract_insn before calling
280         constrain_operands (taken from mainline tree).
281         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
282         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
283         descriptions using DFA descriptions.  Add PA7300
284         scheduling support.
285
286         2002-03-30  David S. Miller  <davem@redhat.com>
287
288         Add UltraSPARC-III DFA scheduling support.
289         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
290         Update FP conditional move on register insn patterns to use it, as
291         appropriate.
292         (define_attr cpu): Add ultrasparc3.
293         (define_attr us3load_type): New, update integer load patterns to
294         set it, as appropriate.
295         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
296         (rest): Add UltraSPARC3 scheduling description.
297         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
298         (PROCESSOR_ULTRASPARC3): New.
299         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
300         ({ASM,CPP}_CPU_SPEC): Likewise.
301         (REGISTER_MOVE_COST): Likewise.
302         (RTX_COSTS): Likewise.
303         * config/sparc/sparc.c (sparc_override_options,
304         sparc_initialize_trampoline, sparc64_initialize_trampoline,
305         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
306         sparc_issue_rate): Likewise.
307         * config/sparc/sol2.h: Likewise.
308         * config/sparc/sol2-sld-64.h: Likewise.
309         * config/sparc/linux64.h: Likewise.
310
311         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
312
313         * doc/md.texi: Add comments about usage the latency time for the
314         different dependencies and about case when two or more conditions
315         in different define_insn_reservations returns TRUE for an insn.
316
317         * doc/md.texi: Add reference for automaton based pipeline
318         description.
319
320         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
321
322         * doc/passes.texi: Add missed information about genattrtab.
323
324         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
325
326         * genautomata.c (output_automata_list_transition_code): Check
327         automata_list on NULL.
328
329         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
330
331         * genautomata.c (output_insn_code_cases,
332         output_automata_list_min_issue_delay_code,
333         output_automata_list_transition_code,
334         output_automata_list_state_alts_code): Comment the functions.
335
336         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
337
338         * genautomata.c (automata_list_el_t): New typedef.
339         (get_free_automata_list_el,free_automata_list_el,
340         free_automata_list, automata_list_hash, automata_list_eq_p,
341         initiate_automata_lists, automata_list_start, automata_list_add,
342         automata_list_finish, finish_automata_lists,
343         output_insn_code_cases, output_automata_list_min_issue_delay_code,
344         output_automata_list_transition_code,
345         output_automata_list_state_alts_code, add_automaton_state,
346         form_important_insn_automata_lists): New functions and prototypes.
347         (insn_reserv_decl): Add members important_automata_list and
348         processed_p.
349         (ainsn): Add members important_p.
350         (automata_list_el): New structure.
351         (first_free_automata_list_el, current_automata_list,
352         automata_list_table): New global variables.
353         (create_ainsns): Initiate member important_p.
354         (output_internal_min_issue_delay_func): Generate the switch and
355         call output_insn_code_cases.
356         (output_internal_trans_func, output_internal_state_alts_func):
357         Ditto.
358         (generate): Call initiate_automata_lists.
359         (automaton_states): New global variable.
360         (expand_automata): Call form_important_insn_automata_lists.
361         (write_automata): Call finish_automata_lists.
362
363         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
364
365         * genautomata.c (add_excls, add_presence_absence): Check that
366         cpu units in the sets belong the same automaton.
367
368         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
369         about that cpu units in the sets belong the same automaton.
370
371         * doc/md.texi: Ditto.
372
373         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
374                     Nitin Gupta  <niting@noida.hcltech.com>
375
376         * config/sh/sh.c (sh_use_dfa_interface): New function.
377
378         (sh_issue_rate): New Function.
379         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
380         TARGET_SCHED_ISSUE_RATE: define.
381
382         * config/sh/sh.md: Add DFA based pipeline description for SH4.
383
384         (define_attr insn_class): New attribute used for DFA
385          scheduling.
386         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
387         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
388          cmpeqdi_t): Likewise.
389
390         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
391          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
392          ex_group.
393         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
394
395         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
396
397         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
398         break.
399
400         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
401
402         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
403         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
404         necessary.
405         (output_dfa_start_func): Initiate new variable insn_codes_length,
406         (write_automata): Output definition of the new variable.
407
408         2001-10-02  David S. Miller  <davem@redhat.com>
409
410         * haifa-sched.c (advance_one_cycle): New function.
411         (schedule_block): Use it.
412         (queue_to_ready): Use it, and also make sure to advance the DFA
413         state on all stall cycles, not just those where insn_queue links
414         are found.
415
416         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
417
418         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
419         non-zero if the highest-priority instruction could be scheduled.
420         (choose_ready): Remove last argument from max_issue call.
421
422         2001-09-28  David S. Miller  <davem@redhat.com>
423
424         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
425         ultrasparc and 3 for other multi-issue sparcs.
426
427         2001-09-27  David S. Miller  <davem@redhat.com>
428
429         * config/sparc/sparc.md (cycle_display): New pattern.
430         * config/sparc/sparc.c (sparc_cycle_display): New.
431         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
432
433         2001-09-25  David S. Miller  <davem@redhat.com>
434
435         Convert all of Sparc scheduling to DFA
436         * config/sparc/sparc.md: Kill all define_function_unit
437         directives and replace with DFA equivalent.
438         * config/sparc/sparc.c (ultrasparc_adjust_cost,
439         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
440         ultra_fpmode_conflict_exists, ultra_find_type,
441         ultra_build_types_avail, ultra_flush_pipeline,
442         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
443         ultrasparc_variable_issue, ultrasparc_sched_init,
444         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
445         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
446         ultra_cur_hist, ultra_cycles_elapsed): Kill.
447         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
448         ultrasparc_store_bypass_p): New.
449         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
450         Declare.
451
452         2001-09-24  David S. Miller  <davem@redhat.com>
453
454         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
455         ready->vec[foo] not ready[foo].
456
457         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
458
459         * doc/md.texi: Correct examples for define_insn_reservations
460         `mult' and `div'.
461
462         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
463
464         * genautomata.c (create_automata): Print message about creation of
465         each automaton.
466         (generate): Remove printing meease about creation of
467         automata.
468
469         2001-09-05  David S. Miller  <davem@redhat.com>
470
471         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
472         * config/sparc/linux64.h: Likewise.
473
474         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
475
476         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
477         schedule_block, sched_init, sched_finish): Add missed calls of
478         use_dfa_pipeline_interface.
479
480         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
481         Ditto.
482
483         * sched-vis.c (get_visual_tbl_length): Ditto.
484
485         2001-08-27  Richard Henderson  <rth@redhat.com>
486
487         * genattr.c (main): Emit state_t even when not doing scheduling.
488
489         2001-08-27  Richard Henderson  <rth@redhat.com>
490
491         * genautomata.c (expand_automata): Always create a description.
492
493         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
494
495         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
496         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
497         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
498         RTL constructions.
499
500         * genattr.c (main): New variable num_insn_reservations.  Increase
501         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
502         pipeline hazard recognizer interface.
503
504         * genattrtab.h: New file.
505
506         * genattrtab.c: Include genattrtab.h.
507         (attr_printf, check_attr_test, make_internal_attr,
508         make_numeric_value): Move protypes into genattrtab.h.  Define them
509         as external.
510         (num_dfa_decls): New global variable.
511         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
512         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
513         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
514         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
515
516         * genautomata.c: New file.
517
518         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
519
520         * sched-int.h: (curr_state): Add the external definition for
521         automaton pipeline interface.
522         (haifa_insn_data): Add comments for members blockage and units.
523
524         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
525         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
526         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
527         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
528         TARGET_SCHED_DFA_POST_CYCLE_INSN,
529         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
530         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
531         macros.
532         (TARGET_SCHED): Use the new macros.
533
534         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
535         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
536         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
537         dfa_bubble): New members in gcc_target.sched.
538
539         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
540         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
541         (insn_queue): Redefine it as pointer to array.
542         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
543         INSN_QUEUE_SIZE.
544         (max_insn_queue_index_macro_value): New variable.
545         (curr_state, dfa_state_size, ready_try): New varaibles for
546         automaton interface.
547         (ready_element, ready_remove, max_issue): New function prototypes
548         for automaton interface.
549         (choose_ready): New function prototype.
550         (insn_unit, blockage_range): Add comments.
551         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
552         FUNCTION_UNITS_SIZE == 0.
553         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
554         actual_hazard, potential_hazard): Add comments.
555         (insn_cost): Use cost -1 as undefined value.  Remove
556         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
557         pipeline interface.
558         (ready_element, ready_remove): New functions for automaton
559         interface.
560         (schedule_insn): Add new code for automaton pipeline interface.
561         (queue_to_ready): Add new code for automaton pipeline interface.
562         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
563         (debug_ready_list): Print newline when the queue is empty.
564         (max_issue): New function for automaton pipeline interface.
565         (choose_ready): New function.
566         (schedule_block): Add new code for automaton pipeline interface.
567         Print ready list before scheduling each insn.
568         (sched_init): Add new code for automaton pipeline interface.
569         Initiate insn cost by -1.
570         (sched_finish): Free the current automaton state and finalize
571         automaton pipeline interface.
572
573         * sched-rgn.c: Include target.h.
574         (init_ready_list, new_ready, debug_dependencies): Add new code for
575         automaton pipeline interface.
576
577         * sched-vis.c: Include target.h.
578         (get_visual_tbl_length): Add code for automaton interface.
579         (target_units, print_block_visualization):  Add comments.
580
581         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
582         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
583         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
584         (getruntime.o, genautomata.o): New entries.
585         (genattrtab.o): Add new dependency file genattrtab.h.
586         (genattrtab): Add new dependencies.  Link it with `libm.a'.
587         (getruntime.o, hashtab.o): New entries for canadian cross.
588
589         * doc/md.texi: Description of automaton based model.
590
591         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
592         Add comments.
593         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
594         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
595         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
596         TARGET_SCHED_DFA_POST_CYCLE_INSN,
597         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
598         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
599         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
600         hook descriptions.
601         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
602         MAX_DFA_ISSUE_RATE): New macro descriptions.
603
604         * doc/contrib.texi: Add dfa based scheduler contribution.
605
606         * doc/gcc.texi: Add more information about genattrtab.
607
608 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
609
610         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
611         adjust_address_nv call.
612
613 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
614
615         * doc/install.texi (Testing): Provide additional information, and
616         a stronger encouragement, for running the testsuites.
617
618 2002-04-29  DJ Delorie  <dj@redhat.com>
619
620         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
621         given in upper case.
622
623 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
624
625         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
626         Solaris 2 <widec.h> if missing.
627         * fixinc/fixincl.x: Regenerate.
628         * fixinc/tests/base/widec.h: New file.
629
630 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
631
632         * toplev.c (f_options): Add "profile" switch so that
633         -fno-profile can be used to disable -p.
634
635 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
636
637         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
638         UV2DImode.
639         * tree.c (build_common_tree_nodes_2): Likewise.
640         * tree.h (enum tree_index): Likewise.
641         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
642
643         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
644         entries.
645         (init_mmx_sse_builtins): Initialize SSE2 builtins.
646         (ix86_expand_builtin): Add support for SSE2 builtins.
647         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
648         (VALID_SSE_REG_MODE): Use it.
649         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
650         (enum ix86_builtins): Add SSE2 builtins.
651         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
652         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
653         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
654         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
655         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
656         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
657         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
658         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
659         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
660         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
661         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
662         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
663         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
664         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
665         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
666         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
667         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
668         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
669         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
670         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
671         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
672         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
673         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
674         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
675         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
676         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
677         lfence_insn): New patterns.
678         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
679         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
680
681 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
682
683         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
684
685 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
686
687         * doc/contrib.texi (Contributors): Add Paolo Carlini and
688         Janis Johnson.
689         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
690         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
691         and CPU instead of cpu.
692
693 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
694
695         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
696         variables.
697         (lang_independent_options): Add -fif-conversion, -fif-conversion2
698         (rest_of_compilation): Do if conversion only when asked for.
699         (parse_options_and_default_flags): Set new variables to 1 for -O1
700         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
701
702 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
703
704         * i386.c (dbx64_register_map): Fix typo.
705
706 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
707
708         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
709         real_one_half, real_bb_freq_max): New static variables.
710         (debug_profile_bbauxs): Kill.
711         (process_note_predictions): Kill unused variable.
712         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
713         volatile double.
714         (propagate_freq): Use REAL_ARITHMETICS.
715         (estimate_bb_frequencies): Likevise; init new static variables.
716         * Makefile.in (predict.o): Add dependency on real.h
717
718 2002-04-28  David S. Miller  <davem@redhat.com>
719
720         PR target/6500
721         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
722         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
723         several {reads,writes} instead.
724         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
725         Define.
726
727 2002-04-27  David S. Miller  <davem@redhat.com>
728
729         PR target/6494
730         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
731         of the stack bias.
732
733         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
734         including signal.h and sys/ucontext.h, not needed.
735
736 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
737
738         * varasm.c (output_constant_def): Correct test for not calling
739         ENCODE_SECTION_INFO for INTEGER_CST.
740
741 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
742
743         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
744         keep most cases as function eval_token.
745         (eval_token): New function.
746         (_cpp_parse_expr): Read token here for improved diagnostics.
747         Don't use op_as_text.  Detect bad ':' here.
748         (reduce): Don't detect bad ':' here.
749         (op_as_text): Remove.
750         * cpphash.h (_cpp_test_assertion): Change prototype.
751         * cpplib.c (_cpp_test_assertion): Change prototype.
752
753 2002-04-28  Richard Henderson  <rth@redhat.com>
754
755         PR c/5154
756         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
757         (ggc_mark_rtx_children): New.
758
759 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
760
761         PR target/6496
762         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
763         after call peepholes for UltraSPARC.
764         (call + jump 64-bit peepholes): Remove.
765
766 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
767
768         PR c/6497
769         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
770         result as temporary value.
771
772 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
773
774         PR c++/6396
775         * toplev.c (rest_of_compilation): Only run regrename and copy
776         propagation if optimizing.
777
778 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
779
780         PR optimization/6475
781         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
782         register of REGNO_DECL (i).
783         * Makefile.in (reload1.o): Add $(TREE_H).
784
785 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
786
787         * cppexp.c (lex): Update to use state.skip_eval.
788         (struct op): Remove prio and flags members.
789         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
790         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
791         (LEFT_ASSOC): New macro.
792         (optab): New table of operator priorities and flags.
793         (SHIFT): Update.
794         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
795         malloc-ed parser stack.
796         (reduce): New; reduce the operator stack.
797         (_cpp_expand_op_stack): Expand the operator stack as necessary.
798         * cpphash.h (struct op): Predeclare.
799         (struct cpp_reader): New members op_stack, op_limit.
800         (struct lexer_state): New member skip_eval.
801         (_cpp_parse_expr): Update.
802         (_cpp_expand_op_stack): New.
803         * cpplib.c (do_if): Update.
804         * cppinit.c (cpp_create_reader): Create op stack.
805         (cpp_destroy): And destroy it.
806         * cpplib.h (CPP_LAST_CPP_OP): Correct.
807         (TTYPE_TABLE): Correct.
808
809 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
810
811         PR c/6343
812         * c-decl.c (duplicate_decls): Call merge_weak.
813         * c-pragma.c (apply_pragma_weak): Warn about misuse.
814         * output.h (merge_weak): Prototype merge_weak.
815         * varasm.c (merge_weak): New function.
816         (declare_weak): Make sure we don't give an error on VAR_DECLs.
817         Mark RTL with SYMBOL_REF_WEAK.
818
819 2002-04-27  Kurt Garloff <garloff@suse.de>
820
821         * tree-inline.c (inlinable_function_p): Improve heuristics
822         by using a smoother function to cut down allowable inlinable size.
823         * param.def: Add parameters max-inline-insns-single,
824         max-inline-slope, min-inline-insns that determine the exact
825         shape of the above function.
826         * param.h: Likewise.
827
828 2002-04-26  Richard Henderson  <rth@redhat.com>
829
830         * c-parse.in (malloced_yyss, malloced_yyvs): New.
831         (yyoverflow): Re-add.  Set them.
832         (free_parser_stacks): New.
833         * c-common.h: Declare it.
834         * c-lex.c (c_common_parse_file): Call it.
835
836 2002-04-26  Richard Henderson  <rth@redhat.com>
837
838         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
839         for fallthru search.
840
841 2002-04-26  Eric Christopher  <echristo@redhat.com>
842
843         PR optimization/3700
844         * config/mips/mips.c (mips_issue_rate): Define.  New function.
845         (TARGET_SCHED_ISSUE_RATE): Use.
846
847 2002-04-25  David S. Miller  <davem@redhat.com>
848
849         PR target/6422
850         * reorg.c (optimize_skip): Do not allow exception causing
851         instructions to be considered for delay slots.
852         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
853         (relax_delay_slots): Do not try to consider exception causing
854         instructions as redundant.
855
856 2002-04-26  Richard Henderson  <rth@redhat.com>
857
858         PR c/5225
859         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
860
861 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
862
863         PR bootstrap/6445
864         * config/i386/i386.md (untyped_call): Return the value in a float
865         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
866         TARGET_80387.
867
868 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
869
870         * tree.c (tree_int_cst_lt): Compare constants whose types differ
871         in unsigned-ness correctly.
872
873 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
874
875         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
876         portable runtime model.
877
878 2002-04-26  Richard Henderson  <rth@redhat.com>
879
880         * c-parse.in (yyoverflow): Revert.
881
882 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
883             Richard Henderson  <rth@redhat.com>
884
885         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
886         result as temporary value.
887
888 2002-04-26  Richard Henderson  <rth@redhat.com>
889
890         PR c/3581
891         * c-common.c (fix_string_type): Split out of ...
892         (combine_strings): ... here.  Take a varray, not a tree list.
893         (c_expand_builtin_printf): Use fix_string_type.
894         * c-common.h: Update decls.
895         * c-parse.in (string): Remove.  Update all uses to use STRING
896         instead, and not call combine_strings.
897         (yylexstring): New.
898         (_yylex): Use it.
899         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
900         (build_asm_stmt): Likewise.
901         * objc/objc-act.c (my_build_string): Use fix_string_type.
902         (build_objc_string_object): Build varray for combine_strings.
903
904 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
905
906         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
907         x86-64.
908
909 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
910
911         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
912         (HAVE_NO_R_OPERAND): Remove.
913         (HAVE_VALUE): Remove.
914         (op_to_prio): Update.
915         (UNARY): Don't alter flags.
916         (_cpp_parse_expr): want_value used to indicate whether
917         a number or unary operator is expected next.  Distinguish
918         unary and binary +/-.
919         (op_as_text): Update for unary operators.
920
921 2002-04-25  Richard Henderson  <rth@redhat.com>
922
923         PR c/2161
924         * c-parse.in (yyoverflow): New.
925
926 2002-04-25  Richard Henderson  <rth@redhat.com>
927
928         PR c/2098
929         * c-common.c (shorten_compare): Simplfy conditions leading to
930         the generation of a warning.
931
932 2002-04-25  Richard Henderson  <rth@redhat.com>
933
934         PR c/2035
935         * expmed.c (extract_bit_field): Fall through to generic code rather
936         than aborting on subreg special case.
937
938 2002-04-25  David S. Miller  <davem@redhat.com>
939
940         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
941         for DECL being NULL.
942
943 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
944
945         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
946
947 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
948
949         * c-decl.c (grokdeclarator): Remove outdated ??? note
950         on invalid declaration of flexible array members.
951
952 2002-04-25  Richard Henderson  <rth@redhat.com>
953
954         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
955
956 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
957
958         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
959         needed by the compiler, even if they are used as global regs.
960
961 2002-04-25  Matt Hiller  <hiller@redhat.com>
962
963         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
964         functions.
965         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
966         of the corresponding functions.
967         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
968         New prototypes.
969
970 2002-04-25  Matt Hiller  <hiller@redhat.com>
971
972         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
973
974         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
975         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
976         registers, adjust comment accordingly.
977         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
978         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
979         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
980         for coprocessor registers.
981         (ADDITIONAL_REGISTER_NAMES): Include
982         ALL_COP_ADDITIONAL_REGISTER_NAMES.
983
984         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
985         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
986         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
987         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
988         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
989
990         (mips_char_to_class): Adjust comment to include coprocessor
991         constraint letters.
992
993         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
994         New functions.
995         (mips_reg_names, mips_regno_to_class): Include coprocessor
996         information.
997         (mips_sw_reg_names): Ditto, make non-static.
998         (mips_move_1word): Handle moves to and from coprocessor registers.
999         (mips_move_2words): Handle moves to and from coprocessor
1000         registers.
1001         (mips_class_max_nregs, mips_register_move_cost): Handle
1002         coprocessor register classes.
1003         (override_options): Initialize mips_char_to_class and
1004         mips_hard_regno_mode_ok properly for coprocessor registers.
1005
1006         * config/mips/mips.md (movdi_internal, movdi_internal2,
1007         movsi_internal1, movsi_internal2): Add constraint-sets for
1008         coprocessor registers.
1009         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
1010         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
1011         isn't mips.
1012         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
1013         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
1014         isn't mips.
1015         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
1016         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
1017         isn't mips.
1018         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
1019         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
1020         isn't mips.
1021
1022         * doc/tm.texi: Document feature.
1023
1024 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1025
1026         * integrate.c (function_attribute_inlinable_p): Simplify.
1027         Check the table pointer is not NULL.
1028
1029 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
1030
1031         * doc/c-tree.texi: Fix typo in introduction.
1032
1033 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1034
1035         * c-common.h (c_common_parse_file): Update.
1036         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1037         * c-lex.c (YYDEBUG): Get from c-lex.h.
1038         (c_common_parse_file): Update.
1039         * c-lex.h (YYDEBUG, yydebug): New.
1040         * c-parse.in (YYDEBUG): Get from c-lex.h.
1041         (c_set_yydebug): Remove.
1042         * c-tree.h (c_set_yydebug): Remove.
1043         * langhooks-def.h (lhd_do_nothing_i): New.
1044         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
1045         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
1046         * langhooks.c  (lhd_do_nothing_i): New.
1047         (lhd_set_yydebug): Remove.
1048         * langhooks.h (struct lang_hooks): Update.
1049         * toplev.c (set_yydebug): New.
1050         (compile_file): Update call to parse_file hook.
1051         (decode_d_option): Update.
1052 objc:
1053         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1054
1055 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
1056
1057         * loop.c (load_mems): Don't change the interface of called functions.
1058
1059         * calls.c (expand_call): Take current_function_pretend_args_size
1060         into account when setting argblock for sibcalls.
1061
1062 2002-04-24  Matt Hiller  <hiller@redhat.com>
1063
1064         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
1065         * c-lex.c: Ditto.
1066
1067         * cpplex.c (skip_line_comment): Process comment one multibyte
1068         character at a time rather than one char at a time, if
1069         appropriate.
1070         (parse_string): Process string one multibyte character at a time
1071         rather than one char at a time, if appropriate.
1072         * c-lex.c (lex_string): Lex and copy multibyte strings
1073         appropriately.
1074         * cpplib.h (cppchar_t): Change to unsigned.
1075
1076 2002-04-24  Richard Henderson  <rth@redhat.com>
1077
1078         PR c/3467
1079         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
1080         for c99.
1081
1082 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
1083
1084         * sh.c (sh_va_arg): If argument was passed by reference,
1085         dereference the pointer.
1086
1087         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1088
1089         * sh.md (divsi3_i4_media): Use match_operand for input values
1090         rather than hard registers.
1091         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1092         unnecessarily through hard registers.  Keep copies of pseudo
1093         registers outside of the libcall sequence.
1094
1095         * sh.md (casesi_shift_media): Add modes.
1096
1097         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
1098         values in memory.
1099
1100 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1101
1102         * attribs.c (c_common_attribute_table): Move table and handlers
1103         to c-common.c.
1104         (format_attribute_table, lang_attribute_table,
1105         lang_attribute_common): Remove.
1106         (init_attributes): Replace NULL pointers with pointers to the
1107         empty table.
1108         (handle_packed_attribute, handle_nocommon_attribute,
1109         handle_common_attribute, handle_noreturn_attribute,
1110         handle_noinline_attribute, handle_always_inline_attribute,
1111         handle_used_attribute, handle_unused_attribute,
1112         handle_const_attribute, handle_transparent_union_attribute,
1113         handle_constructor_attribute, handle_destructor_attribute,
1114         handle_mode_attribute, handle_section_attribute,
1115         handle_aligned_attribute, handle_weak_attribute,
1116         handle_alias_attribute, handle_visibility_attribute,
1117         handle_no_instrument_function_attribute, handle_malloc_attribute,
1118         handle_no_limit_stack_attribute, handle_pure_attribute,
1119         handle_deprecated_attribute, handle_vector_size_attribute,
1120         vector_size_helper): Move to c-common.c.
1121         * c-common.c (c_common_attribute_table,
1122         handle_packed_attribute, handle_nocommon_attribute,
1123         handle_common_attribute, handle_noreturn_attribute,
1124         handle_noinline_attribute, handle_always_inline_attribute,
1125         handle_used_attribute, handle_unused_attribute,
1126         handle_const_attribute, handle_transparent_union_attribute,
1127         handle_constructor_attribute, handle_destructor_attribute,
1128         handle_mode_attribute, handle_section_attribute,
1129         handle_aligned_attribute, handle_weak_attribute,
1130         handle_alias_attribute, handle_visibility_attribute,
1131         handle_no_instrument_function_attribute, handle_malloc_attribute,
1132         handle_no_limit_stack_attribute, handle_pure_attribute,
1133         handle_deprecated_attribute, handle_vector_size_attribute,
1134         vector_size_helper): Move from attribs.c.
1135         * c-common.h (c_common_attribute_table,
1136         c_common_format_attribute_table): New.
1137         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1138         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1139         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1140         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
1141         (LANG_HOOKS_INITIALIZER): Update.
1142         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
1143         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
1144         * target.h: Update comment.
1145         * tree.c (default_target_attribute_table): Remove.
1146         * tree.h (default_target_attribute_table, format_attribute_table,
1147         lang_attribute_table, lang_attribute_common): Remove.
1148 objc:
1149         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1150         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1151
1152 2002-04-24  Jason Merrill  <jason@redhat.com>
1153
1154         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
1155         * dwarf2out.c (dwarf_attr_name): Support it.
1156         (gen_array_type_die): Emit it.
1157         (lookup_type_die): No special handling for VECTOR_TYPE.
1158         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
1159
1160 2002-04-24  Richard Henderson  <rth@redhat.com>
1161
1162         * config/mips/mips.md (movdi_usd): Renumber.
1163
1164 2002-04-24  David S. Miller  <davem@redhat.com>
1165
1166         PR target/6420
1167         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
1168         32-bit Sparc and current_function_returns_struct is true.
1169
1170 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1171
1172         * loop.c (canonicalize_condition): Use gen_int_mode.
1173
1174 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
1175
1176         * config/rs6000/altivec.h: Cleanup file.  Add non individual
1177         variants.
1178         (vec_vaddubm): New.
1179         (vec_vadduhm): New.
1180         (vec_vadduwm): New.
1181         (vec_vaddfp): New.
1182         (vec_vaddcuw): New.
1183         (vec_vaddubs): New.
1184         (vec_vaddsbs): New.
1185         (vec_vadduhs): New.
1186         (vec_vadduws): New.
1187         (vec_vaddsws): New.
1188         (vec_vand): New.
1189         (vec_vandc): New.
1190         (vec_vavgub): New.
1191         (vec_vavgsb): New.
1192         (vec_vavguh): New.
1193         (vec_vavgsh): New.
1194         (vec_vavguw): New.
1195         (vec_vavgsw): New.
1196         (vec_vrfip): New.
1197         (vec_vcmpbfp): New.
1198         (vec_vcmpequb): New.
1199         (vec_vcmpequh): New.
1200         (vec_vcmpequw): New.
1201         (vec_vcmpeqfp): New.
1202         (vec_vcmpgefp): New.
1203         (vec_vcmpgtub): New.
1204         (vec_vcmpgtsb): New.
1205         (vec_vcmpgtuh): New.
1206         (vec_vcmpgtsh): New.
1207         (vec_vcmpgtuw): New.
1208         (vec_vcmpgtsw): New.
1209         (vec_vcmpgtfp): New.
1210         (vec_vcmpgefp): New.
1211         (vec_vcfux): New.
1212         (vec_vcfsx): New.
1213         (vec_vctsxs): New.
1214         (vec_vctuxs): New.
1215         (vec_vexptefp): New.
1216         (vec_vrfim): New.
1217         (vec_lvx): New.
1218         (vec_lvebx): New.
1219         (vec_lvehx): New.
1220         (vec_lde): Add vector float variant.
1221         (vec_lvewx): New.
1222         (vec_lvxl): New.
1223         (vec_vlogefp): New.
1224         (vec_vmaddfp): New.
1225         (vec_vmhaddshs): New.
1226         (vec_vmaxub): New.
1227         (vec_vmaxsb): New.
1228         (vec_vmaxuh): New.
1229         (vec_vmaxsh): New.
1230         (vec_vmaxuw): New.
1231         (vec_vmaxsw): New.
1232         (vec_vmaxsw): New.
1233         (vec_vmaxfp): New.
1234         (vec_vmrghb): New.
1235         (vec_vmrghh): New.
1236         (vec_vmrghw): New.
1237         (vec_vmrglb): New.
1238         (vec_vmrglh): New.
1239         (vec_vmrglw): New.
1240         (vec_vminub): New.
1241         (vec_vminsb): New.
1242         (vec_vminuh): New.
1243         (vec_vminsh): New.
1244         (vec_vminuw): New.
1245         (vec_vminsw): New.
1246         (vec_vminfp): New.
1247         (vec_vmladduhm): New.
1248         (vec_vmhraddshs): New.
1249         (vec_msumubm): New.
1250         (vec_vmsummbm): New.
1251         (vec_vmsumuhm): New.
1252         (vec_vmsumshm): New.
1253         (vec_vmsumuhs): New.
1254         (vec_vmsumshs): New.
1255         (vec_vmuleub): New.
1256         (vec_vmulesb): New.
1257         (vec_vmuleuh): New.
1258         (vec_vmulesh): New.
1259         (vec_vmuloub): New.
1260         (vec_mulosb): New.
1261         (vec_vmulouh): New.
1262         (vec_vmulosh): New.
1263         (vec_vnmsubfp): New.
1264         (vec_vnor): New.
1265         (vec_vor): New.
1266         (vec_vpkuhum): New.
1267         (vec_vpkuwum): New.
1268         (vec_vpkpx): New.
1269         (vec_vpkuhus): New.
1270         (vec_vpkshss): New.
1271         (vec_vpkuwus): New.
1272         (vec_vpkswss): New.
1273         (vec_vpkshus): New.
1274         (vec_vpkswus): New.
1275         (vec_vperm): New.
1276         (vec_vrefp): New.
1277         (vec_vrlb): New.
1278         (vec_vrlh): New.
1279         (vec_vrlw): New.
1280         (vec_vrfin): New.
1281         (vec_vrsqrtefp): New.
1282         (vec_vsel): New.
1283         (vec_vslb): New.
1284         (vec_vslh): New.
1285         (vec_vslw): New.
1286         (vec_vsldoi): New.
1287         (vec_vsl): New.
1288         (vec_vslo): New.
1289         (vec_vspltb): New.
1290         (vec_vsplth): New.
1291         (vec_vspltw): New.
1292         (vec_vspltisb): New.
1293         (vec_vspltish): New.
1294         (vec_vspltisw): New.
1295         (vec_vsrb): New.
1296         (vec_vsrh): New.
1297         (vec_vsrw): New.
1298         (vec_vsrab): New.
1299         (vec_vsrah): New.
1300         (vec_vsraw): New.
1301         (vec_vsr): New.
1302         (vec_vsro): New.
1303         (vec_stvx): New.
1304         (vec_stvebx): New.
1305         (vec_stvehx): New.
1306         (vec_stvewx): New.
1307         (vec_stvxl): New.
1308         (vec_vsububm): New.
1309         (vec_vsubuhm): New.
1310         (vec_vsubuwm): New.
1311         (vec_vsubfp): New.
1312         (vec_vsubcuw): New.
1313         (vec_vsububs): New.
1314         (vec_vsubsbs): New.
1315         (vec_vsubuhs): New.
1316         (vec_vsubshs): New.
1317         (vec_vsubuws): New.
1318         (vec_vsubsws): New.
1319         (vec_vsum4ubs): New.
1320         (vec_vsum4sbs): New.
1321         (vec_vsum4shs): New.
1322         (vec_vsum2sws): New.
1323         (vec_vsumsws): New.
1324         (vec_vrfiz): New.
1325         (vec_vupkhsb): New.
1326         (vec_vupkhpx): New.
1327         (vec_vupkhsh): New.
1328         (vec_vupklsb): New.
1329         (vec_vupklpx): New.
1330         (vec_vupklsh): New.
1331         (vec_vxor): New.
1332
1333 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
1334
1335         PR c/5430
1336         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
1337         added literals from substracted literals.
1338         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
1339         (fold) [associate]: Preserve MINUS_EXPR if needed.
1340
1341 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
1342
1343         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
1344         are obsoleted.
1345
1346 2002-04-23  Tom Tromey  <tromey@redhat.com>
1347
1348         * gcc.c: Added --resource.  For PR java/6314.
1349
1350 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1351
1352         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
1353         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
1354         these libraries.
1355
1356 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1357
1358         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
1359
1360 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1361
1362         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
1363         workaround.
1364         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
1365         (ix86_expand_clrstr): Fix typo.
1366         * loop.c (gen_load_of_final_value): New.
1367         (loop_givs_rescan, strength_reduce, check_dbra_loop):
1368         Use it.
1369
1370 2002-04-23  Roger Sayle  <roger@eyesopen.com>
1371
1372         * builtins.c (builtin_memset_gen_str): New function.
1373         (expand_builtin_memset): Optimize the case of constant length, but
1374         unknown value.
1375
1376 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
1377
1378         * config/rs6000/altivec.h (vec_step): Remove extraneous
1379         parentheses.
1380         (vec_ctu): Cast return.
1381
1382 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
1383
1384         PR target/6413
1385         * function.h: (struct function): Add profile_label_no field.
1386         (current_function_profile_label_no): Define.
1387         * function.c: (profile_label_no): New static var.
1388         (expand_function_start): Increment it, and copy to
1389         current_function_profile_label_no.
1390         * output.h (profile_label_no): Delete.
1391         * final.c (profile_label_no): Delete.
1392         (profile_function): Use current_function_profile_label_no.
1393         (final_end_function): Don't increment profile_label_no here.
1394         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
1395         profile_label_no with current_function_profile_label_no.
1396         * config/pa/pa.c (current_function_number): Delete.
1397         (pa_output_function_prologue): Don't output profile label here.
1398         (hppa_profile_hook): Use label_no param rather than
1399         current_function_number.
1400         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
1401         * config/pa/pa.h: .. here.
1402         (FUNCTION_PROFILER): Output profile label here.
1403
1404 2002-04-22  Eric Christopher  <echristo@redhat.com>
1405
1406         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
1407         patch of 2002-04-09 due to binutils issues.
1408         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
1409
1410 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1411
1412         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
1413         constraint to 'o' for m=r and r=m alternatives.
1414         ("*movv8hi_internal1"): Same.
1415         ("*movv16qi_internal1"): Same.
1416         ("*movv4sf_internal1"): Same.
1417
1418 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
1419
1420         * rtl.h (RTX_FLAG): New macro.
1421         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
1422         * final.c (alter_subreg): Use macro to access rtx flag.
1423         * integrate.c (copy_rtx_and_substitute): Use new access macro.
1424         * print-rtl.c (print_rtx): Use new access macro.
1425
1426         * cse.c (insert): Check rtx code before accessing flag.
1427
1428         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
1429         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
1430         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
1431         convert_const_symbol_ref, make_canonical, make_alternative_compare,
1432         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
1433         simplify_test_exp, optimize_attrs, simplify_by_exploding,
1434         find_and_mark_used_attributes, unmark_used_attributes,
1435         add_values_to_cover, simplify_with_current_value,
1436         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
1437         copy_rtx_unchanging, main): Use new access macros.
1438
1439 2002-04-22  Tom Rix  <trix@redhat.com>
1440
1441         * expmed.c (init_expmed): Generate shifted constant once.
1442
1443 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
1444
1445         * c-lex.c (lex_charconst): Call convert to get constant in
1446         proper type; don't just smash the type field.
1447         Fixes PR c/6300.
1448
1449         * config.gcc: Add list of obsolete configurations.  Disallow
1450         building these without --enable-obsolete.
1451         * doc/install.texi: Document --enable-obsolete and obsoletion
1452         policy.  Mention obsoletion of individual targets in
1453         appropriate places.
1454
1455 2002-04-22  Richard Henderson  <rth@redhat.com>
1456
1457         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
1458
1459 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
1460
1461         PR f/6138.
1462         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
1463         (walk_fixup_memory_subreg): Likewise.
1464         (fixup_var_refs_insn): Adjust accordingly.
1465         (fixup_var_refs_1): Likewise.
1466
1467 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
1468
1469         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
1470         LIBPATH_ARCH64_SPEC): Define.
1471         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
1472         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
1473         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
1474         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
1475
1476 2002-04-22      Joel Sherrill <joel@OARcorp.com>
1477
1478         * gthr-rtems.h: Correct prototypes to remove warnings.
1479
1480 2002-04-22  Richard Henderson  <rth@redhat.com>
1481
1482         PR c/6344
1483         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
1484
1485         * gcse.c (free_insn_expr_list_list): New.
1486         (clear_modify_mem_tables): Use it.  Fix bit set usage.
1487         (canon_list_insert): Use EXPR_LISTs for expressions.
1488         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
1489
1490 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1491
1492         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
1493         file change and include code to _cpp_pop_buffer.
1494         * cpphash.h (struct pending_option): Predeclare.
1495         (struct cpp_reader): New member next_include_file.
1496         (_cpp_pop_file_buffer): Update.
1497         (_cpp_push_next_buffer): Update, rename.
1498         * cppinit.c (cpp_destroy): Free include chain and pending here.
1499         (cpp_finish_options): Simplify.
1500         (_cpp_push_next_buffer): Rename and clean up.
1501         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
1502         Clarify.
1503         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
1504
1505 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1506
1507         * config/rs6000/altivec.h (vec_xor): Add variant for both args
1508         being vector signed int.
1509         (vec_andc): Same.
1510         (vec_xor): Add variant for both args being vector signed char.
1511         Remove redundant variant.
1512         (vec_andc): Same.
1513
1514 2002-04-21  David S. Miller  <davem@redhat.com>
1515
1516         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
1517         compare mode in output RTL.
1518
1519 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
1520
1521         * config/rs6000/rs6000.c (rs6000_override_options): Correct
1522         style and formatting of previous patch.
1523
1524 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
1525
1526         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
1527         flag_pic for ABI_AIX.
1528
1529 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1530
1531         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
1532         * cppfiles.c (read_include_file): Similarly.
1533         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
1534         uxstrdup ustrchr, ufputs): Similarly.
1535         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
1536         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
1537         cpp_ideq, parse_identifier, parse_number): Similarly.
1538         * cpplib.c (struct directive, dequote_string, D, run_directive,
1539         cpp_push_buffer): Similarly.
1540         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
1541         _cpp_create_definition, check_trad_stringification,
1542         cpp_macro_definition): Similarly.
1543
1544 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1545
1546         * cppmacro.c (funlike_invocation_p): Don't step back
1547         over CPP_EOF.
1548
1549 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
1550
1551         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
1552         labelno.
1553
1554 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1555
1556         * doc/invoke.texi: Remove Chill references.
1557         * doc/gcc.texi: Update last modified date.
1558
1559 2002-04-20  Kazu Hirata  <kazu@hxi.com>
1560
1561         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
1562         push and pop.  Replace add.l with add.w.
1563
1564 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1565
1566         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
1567         multiply instructions for H8/300H case.
1568
1569 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1570
1571         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
1572         Bum three instructions from each routine.
1573
1574 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1575
1576         * Makefile.in: Update.
1577         * decl.c (push_c_function_context, pop_c_function_context,
1578         mark_c_function_context): Rename for consistency.
1579         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
1580         * c-tree.h (push_c_function_context, pop_c_function_context,
1581         mark_c_function_context): Rename for consistency.
1582         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1583         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1584         * function.c (init_lang_status, save_lang_status,
1585         restore_lang_status, mark_lang_status, free_lang_status):
1586         Move to langhooks.h.
1587         (push_function_context_to, pop_function_context_from,
1588         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
1589         Update.
1590         * function.h (init_lang_status, save_lang_status,
1591         restore_lang_status, mark_lang_status, free_lang_status):
1592         Move to langhooks.h.
1593         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
1594         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1595         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
1596         LANG_HOOKS_FUNCTION_INITIALIZER): New.
1597         (LANG_HOOKS_INITIALIZER): Update.
1598         (lhd_do_nothing_f): New.
1599         * langhooks.h (struct lang_hooks_for_functions): New.
1600         (struct lang_hooks): New hooks.
1601         * langhooks.c (lhd_do_nothing_f): New.
1602 objc:
1603         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1604         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1605
1606 2002-04-19  David S. Miller  <davem@redhat.com>
1607
1608         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
1609         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
1610
1611 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1612
1613         PR optimization/3756
1614         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
1615         x = ((int) y < 0) ? cst1 : cst2.
1616
1617 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1618
1619         PR c/6358
1620         * function.c: Reapply patch for c/6358.
1621         (expand_function_end): Copy decl_rtl's mode, not
1622         current_function_return_rtx mode.
1623
1624 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
1625
1626         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
1627         targets.
1628
1629 2002-04-19  Tom Tromey  <tromey@redhat.com>
1630
1631         * doc/install.texi (Specific): Update status of Solaris 2.8.
1632         For PR libgcj/6158.
1633
1634 2002-04-19  Andreas Schwab  <schwab@suse.de>
1635
1636         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
1637         (PUT_REAL): Restore old definition.
1638
1639 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1640             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1641
1642         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
1643         binutils 2.11.2 and higher generate smaller binaries than Sun's
1644         native tools.
1645
1646 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
1647
1648         PR c++/6352
1649         * toplev.c (rest_of_compilation): Do not defer functions for which
1650         TREE_SYMBOL_REFERENCED has already been set.
1651
1652 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
1653
1654         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
1655         alternative.
1656
1657 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1658
1659         * builtins.c: Include langhooks.h.
1660         (lang_type_promotes_to): Remove.
1661         (expand_builtin_va_arg): Use new hook.
1662         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
1663         (simple_type_promotes_to): Move to c-typeck.c.
1664         * c-common.h (simple_type_promotes_to): Remove.
1665         * c-decl.c (duplicate_decls, grokdeclarator): Update.
1666         * c-format.c: Include langhooks.h.
1667         (check_format_types): Update.
1668         * c-tree.h (c_type_promotes_to): New.
1669         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
1670         (type_lists_compatible_p): Update.
1671         * langhooks-def.h (lhd_type_promotes_to): New.
1672         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
1673         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1674         * langhooks.c (lhd_type_promotes_to): New.
1675         * langhooks.h (struct lang_hooks_for_types): New hook.
1676         * tree.h (lang_type_promotes_to): Remove.
1677 objc:
1678         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1679
1680 2002-04-18  Richard Henderson  <rth@redhat.com>
1681
1682         * function.c: Revert patch for c/6358.
1683
1684 2002-04-18  Richard Henderson  <rth@redhat.com>
1685
1686         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
1687         blocks.  Handle multiple references to the TRAP block.  Handle
1688         non-adjacent THEN and OTHER blocks.
1689
1690 2002-04-18  Richard Henderson  <rth@redhat.com>
1691
1692         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
1693         crash with no type for by-mode libcalls.
1694
1695         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
1696
1697 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
1698
1699         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
1700         __xtensa_nonlocal_goto): Use a syscall instructions to flush
1701         the register windows.
1702
1703 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1704
1705         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
1706         appropriate.  Document need for extended precision even when
1707         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
1708         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
1709         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
1710         instead of relying on later syntax error when REAL_WIDTH > 5.
1711         * real.c: Define NE based only on whether or not we have a
1712         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
1713         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
1714         define GET_REAL and PUT_REAL as simple memcpy operations; no
1715         need to byteswap or round.
1716         Use #error instead of #ifdef-ing out the entire file, for
1717         prompt error detection.
1718
1719         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
1720
1721 2002-04-18  David S. Miller  <davem@redhat.com>
1722
1723         * config/sparc/sparc.h (BRANCH_COST): Define.
1724
1725         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
1726         does it.
1727
1728 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
1729
1730         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
1731         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
1732         propagate_block calls after relaxation loop using new variable
1733         stabilized_prop_flags.
1734
1735 2002-04-18  Richard Henderson  <rth@redhat.com>
1736
1737         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
1738         (ia64_va_arg): Expect variable sized types by reference.
1739         * config/ia64/ia64-protos.h: Update.
1740         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
1741         ia64_function_arg_pass_by_reference.
1742
1743 2002-04-18  Richard Henderson  <rth@redhat.com>
1744
1745         * ifcvt.c: Include except.h.
1746         (block_has_only_trap): Break out from find_cond_trap.
1747         (find_cond_trap): Use it.  Always delete the trap block.
1748         (merge_if_block): Allow then block null.  Be less simplistic about
1749         what insns can end a block.
1750         * Makefile.in (ifcvt.o): Depend on except.h.
1751
1752         * config/ia64/ia64.md (trap, conditional_trap): New.
1753
1754 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1755
1756         PR c/6358
1757         * function.c (assign_parms): Assign hard current_function_return_rtx
1758         register here...
1759         (expand_function_end): ...not here.
1760
1761 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1762
1763         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1764         * c-tree.h (c_incomplete_type_error): New.
1765         * c-typeck.c (require_complete_type, build_component_ref): Update.
1766         (incomplete_type_error): Rename.
1767         * langhooks-def.h (lhd_incomplete_type_error): New.
1768         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
1769         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1770         * langhooks.c (lhd_incomplete_type_error): New.
1771         * langhooks.h (struct lang_hooks_for_types): New hook.
1772         * tree.c (size_in_bytes): Use new hook.
1773         * tree.h (incomplete_type_error): Remove.
1774 objc:
1775         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1776
1777 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1778
1779         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
1780         TARGET_FLOAT_FORMAT blocks.
1781
1782 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1783
1784         * doc/install.texi (Downloading the source): Do not mention Chill
1785         any longer, but mention Ada.
1786         (Configuration): Do not mention Chill any longer.
1787
1788 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
1789
1790         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
1791
1792 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
1793
1794         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
1795         in last patch.
1796
1797 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1798
1799         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
1800         instead of unsigned_type.
1801
1802 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
1803
1804         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
1805         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
1806         later.
1807
1808 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
1809
1810         * attribs.c (vector_type_node_list): New static variable.
1811         (handle_vector_size_attribute): Use it to avoid generating a
1812         new type node each time we are called.
1813
1814         * combine.c (subst): Avoid trying to make a vector mode subreg of
1815         an integer constant.
1816         (gen_lowpart_for_combine): Likewise.
1817
1818 2002-04-18  Roger Sayle  <roger@eyesopen.com>
1819             Jakub Jelinek  <jakub@redhat.com>
1820
1821         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
1822         for integer constant c (if x has unsigned type or sign bit is not
1823         set in c).  This folds the zero/sign extension into the bit-wise and
1824         operation.
1825
1826 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1827
1828         PR middle-end/6205
1829         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
1830         otherwise xorps.
1831
1832 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
1833
1834         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
1835
1836 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
1837
1838         * gcc.c (read_specs): Detect and fail if an attempt is made to
1839         rename a spec string to an already existing string.
1840
1841 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1842
1843         * config/s390/s390.c (legitimize_pic_address): Do not generate
1844         illegal address constant without CONST.
1845
1846 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1847
1848         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
1849         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
1850
1851 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1852
1853         PR optimization/6305
1854         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
1855         to make sure previous reloads are taken into account.  Generate
1856         better code if one operand is an in-range immediate constant.
1857
1858 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
1859
1860         * doc/install.texi (Building): libgcj requires GNU make.
1861
1862 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
1863
1864         PR bootstrap/6315
1865         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
1866         even if hard quad and register is not floating.
1867         (movtf reg<-mem split): Disallow splitting if hard quad and
1868         register is floating.
1869         (movtf mem<-reg split): Likewise.
1870         * config/sparc/sparc.c (fp_register_operand): New predicate.
1871         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
1872
1873 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
1874
1875         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
1876         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
1877         (unprotoize.o): Ditto.  Build from protoize.c.  Define
1878         UNPROTOIZE on command line.
1879         * protoize.c: Include cppdefault.h.  Delete include_defaults.
1880         (in_system_include_dir): Use cpp_include_defaults (defined in
1881         cppdefault.o).
1882         * unprotoize.c: Delete file.
1883
1884 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
1885
1886         * config/rs6000/altivec.h (vec_ld): Add array variants.
1887         (vec_lde): Same.
1888         (vec_ldl): Same.
1889
1890 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
1891             Aldy Hernandez <aldyh@redhat.com>
1892
1893         * config/rs6000/altivec.h: Define __ALTIVEC__.
1894         (bool): New.
1895         (__pixel): New.
1896         (pixel): New.
1897         (vec_cfux): New.
1898         (vec_vmaddfp): New.
1899         (vec_vsldoi): New.
1900         Add parentheses to all macro arguments.
1901
1902 2002-04-16  Richard Henderson  <rth@redhat.com>
1903
1904         PR c++/6320
1905         * except.c (remove_eh_handler): Insert inner regions at beginning
1906         of sibling chain.  Refactor expressions.
1907
1908 2002-04-16  Richard Henderson  <rth@redhat.com>
1909
1910         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
1911         * config/sparc/sol2-gas-bi.h: New file.
1912         * config.gcc (sparc*-solaris): Add it as needed.
1913         * configure.in (AS_SPARC64_FLAG): Remove check.
1914         * config.in, configure: Regenerate.
1915
1916         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
1917
1918 2002-04-16  Richard Henderson  <rth@redhat.com>
1919
1920         * config/mips/mips.c (override_options): Don't override N32 for
1921         a 64-bit ISA.
1922
1923         PR 6202
1924         * config/mips/mips.md (can_delay): Split out of existing define_delays.
1925         (HILO_delay): Set can_delay false.
1926
1927 2002-04-16  Dale Johannesen <dalej@apple.com>
1928
1929         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
1930         instruction addresses.
1931         (rs6000_output_function_epilogue): Likewise.
1932
1933 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
1934
1935         * c-parse.in (poplevel, compstmt_start,
1936         compstmt_primary_start): Add ending ';', in accordance
1937         with POSIX.
1938
1939 2002-04-16  Richard Henderson  <rth@redhat.com>
1940
1941         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
1942         Adjust tm_file order to get TARGET_DEFAULT set properly.
1943         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
1944         * doc/install.texi (sparc-solaris): Update.
1945
1946 2002-04-16  Dale Johannesen <dalej@apple.com>
1947
1948         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
1949         comparison operands do not match each other or if modes of
1950         conditions do not match result.
1951
1952 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
1953
1954         PR target/6305
1955         * config/s390/s390.md (mulsidi3): Set both subregs of the
1956         multiword register.
1957
1958 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
1959
1960         * config/rs6000/altivec.h (vec_addc): Type check.
1961
1962 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
1963
1964         PR middle-end/6279
1965         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
1966
1967         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
1968
1969 2002-04-15  Richard Henderson  <rth@redhat.com>
1970
1971         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
1972         call_really_used_regs too.
1973
1974 2002-04-15  Richard Henderson  <rth@redhat.com>
1975
1976         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
1977
1978 2002-04-15  David S. Miller  <davem@redhat.com>
1979
1980         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
1981         as being CLOBBERed.
1982
1983 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
1984
1985         PR c/6290
1986         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
1987         CONST_VECTOR is { 0, ... 0 }.
1988
1989 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
1990
1991         * doc/install.texi (Installing GCC: Configuration): Clarify
1992         the only supported ways to configure gcc.
1993
1994 2002-04-15  Roland McGrath  <roland@frob.com>
1995
1996         * config.gcc (alpha*-*-gnu*): New target configuration.
1997         * config/alpha/gnu.h: New file for it.
1998         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
1999
2000 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
2001
2002         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
2003         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
2004         * tree.h (expand_start_stmt_expr): Update prototype.
2005         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
2006         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
2007         on the STMT_EXPR created for the inline function.
2008
2009 2002-04-15  Richard Henderson  <rth@redhat.com>
2010
2011         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
2012         config/i386/linux-aout.h, config/i386/linux-oldld.h,
2013         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
2014         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
2015         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
2016         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
2017         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
2018         Define __gnu_linux__, not gnu_linux.
2019         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
2020
2021 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
2022
2023         Remove Chill front end.
2024         * gcc.c (default_compilers): Remove Chill entries.
2025         * ch: Remove directory.
2026         * doc/frontends.texi: Remove information about Chill.
2027         * doc/sourcebuild.texi: Likewise.
2028         * doc/standards.texi: Likewise.
2029
2030 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
2031
2032         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
2033         (LONGLONG_STANDALONE): Define.
2034
2035 2002-04-15  David S. Miller  <davem@redhat.com>
2036
2037         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
2038         Call emit_library_call with LCT_NORMAL.
2039         (sparc_initialize_trampoline): Use LCT_foo instead of
2040         magic constant in emit_library_call invocations.
2041         (sparc64_initialize_trampoline): Likewise.
2042         (sparc_profile_hook): Likewise.
2043         * config/sparc/sparc.md: Likewise.
2044
2045         * config/sparc/sparc.c (sparc_extra_constraint_check):
2046         Fix type of argument 'c'.
2047         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
2048         Likewise.
2049
2050 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2051
2052         * diagnostic.h (output_buffer_state): Redefine.
2053         (output_format_decoder): New macro.
2054         (output_prefixing_rule): Likewise.
2055         (output_line_cutoff): Likewise.
2056         (diagnostic_format_decoder): Adjust.
2057         (diagnostic_prefixing_rule): Likewise.
2058         (diagnostic_line_cutoff): Likewise.
2059         (diagnostic_state): Likewise.
2060         (diagnostic_kind_count): Likewise.
2061         (diagnostic_buffer): Now a macro.
2062
2063         * diagnostic.c (diagnostic_buffer): Remove definition.
2064         (output_is_line_wrapping): Adjust.
2065         (set_real_maximum_length): Likewise.
2066         (output_set_maximum_length): Likewise.
2067         (init_output_buffer): Likewise.
2068         (lhd_print_error_function): Likewise.
2069         (output_do_verbatim): Likewise.
2070
2071 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2072
2073         * cpperror.c (print_location): Don't print include chain
2074         if line == 0.
2075         (cpp_begin_message): Update to use DL_ macros.
2076         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2077         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2078         cpp_notice, cpp_notice_from_errno): Remove.
2079         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2080         level.
2081         (cpp_errno): New.
2082         * cppexp.c (CPP_ICE): Remove.
2083         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
2084         lex, integer_overflow, _cpp_parse_expr): Update.
2085         * cppfiles.c (read_include_file, find_include_file,
2086         handle_missing_header, _cpp_read_file, remap_filename): Update.
2087         * cpphash.h (enum error_type): Remove.
2088         (_cpp_begin_message): Update.
2089         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
2090         cpp_handle_option, cpp_post_options): Update.
2091         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
2092         skip_whitespace, parse_identifier, parse_slow, parse_string,
2093         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
2094         cpp_interpret_charconst): Update.
2095         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
2096         lex_macro_node, do_undef, glue_header_name, parse_include,
2097         do_include_common, read_flag, do_line, do_linemarker, do_ident,
2098         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
2099         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
2100         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
2101         _cpp_pop_buffer, do_diagnostic): Update.
2102         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
2103         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
2104         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2105         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2106         cpp_notice, cpp_notice_from_errno): Remove.
2107         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2108         level.
2109         (cpp_errno): New.
2110         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
2111         collect_args, enter_macro_context, save_parameter, parse_params,
2112         _cpp_create_definition, check_trad_stringification,
2113         cpp_macro_definition): Update.
2114         * cppmain.c (cpp_preprocess_file): Update.
2115         * fix-header.c (read_scan_file): Update.
2116
2117 2002-04-14  Andreas Schwab  <schwab@suse.de>
2118
2119         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
2120
2121 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2122
2123         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
2124
2125 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2126
2127         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
2128         not gnu_hurd.
2129
2130 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
2131
2132         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
2133
2134 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2135
2136         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
2137         sparc-elf and sparc-rtems targets.
2138
2139 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2140
2141         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
2142         defined, and __gnu_hurd__ wherever __GNU__ is defined.
2143         * arm/linux-elf.h: Likewise.
2144         * cris/aout.h: Likewise.
2145         * cris/linux.h: Likewise.
2146         * i370/linux.h: Likewise.
2147         * i386/gnu.h: Likewise.
2148         * i386/linux-aout.h: Likewise.
2149         * i386/linux-oldld.h: Likewise.
2150         * i386/linux.h: Likewise.
2151         * i386/linux64.h: Likewise.
2152         * ia64/linux.h: Likewise.
2153         * m68k/linux-aout.h: Likewise.
2154         * m68k/linux.h: Likewise.
2155         * mips/linux.h: Likewise.
2156         * pa/pa-linux.h: Likewise.
2157         * pj/linux.h: Likewise.
2158         * rs6000/sysv4.h: Likewise.
2159         * s390/linux.h: Likewise.
2160         * sh/linux.h: Likewise.
2161         * sparc/linux-aout.h: Likewise.
2162         * sparc/linux.h: Likewise.
2163         * sparc/linux64.h: Likewise.
2164         * xtensa/linux.h: Likewise.
2165
2166 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
2167
2168         * stmt.c (check_unique_operand_names): Expect operand names to
2169         be strings rather than identifiers.  Use simple_cst_equal to
2170         compare them.
2171         (resolve_operand_name_1): Make same identifier to string change here.
2172         * c-parse.in (asm_operand): Convert a named operand into a string.
2173         * cp/parse.y (asm_operand): Likewise.
2174
2175 2002-04-13  Andreas Schwab  <schwab@suse.de>
2176
2177         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
2178
2179 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
2180
2181         Revert these changes:
2182
2183         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2184
2185         PR c++/5571
2186         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2187
2188 2002-04-12  Richard Henderson  <rth@redhat.com>
2189
2190         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
2191         (sparc*-*-solaris): Clean up header files.
2192         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
2193         and plan on generating 64-bit code.
2194         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
2195         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
2196         * config/sparc/sol2-sld-64.h: Rename ...
2197         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
2198         for AS_SPARC64_FLAG not defined.
2199         * config/sparc/sol2-gld-bi.h: New.
2200         * config/sparc/sol2-sld.h: Remove.
2201         * config/sparc/sol26-sld.h: New.
2202         * config/sparc/sol2.h: Tidy comments.
2203         * doc/install.texi: Document sparc-solaris configury changes.
2204
2205 2002-04-12  Richard Henderson  <rth@redhat.com>
2206
2207         * recog.c (offsettable_address_p): Match the logic in adjust_address.
2208
2209         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
2210         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
2211
2212 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2213
2214         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
2215
2216 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
2217
2218         * pa.c (pa_can_combine_p): Call extract_insn before calling
2219         constrain_operands.
2220
2221 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
2222
2223         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
2224         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
2225         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
2226         (CPP_PREDEFINES): Handle __declspec.
2227         * config/i386/t-interix (USER_H): Remove.
2228
2229 2002-04-12  DJ Delorie  <dj@redhat.com>
2230
2231         * integrate.c (compare_blocks): Make comparisons safe for when
2232         sizeof(int) < sizeof(char *).
2233         (find_block): Likewise.
2234
2235 2002-04-12  Jan Hubicka  <jh@suse.cz>
2236             David Edelsohn  <edelsohn@gnu.org>
2237
2238         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
2239         registers.
2240         (symbol_ref_operand): New.
2241         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
2242         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
2243
2244 2002-04-12  Andreas Schwab  <schwab@suse.de>
2245
2246         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
2247         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
2248         overrides the definition in config/svr4.h.
2249
2250 2002-04-12      Eric Norum <eric.norum@usask.ca>
2251
2252         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2253         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
2254         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
2255         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
2256         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
2257         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
2258         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
2259         definitions to config/rtems.h and make the targets more similar.
2260
2261 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2262
2263         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
2264         POINTERS_EXTEND_UNSIGNED.
2265         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
2266         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
2267
2268         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
2269         not specified.
2270
2271 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
2272
2273         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
2274         depends on TARGET_SHMEDIA, not TARGET_SH5.
2275
2276 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
2277
2278         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
2279         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
2280
2281 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2282
2283         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
2284         no r0 clobber.
2285
2286 2002-04-12  Andreas Schwab  <schwab@suse.de>
2287
2288         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
2289
2290 2002-04-12  Richard Henderson  <rth@redhat.com>
2291
2292         PR bootstrap/4191
2293         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
2294
2295         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
2296         modes spanning multiple hard regs.
2297
2298         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
2299
2300 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2301
2302         * pa.c (pa_output_function_prologue): Don't accumulate the total
2303         number of code bytes when using TARGET_64BIT, or gas, SOM and not
2304         the portable runtime.
2305         (output_deferred_plabels): Handle 64bit plabels.
2306         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
2307         generating pic code using the GAS assembler for object formats that
2308         are not SOM (ie., ELF32 and ELF64).
2309         (output_millicode_call): Check attribute type if attribute length is 28.
2310         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
2311         dbr_sequence_length once.
2312         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
2313         dbr_sequence_length once.
2314         * pa.h (TARGET_SOM): Define if not defined.
2315         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
2316         with GAS and not SOM.
2317         (jump, call_internal_reg, call_value_internal_reg): Likewise.
2318         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
2319
2320 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2321
2322         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
2323         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
2324         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
2325         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
2326         elfos.h and dbxelf.h values are fine now.
2327         * config/i386/freebsd.h, config/alpha/freebsd.h
2328         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
2329
2330 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2331
2332         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
2333         or set Acpu or Amachine.  Reformat.
2334         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2335         define.
2336         (LINK_SPEC): Do not need to undef.
2337         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
2338         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
2339         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2340         define.
2341         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
2342         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
2343         (LINK_SPEC): Do not need to undef.
2344         (DONT_USE_BUILTIN_SETJMP): Do not define.
2345         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
2346         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
2347         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
2348         Remove trailing spaces.
2349         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
2350         __ELF__, or set Acpu or Amachine.  Reformat.
2351         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2352         define.
2353
2354 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2355
2356         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
2357         all other *-*-freebsd* targets.
2358
2359 2002-04-11  Richard Henderson  <rth@redhat.com>
2360
2361         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
2362
2363 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2364
2365         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
2366         Include {cpu}/{cpu}.h thru tm_file.
2367         (alpha*-*-linux*ecoff): Remove target.
2368         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
2369         (LINK_SPEC): Remove, is not OS independent.
2370         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
2371         (LINK_SPEC): Do not need to #undef any longer.
2372         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
2373         any longer.
2374         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
2375         __ELF__.
2376         (LINK_SPEC): Moved here from alpha/elf.h.
2377         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
2378         SUB_CPP_PREDEFINES.
2379         * config/alpha/linux-ecoff.h: Remove.
2380         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
2381         (CPP_SPEC): Define _POSIX_SOURCE as needed.
2382         (CPP_SUBTARGET_SPEC): Do not define.
2383         (LINK_SPEC): Do not need to #undef any longer.
2384         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
2385         * config/alpha/vms.h: Likewise.
2386
2387 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
2388
2389         * doc/extend.texi: Remove old claim that typedefs cannot have
2390         an alignment attribute.
2391
2392 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2393
2394         PR optimization/6177
2395         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
2396         bitpos is 0 and bitsize CONCAT size.
2397
2398 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2399
2400         PR c/6223
2401         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
2402
2403 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
2404
2405         * config/alpha/freebsd.h: Minor reformatting.
2406         (CPP_SPEC): Define ELF and add cpp_subtarget.
2407         (ASM_SPEC): No longer needed.
2408
2409 2002-04-11  Richard Henderson  <rth@redhat.com>
2410
2411         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
2412         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
2413         (dimode mem/zero splitter): New.
2414
2415 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
2416
2417         * config/cris/cris.c (cris_override_options): Tweak error message
2418         for PIC not implemented.
2419
2420         * config/cris/cris.h: Tweak comments related to parameter-passing.
2421
2422         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
2423
2424 2002-04-10  Richard Henderson  <rth@redhat.com>
2425
2426         * except.c (add_ehl_entry): Allow duplicates after landing pad
2427         creation.
2428
2429 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
2430
2431         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
2432
2433 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
2434
2435         * c-decl.c (c_init_decl_processing): Move generation of
2436         decls for g77_integer_type_node and friends from here ...
2437         * c-common.c (c_common_nodes_and_builtins): ... to here.
2438
2439 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
2440
2441         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
2442         is only used as frame pointer when frame_pointer_needed is true.
2443
2444 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
2445
2446         PR target/817
2447         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
2448         for the fact that the pool entry uses two words.
2449         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
2450         1k bytes.
2451         (movdf_soft_insn): Similarly.
2452         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
2453         for the fact that the pool entry uses three words.
2454
2455 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
2456
2457         * config/mips/mips.c (mips_va_arg): When using the struct version
2458         of the EABI va_list, allow arguments in the register save area to
2459         take up less room than a stack argument.
2460
2461 2002-04-10  Richard Henderson  <rth@redhat.com>
2462
2463         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
2464         if EXPAND_INITIALIZER.
2465
2466 2002-04-09  Richard Henderson  <rth@redhat.com>
2467
2468         * config/alpha/alpha.md (movdi_er_maybe_g): New.
2469         * config/alpha/alpha.c (alpha_expand_mov): Use it.
2470
2471 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
2472
2473         PR optimization/6233
2474         * rtlanal.c (pure_call_p): New function.
2475         * rtl.h (pure_call_p): Declare.
2476         * loop.c (prescan_loop): Use it to set has_nonconst_call.
2477         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
2478
2479 2002-04-09  Eric Christopher  <echristo@redhat.com>
2480
2481         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
2482         information to .comm directive.
2483
2484 2002-04-09  Richard Henderson  <rth@redhat.com>
2485
2486         PR c/5078
2487         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
2488
2489 2002-04-09  Richard Henderson  <rth@redhat.com>
2490
2491         * basic-block.h (flow_delete_block_noexpunge): Declare.
2492         (expunge_block_nocompact): Declare.
2493         * cfg.c (expunge_block_nocompact): Split out from ...
2494         (expunge_block): ... here.
2495         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
2496         (flow_delete_block_noexpunge): Split out from ...
2497         (flow_delete_block): ... here.
2498         * cfgcleanup.c (delete_unreachable_blocks): Compact while
2499         removing dead blocks.
2500         * except.c (exception_handler_labels): Remove.
2501         (exception_handler_label_map): New.
2502         (struct eh_region): Add aka member.
2503         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
2504         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
2505         (for_each_eh_label, for_each_eh_label_1): New.
2506         (init_eh): Register exception_handler_label_map.
2507         (free_eh_status): Use free_region.
2508         (find_exception_handler_labels): Use the map, not the list.
2509         (remove_exception_handler_label): Likewise.
2510         (maybe_remove_eh_handler): Likewise.
2511         (remove_eh_handler): Use the region aka bitmap.
2512         * except.h (exception_handler_labels): Remove.
2513         (for_each_eh_label): Declare.
2514         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
2515         * loop.c (invalidate_loops_containing_label): New.
2516         (find_and_verify_loops): Use it.  Use for_each_eh_label.
2517         * sched-rgn.c (is_cfg_nonregular): Use
2518         current_function_has_exception_handlers.
2519
2520 2002-04-09  Richard Henderson  <rth@redhat.com>
2521
2522         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
2523         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
2524         Do not return changed status.
2525         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
2526         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
2527         New functions that do return changed status.
2528         * sbitmap.h: Update decls.
2529         * gcse.c, lcm.c: Use _cg functions as needed.
2530
2531 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2532
2533         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
2534         (sh64-*-elf*, sh-*-rtemself*): Likewise.
2535         * config/sh/embed_bb.c: New file.
2536         * config/sh/embed-elf.h: New file.
2537         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
2538         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
2539         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2540         __PTRDIFF_TYPE__ .
2541         (SUBTARGET_CPP_PTR_SPEC): Don't define.
2542         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
2543         Add subtarget_asm_endian_spec.
2544         (ASM_SPEC): Use subtarget_asm_endian_spec.
2545         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
2546         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
2547         (WCHAR_UNSIGNED): Define.
2548         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
2549         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2550         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
2551         Fix value.
2552         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
2553         (sh_adjust_cost): Likewise.
2554         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2555         __PTRDIFF_TYPE__ .
2556         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
2557         (WCHAR_TYPE_SIZE): Likewise.
2558         (ASM_SPEC): Use subtarget_asm_endian_spec.
2559         (SH_ELF_WCHAR_TYPE): #undef/ #define.
2560         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
2561         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
2562         (MAX_WCHAR_TYPE_SIZE): Don't #define .
2563         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
2564         (USER_LABEL_PREFIX): Don't #undef /#define .
2565         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2566         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
2567         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
2568         (ASM_SPEC): Likewise.
2569         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
2570         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
2571         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
2572         (LIB2FUNCS_EXTRA): Define.
2573         * t-sh64 (LIB2FUNCS_EXTRA): Define.
2574         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
2575         (LIB1ASMFUNCS_CACHE): Define.
2576         (LIB2FUNCS_EXTRA): Redefine empty.
2577
2578 2002-04-08  Richard Henderson  <rth@redhat.com>
2579
2580         * reorg.c (get_branch_condition): Use reversed_comparison_code.
2581
2582 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2583
2584         * config/m68hc11/larith.asm (__map_data_section): Fix condition
2585         and optimize for size.
2586         (__do_global_ctors): Fix pointer comparison.
2587         (__do_global_dtors): Likewise.
2588
2589 2002-04-09  David S. Miller  <davem@redhat.com>
2590
2591         * config/sparc/sparc.c (sparc_extra_constraint_check): New
2592         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
2593         allow reloading pseudos.
2594         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
2595         * config/sparc/sparc-protos.h: Declare it.
2596
2597         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
2598         unsigned comparison warning.
2599         (output_restore_regs): Mark leaf_function as unused.
2600
2601 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2602
2603         * expr.c (is_aligning_offset): New function.
2604         (expand_expr, case COMPONENT_EXPR): Call it.
2605
2606 2002-04-08  David S. Miller  <davem@redhat.com>
2607
2608         PR target/6082
2609         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
2610
2611         Make init_priority work on Sparc when using GNU ld.
2612         * config/sparc/linux.h, config/sparc/linux64.h,
2613         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
2614         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
2615         * config/sparc/sol2-gld.h: New file to do the same.
2616         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
2617         sparc/sol2-gld.h to tm_file.
2618
2619         PR optimization/4328
2620         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
2621         * doc/md.texi: Document it.
2622         * config/sparc/sparc.md (movdi_insn_sp64_novis,
2623         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
2624         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
2625         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
2626         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
2627
2628 2002-04-08  Andreas Jaeger  <aj@suse.de>
2629
2630         * stmt.c (expand_asm_operands): Revert last patch from Richard
2631         Henderson.
2632
2633 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2634
2635         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
2636         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
2637
2638 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2639
2640         * doc/contrib.texi (Contributors): Add David O'Brien.
2641
2642 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
2643
2644         * configure.in (auto-build.h): Use target_alias and build_alias
2645         when running configure.
2646         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
2647         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
2648         * configure: Regenerate.
2649
2650 2002-04-07  David S. Miller  <davem@redhat.com>
2651
2652         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
2653
2654 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2655
2656         PR 5933
2657         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
2658         generating 32-bit pic code.
2659
2660 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2661
2662         * cppinit.c (cpp_create_reader): Initialize
2663         discard_comments_in_macro_exp.
2664         (COMMAND_LINE_OPTIONS): Add "-CC" option.
2665         (cpp_handle_option): Handle "-CC" option.
2666         * cpplex.c (save_comment): If saving a C++ comment in
2667         a directive, convert it to a C comment.
2668         (_cpp_lex_direct): Pass second comment start character to
2669         save_comment to indicate comment type.
2670         * cpplib.c (_cpp_handle_directive): If processing
2671         a "#define" directive and discard_comments_in_macro_exp
2672         is false,  re-enable saving of comments.
2673         (lex_macro_node): If discard_comments_in_macro_exp is false,
2674         discard any comments before the macro identifier.
2675         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
2676         member.
2677         * cppmacro.c (cpp_get_token): If expanding a macro while
2678         processing a directive, discard any comments we might encounter.
2679         (parse_params): If discard_comments_in_macro_exp is false,
2680         ignore comments in the macro parameter list.
2681         * gcc.c (cpp_unique_options): Add "-CC" option.
2682         (option_map): Map "--comments-in-macros" to "-CC".
2683         * doc/cppopts.texi: Document "-CC" option.
2684         * f/lang-specs.h: Add "-CC" option.
2685         * testsuite/gcc.dg/cpp/maccom1.c: New test.
2686         * testsuite/gcc.dg/cpp/maccom2.c: New test.
2687         * testsuite/gcc.dg/cpp/maccom3.c: New test.
2688         * testsuite/gcc.dg/cpp/maccom4.c: New test.
2689         * testsuite/gcc.dg/cpp/maccom5.c: New test.
2690         * testsuite/gcc.dg/cpp/maccom6.c: New test.
2691
2692 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2693
2694         PR middle-end/6180
2695         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
2696
2697 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2698
2699         PR c++/5571
2700         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2701
2702         PR opt/5120
2703         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
2704         RTX_UNCHANGING_P for the functions arguments when a tail call
2705         is made.
2706
2707 2002-04-06  Jason Merrill  <jason@redhat.com>
2708
2709         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
2710         (parse_options_and_default_flags): Set them appropriately.
2711         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
2712
2713 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
2714
2715         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
2716         here.
2717
2718         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
2719         semicolon.
2720
2721         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
2722         types come in by-reference.  Fix typo in comment.
2723
2724 2002-04-05  David S. Miller  <davem@redhat.com>
2725
2726         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
2727         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
2728         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
2729         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
2730
2731 2002-04-05  David S. Miller  <davem@redhat.com>
2732
2733         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
2734         are not going to emit return instructions, emit at least a nop
2735         for the sake of sane backtraces.
2736
2737 2002-04-05  Richard Henderson  <rth@redhat.com>
2738
2739         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
2740
2741 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
2742
2743         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
2744
2745 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
2746
2747         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
2748         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
2749         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
2750
2751 2002-04-05  Andreas Schwab  <schwab@suse.de>
2752
2753         * c-convert.c: Include c-common.h.
2754         * Makefile.in (c-convert.o): Updated.
2755
2756 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2757
2758         * mklibgcc.in: Use separate libgcc.map for each multilib.
2759         * Makefile.in (distclean): Don't remove libgcc.map here.
2760
2761 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2762
2763         * Makefile.in (s-mlib): Handle --disable-multilib by separate
2764         genmultilib invocation.
2765
2766 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
2767
2768         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
2769         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
2770         to num_gprs for symmetry.
2771         * config/mips/mips.c: Adjust accordingly.
2772
2773 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2774
2775         * c-common.c (truthvalue_conversion): Rename, update.
2776         * c-common.h (c_common_truthvalue_conversion): New.
2777         * c-convert.c (convert): Update.
2778         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2779         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
2780         * c-typeck.c (build_binary_op, build_unary_op,
2781         build_conditional_expr): Update.
2782         * fold-const.c (constant_boolean_node, fold): Use langhook.
2783         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
2784         * langhooks.h (struct lang_hooks): New hook.
2785         * stmt.c (expand_decl_cleanup): Use langhook.
2786         * tree.h (truthvalue_conversion): Remove.
2787 objc:
2788         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2789
2790 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
2791
2792         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
2793         Add rules to make null object file.
2794
2795 2002-04-04  Jim Blandy  <jimb@redhat.com>
2796
2797         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
2798         macro formal parameter names.
2799
2800 2002-04-04  David S. Miller  <davem@redhat.com>
2801
2802         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
2803
2804 2002-04-04  Richard Henderson  <rth@redhat.com>
2805
2806         PR middle-end/5099
2807         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
2808         Support copies into and out of memory.  Don't accept allows_reg
2809         and allows_mem as gospel.
2810
2811 2002-04-04  Richard Henderson  <rth@redhat.com>
2812
2813         PR opt/6165
2814         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
2815         (write_dependence_p): Likewise.
2816
2817 2002-04-04  Richard Henderson  <rth@redhat.com>
2818
2819         * predict.c (estimate_bb_frequencies): Do frequency calculation
2820         with a volatile temporary.
2821
2822 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
2823
2824         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
2825
2826 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2827
2828         PR c++/6119
2829         * final.c (final_start_function): Don't bump profile_label_no here...
2830         (final_end_function): ...but here.
2831
2832 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2833
2834         * config/sparc/sparc.md (pic): New attribute.
2835         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
2836         into stack slots.
2837         (split after do_builtin_setjmp_setup): New.
2838
2839 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2840
2841         PR fortran/6106
2842         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
2843         change.
2844
2845 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2846
2847         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
2848         UNITS_PER_WORD for zero sized aggregates.
2849
2850 2002-04-03  David S. Miller  <davem@redhat.com>
2851
2852         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
2853         one-character spec for this, just use %(link_gcc_c_sequence).
2854
2855 2002-04-03  David S. Miller  <davem@redhat.com>
2856
2857         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
2858         handling.
2859
2860 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2861
2862         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
2863         (DWARF_FRAME_RETURN_COLUMN): Move.
2864         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2865         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
2866         * pa.c (except.h, predict.h): Include.
2867         (FRP): Delete.
2868         (store_reg_modify, set_reg_plus_d): Revise prototypes.
2869         (output_ascii): Add cast.
2870         (store_reg_modify): Revise to add frame notes.
2871         (set_reg_plus_d): Likewise.
2872         (compute_frame_size): Include space for eh data registers in frame if
2873         the current function calls eh_return.
2874         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
2875         function calls eh_return.  Save eh data registers if the current
2876         function calls eh_return.  Fix code to add frame notes.  Emit
2877         blockage to prevent insns with frame notes being scheduled in the
2878         delay slot of calls.
2879         (hppa_expand_epilogue): Restore eh data registers and do final stack
2880         adjustment if the current function calls eh_return.  Don't add frame
2881         notes.
2882         (output_call): Revise for change in length of call insn.  Don't do
2883         return pointer adjustment for an unconditional jump in the delay slot
2884         of a call when using frame notes.
2885         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
2886         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
2887         (ARG_POINTER_CFA_OFFSET): Define.
2888         * pa.md (return_external_pic): New pattern.
2889         (prologue): Correct formatting.  Use return_external_pic if current
2890         function calls eh_return.
2891         (call_internal_symref, call_value_internal_symref,
2892         sibcall_internal_symref, sibcall_value_internal_symref): Change default
2893         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
2894         respectively.
2895         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
2896
2897         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
2898         list of targets to check using "nop" insn.
2899         * configure: Rebuilt.
2900
2901 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
2902
2903         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
2904
2905 2002-04-03  David S. Miller  <davem@redhat.com>
2906
2907         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
2908         library sequence passed to the linker.
2909         (LINK_COMMAND_SPEC): Use it.
2910         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
2911         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
2912         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2913
2914 2002-04-03  Jason Merrill  <jason@redhat.com>
2915
2916         * except.c (struct eh_status): Remove protect_list.
2917         (begin_protect_partials, end_protect_partials): Remove.
2918         (add_partial_entry): Remove.
2919         * except.h: Remove prototypes.
2920
2921         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
2922         expand_decl_cleanup_eh.
2923
2924         PR c++/5636
2925         * tree.h (CLEANUP_EH_ONLY): New macro.
2926         * stmt.c (expand_decl_cleanup_eh): New fn.
2927         (expand_cleanups): Check CLEANUP_EH_ONLY.
2928         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
2929         Use expand_decl_cleanup_eh.
2930         (expand_stmt): Adjust.
2931         * c-common.h: Adjust prototype.
2932
2933 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
2934
2935         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
2936         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
2937         (cris_target_asm_function_epilogue): Ditto.
2938         (cris_initial_frame_pointer_offset): Ditto.
2939         (cris_simple_epilogue): Ditto.
2940         (cris_expand_builtin_va_arg): Variable-size types come in
2941         by-reference.
2942
2943 2002-04-03  David S. Miller  <davem@redhat.com>
2944
2945         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
2946         little-endian.
2947         (set_fast_math): Correct 'fsr' type.
2948
2949 2002-04-03  Richard Henderson  <rth@redhat.com>
2950
2951         PR opt/3569
2952         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
2953         * toplev.c (check_global_declarations): Use it.
2954         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
2955         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2956         (LANG_HOOKS_DECLS): Add it.
2957         * langhooks.c (lhd_warn_unused_global_decl): New.
2958         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2959         * c-objc-common.c (c_warn_unused_global_decl): New.
2960         * c-tree.h (c_warn_unused_global_decl): Declare.
2961         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2962
2963 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2964
2965         * langhooks-def.h (lhd_set_decl_assembler_name,
2966         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2967         (LANG_HOOKS_INITIALIZER): Update.
2968         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
2969         * langhooks.h (struct lang_hooks): New hook.
2970         * tree.c (set_decl_assembler_name): Move to langhooks.c.
2971         (lang_set_decl_assembler_name): Remove.
2972         (init_obstacks): Don't set hook.
2973         (decl_assembler_name): New function.
2974         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
2975         (decl_assembler_name): New.
2976         (lang_set_decl_assembler_name): Remove.
2977
2978 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
2979
2980         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
2981         works properly with .hidden symbols.
2982         * configure: Rebuilt.
2983         * config.in: Rebuilt.
2984         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2985         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
2986         properly with .hidden symbols.
2987
2988 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
2989
2990         PR middle-end/6102
2991         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
2992         USE argument.
2993
2994 2002-04-03  Richard Henderson  <rth@redhat.com>
2995
2996         PR opt/4120
2997         * sched-rgn.c (sets_likely_spilled): New.
2998         (sets_likely_spilled_1): New.
2999         (add_branch_dependences): Use it.
3000
3001 2002-04-02  Richard Henderson  <rth@redhat.com>
3002
3003         PR opt/4311
3004         * loop.h (LOOP_FIRST_PASS): New.
3005         * loop.c (strength_reduce): Mind it when deciding to unroll.
3006         * toplev.c (rest_of_compilation): Set it.
3007
3008 2002-04-02  David S. Miller  <davem@redhat.com>
3009
3010         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
3011         mems_ok_for_ldd_peep when the order of the loads being examined
3012         is reversed.
3013         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
3014         existing comment to increase comprehension of this situation.
3015
3016 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
3017
3018         * config/sh/sh.md: Don't use union real_extract.
3019
3020 2002-04-02  Richard Henderson  <rth@redhat.com>
3021
3022         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
3023
3024 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3025
3026         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
3027         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
3028         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
3029         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
3030         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
3031         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
3032         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
3033         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
3034         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
3035         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
3036         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
3037         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
3038         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
3039         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
3040         Include as many configury headers via tm_file as possible.  This
3041         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
3042         * config/openbsd-oldgas.h: New file.
3043         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
3044         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
3045         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
3046         config/i386/i386-coff.h, config/i386/i386-interix.h,
3047         config/i386/iscdbx.h, config/i386/linux-aout.h,
3048         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
3049         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
3050         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
3051         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
3052         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
3053         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
3054         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
3055         config/i386/vxi386.h: Do not directly include configury headers.
3056         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
3057         Directly include configury headers that are no longer automatically
3058         included by the above headers.
3059         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
3060         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
3061         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
3062         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
3063         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
3064         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
3065         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
3066         (TARGET_VERSION): Define.
3067         * config/i386/beos-elf.h, config/i386/freebsd.h,
3068         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
3069         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
3070         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
3071         config/i386/sco5.h, config/i386/sysv4.h
3072         (TARGET_VERSION): Do not need to protect.
3073         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
3074         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
3075         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
3076         config/i386/i386-interix.h, config/i386/linux-aout.h,
3077         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
3078         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
3079         (YES_UNDERSCORES): Do not define - not needed.
3080         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
3081         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3082         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
3083         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
3084         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3085         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
3086         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
3087         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
3088
3089 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
3090             Richard Henderson  <rth@redhat.com>
3091
3092         PR c/5484
3093         * function.c (assign_temp): Accept either type or decl argument.
3094         Detect variables whose size is too large to fit into an integer.
3095         * stmt.c (expand_decl): Pass the decl, not the type.
3096
3097 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3098
3099         * protoize.c: Match include directory usage with cppdefault.c.
3100
3101 2002-04-03  Jeffrey A Law  (law@redhat.com)
3102             Hans-Peter Nilsson  <hp@bitrange.com>
3103
3104         * combine.c (simplify_comparison): Avoid narrowing a comparison
3105         with a paradoxical subreg when doing so would drop signficant bits.
3106
3107 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
3108
3109         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
3110         if POINTERS_EXTEND_UNSIGNED is defined.
3111
3112 2002-04-02  Richard Henderson  <rth@redhat.com>
3113
3114         PR opt/3967
3115         * local-alloc.c (contains_replace_regs): LO_SUM may contain
3116         replace regs.
3117
3118 2002-04-02  Richard Henderson  <rth@redhat.com>
3119
3120         * doc/standards.texi: Document required freestanding libc entry points.
3121
3122 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
3123
3124         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
3125         associated splitter.  Remove MQ constraint.
3126         (ctrdi_internal4): Correct CCmode clobber.
3127
3128 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3129
3130         * milli64.S ($$dyncall): New function.
3131         * t-linux (LIB1ASMFUNCS): Revise module list.
3132         (LIB1ASMSRC): Use pa/milli64.S.
3133
3134 2002-04-02  Richard Henderson  <rth@redhat.com>
3135
3136         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
3137         rename solaris_sys_varargs_h.
3138
3139 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3140
3141         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
3142         the same mode as its component.
3143
3144 2002-04-02  Richard Henderson  <rth@redhat.com>
3145
3146         PR opt/190
3147         * final.c (this_is_asm_operands): Export.
3148         * output.h (this_is_asm_operands): Declare.
3149         * config/i386/i386.c (print_operand): Error odd asm operands.
3150
3151 2002-04-02  Richard Henderson  <rth@redhat.com>
3152
3153         PR opt/420
3154         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
3155
3156 2002-04-01  Richard Henderson  <rth@redhat.com>
3157
3158         PR target/1538
3159         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
3160         * fixinc/fixincl.x: Rebuild.
3161
3162 2002-04-01  Richard Henderson  <rth@redhat.com>
3163
3164         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
3165         (atomic_alloc, atomic_free): New.
3166         (SIZE, MASK_FOR, PTR_IN): New.
3167         (emergency_reg_state, emergency_reg_state_free): New.
3168         (emergency_labeled_state, emergency_labeled_state_free): New.
3169         (reg_state_alloced, labeled_state_alloced): New.
3170         (alloc_reg_state, free_reg_state): New.
3171         (alloc_label_state, free_label_state, free_label_states): New.
3172         (push, pop, dup_state_stack, free_state_stack): Use them.
3173         (desc_label_state): Likewise.
3174         (uw_frame_state_for): Free label states and state stack.
3175         (uw_update_reg_address): Eliminate warnings.
3176
3177 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
3178
3179         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
3180         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
3181
3182 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3183
3184         * c-decl.c (grokdeclarator): Update.
3185         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3186         * c-tree.h (c_mark_addressable): New.
3187         * c-typeck.c (default_function_array_conversion, build_unary_op,
3188         build_array_ref, convert_for_assignment): Update.
3189         (mark_addressable): Rename.
3190         * calls.c (try_to_integrate, expand_call): Use langhook.
3191         * expr.c (expand_expr): Use langhook.
3192         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
3193         * langhooks.h (struct lang_hooks): New hook.
3194         * stmt.c (expand_asm_operands): Use langhook.
3195         * tree.h (mark_addressable): Remove.
3196 objc:
3197         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3198
3199 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3200
3201         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
3202         in previous change.
3203
3204 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3205
3206         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
3207         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
3208
3209 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3210
3211         * c-common.c (unsigned_conversion_warning, convert_and_check,
3212         unsigned_type, signed_type, shorten_compare,
3213         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
3214         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
3215         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
3216         New.
3217         * c-decl.c (grokdeclarator): Update.
3218         * c-format.c (check_format_types): Update.
3219         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3220         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3221         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
3222         * convert.c (convert_to_integer): Use new hooks.
3223         * expmed.c (make_tree): Use new hooks.
3224         * expr.c (store_expr): Use new hooks.
3225         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
3226         all_ones_mask_p, unextend, fold): Use new hooks.
3227         * langhooks.h (struct lang_hooks_for_types): New hooks.
3228         * tree.h (signed_or_unsigned_type, signed_type,
3229         unsigned_type): Remove.
3230 objc:
3231         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3232         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3233
3234 2002-03-31  Richard Henderson  <rth@redhat.com>
3235
3236         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
3237         (desc_frgr_mem): Fix reference to f16-f31.
3238
3239 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3240
3241         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3242         RTVEC_ELT): Const-ify.
3243         * varray.h (VARRAY_CHECK): Const-ify.
3244         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
3245         ggc_mark_rtvec, ggc_mark): Const-ify.
3246
3247 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3248
3249         * diagnostic.c: Include langhooks-def.h.
3250         * Makefile.in (diagnostic.o): Update.
3251
3252 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3253
3254         * c-common.c (c_unsafe_for_reeval): Rename.
3255         * c-common.h (c_unsafe_for_reeval): Rename.
3256         * c-decl.c (finish_incomplete_decl): Rename.
3257         (c_init_decl_processing): Don't set langhook.
3258         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3259         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3260         * c-objc-common.c (c_objc_common_init): Don't set langhook.
3261         * c-tree.h (finish_incomplete_decl): Rename.
3262         * langhooks-def.h (lhd_unsafe_for_reeval): New.
3263         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
3264         (LANG_HOOKS_INITIALIZER): Update.
3265         * langhooks.c (lhd_unsafe_For_reeval): New.
3266         * langhooks.h (struct langhooks): New hooks.
3267         * toplev.c (incomplete_decl_finalize_hook): Remove.
3268         (wrapup_global_declarations): Update.
3269         * tree.c (lang_unsafe_for_reeval): Remove.
3270         (unsafe_for_reeval): Update.
3271         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
3272         Remove.
3273 objc:
3274         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3275         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3276
3277 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3278
3279         * diagnostic.c (print_error_function): Remove.
3280         (default_print_error_function): Rename.
3281         (report_error_function): Update.
3282         * diagnostic.h (print_error_function): Remove.
3283         (default_print_error_function): Remove.
3284         * langhooks-def.h (struct diagnostic_context): Predeclare.
3285         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
3286         (LANG_HOOKS_INITIALIZER): Update.
3287         * langhooks.h (struct diagnostic context): Predeclare.
3288         (struct lang_hooks): New hook.
3289
3290 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3291
3292         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
3293         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
3294         !flag_pic.
3295         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
3296         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
3297         of PIC_OFFSET_TABLE_REGNUM thruout.
3298         * config/rs6000/rs6000.md: Likewise.
3299         * config/rs6000/darwin.h: Likewise.
3300
3301 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3302
3303         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
3304         unsigned HOST_WIDE_INT, not unsigned int.
3305
3306 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3307
3308         PR middle-end/6096, middle-end/6098, middle-end/6099
3309         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
3310         CODE_LABELs.
3311         (fill_slots_from_thread): Likewise.
3312
3313 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3314
3315         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
3316         floating fields in float regs.
3317         (function_arg_record_value_2): Likewise.
3318
3319 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3320
3321         * config/mmix/mmix.md (define_constants): Remove misleading
3322         FIXME.  Add MMIX_fp_rO_OFFSET.
3323         ("nonlocal_goto_receiver"): Don't have stack-frame address of
3324         saved rO as part of the pattern.  Remove FIXME.
3325         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
3326         here, at output-time.
3327
3328 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3329
3330         PR middle-end/6100
3331         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
3332         REG_BR_PRED.
3333         (output_v9branch): Likewise.
3334
3335 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3336
3337         * gcc.c: Revert previous patch for now.
3338         * config/i386/djgpp.h: Likewise.
3339
3340 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3341
3342         * config/mmix/crti.asm (_init): Register _fini with atexit.
3343         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
3344
3345 2002-03-31  Richard Henderson  <rth@redhat.com>
3346
3347         PR target/3997
3348         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
3349         (ASM_OUTPUT_DEF_FROM_DECLS): New.
3350
3351 2002-03-31  Richard Henderson  <rth@redhat.com>
3352
3353         * libgcc2.c (__bb_exit_func): Make static.
3354
3355         * config/alpha/alpha.md (trap): New.
3356
3357 2002-03-31  Richard Henderson  <rth@redhat.com>
3358
3359         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
3360         promoted argument types; build trap.
3361         (expand_builtin_trap): New.
3362         (expand_builtin): Use it.
3363         * stmt.c (expand_nl_goto_receivers): Likewise.
3364         * expr.h (expand_builtin_trap): Declare.
3365         * libfuncs.h (LTI_abort, abort_libfunc): New.
3366         * optabs.c (init_optabs): Init abort_libfunc.
3367
3368 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3369
3370         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
3371         (LINK_COMMAND_SPEC): ... from here.
3372         (init_gcc_specs): Duplicate it here too, omitting
3373         shared_name in the second copy.
3374         (init_spec): Test for duplicate
3375         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
3376
3377 2002-03-30  David S. Miller  <davem@redhat.com>
3378
3379         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3380         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
3381
3382 2002-03-30  Roger Sayle <roger@eyesopen.com>
3383             Richard Henderson  <rth@redhat.com>
3384
3385         * regmove.c (combine_stack_adjustments_for_block): Avoid
3386         emitting a stack adjustment of zero bytes.  Let delete_insn
3387         update bb->head.
3388
3389 2002-03-30  Richard Henderson  <rth@redhat.com>
3390
3391         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
3392         (sparc_emitting_epilogue): New.
3393         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
3394         * config/sparc/sparc-protos.h: Update.
3395         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
3396         (TARGET_SWITCHES): Update.
3397         * config/sparc/sparc.md (return): Remove.
3398         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
3399         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
3400         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
3401         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
3402         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
3403         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
3404         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
3405         Remove MASK_EPILOGUE.
3406         * doc/invoke.texi: Update.
3407
3408 2002-03-30  Daniel Berlin  <dan@dberlin.org>
3409
3410         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
3411         CPP will start the file for us.
3412
3413 2002-03-30  Richard Henderson  <rth@redhat.com>
3414
3415         PR target/5446
3416         * config/ia64/ia64.c (group_barrier_needed_p): Special case
3417         prologue_allocate_stack.
3418         (ia64_single_set): Use insn codes for recognition of special
3419         cases, not rtl matching.
3420         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
3421
3422 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
3423
3424         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
3425
3426 2002-03-30  Richard Henderson  <rth@redhat.com>
3427
3428         PR target/6032
3429         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
3430         or -fomit-frame-pointer with profiling.
3431         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3432         (FUNCTION_PROFILER): Do nothing.
3433         (PROFILE_HOOK): New.
3434         * config/sparc/sparc.c (sparc_override_options): Don't check
3435         code models for profiling.
3436         (sparc_function_profiler): Remove.
3437         (sparc_profile_hook): New.
3438         * config/sparc/sparc-protos.h: Update.
3439
3440 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
3441
3442         PR optimization/6086
3443         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
3444         of SUBREG of volatile MEM or because the MEM was mode dependent,
3445         return CLOBBER instead of unmodified SUBREG.
3446
3447 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
3448
3449         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
3450         when not optimizing.
3451
3452         * toplev.c (rest_of_compilation): Cann mark_constant_function
3453         only when optimizing.
3454
3455         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
3456         are NULL.
3457
3458         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
3459         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
3460         (try_optimize_cfg): clear all AUX fields.
3461
3462         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
3463         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
3464         (ix86_address_cost): Be prepared for SUBREGed registers.
3465         (legitimate_address_p): Accept SUBREGed registers.
3466
3467 2002-03-29  Richard Henderson  <rth@redhat.com>
3468
3469         PR target/5672
3470         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
3471
3472 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3473
3474         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
3475         for aggregate and TFmode types.
3476
3477 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3478
3479         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
3480
3481 2002-03-29  Richard Henderson  <rth@redhat.com>
3482
3483         PR target/5886
3484         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
3485         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
3486
3487 2002-03-29  Richard Henderson  <rth@redhat.com>
3488
3489         PR target/6041
3490         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
3491         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
3492         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
3493         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
3494         conditional.
3495         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
3496
3497 2002-03-29  Dale Johannesen <dalej@apple.com>
3498
3499         * loop.c (combine_movables): Do allow combination of pseudos.
3500
3501 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
3502
3503         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
3504         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
3505         No functional change except ...
3506         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
3507         * doc/install.texi (*-*-freebsd*): Document port configuration.
3508
3509 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3510
3511         * Makefile.in (convert.o, calls.o, expmed.o): Update.
3512         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
3513         Use new hooks.
3514         * builtin-types.def (BT_PTRMODE): Update.
3515         * c-common.c (type_for_size): Rename c_common_type_for_size.
3516         (type_for_mode): Similarly.
3517         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
3518         Use new hook.
3519         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
3520         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
3521         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
3522         Redefine.
3523         * c-typeck.c (common_type, comptypes, default_conversion):
3524         Use new hooks.
3525         * calls.c: Include langhooks.h.
3526         (emit_library_call_value_1): Use new hooks.  Avoid redundant
3527         calls.
3528         * convert.c: Include langhooks.h
3529         (convert_to_pointer, convert_to_integer): Use new hooks.
3530         * except.c (init_eh): Similarly.
3531         * expmed.c: Include langhooks.h.
3532         (expand_mult_add): Use new hooks.
3533         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
3534         try_casesi): Similarly.
3535         * fold-const.c (optimize_bit_field_compare, make_range,
3536         decode_field_reference, fold_truthop, fold): Similarly.
3537         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
3538         put_var_into_stack): Similarly.
3539         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
3540         LANG_HOOKS_TYPE_FOR_SIZE): New.
3541         (LANG_HOOKS_TYPES_INITIALIZER): Update.
3542         * langhooks.h (lang_hooks_for_types): New hooks.
3543         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
3544         * tree.c (get_unwidened, get_narrower): Similarly.
3545         * tree.h (type_for_mode, type_for_size): Remove.
3546         * varasm.c (force_const_mem): Use new hooks.
3547         * utils2.c (nonbinary_modular_operation): Update.
3548 objc:
3549         * objc-act.c (handle_impent): Update.
3550         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
3551         Redefine.
3552
3553 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
3554
3555         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
3556         * config/ia64/ia64.c (basereg_operand): New.
3557         * config/ia64/ia64-protos.h (basereg_operand): Declare.
3558         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
3559
3560 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3561
3562         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
3563         unwind information when frame_pointer_needed.
3564         (mmix_assemble_integer): Tweak wording in comment.
3565
3566 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3567
3568         * Makefile.in (except.o): Update.
3569         * except.c: Include langhooks.h.
3570         (init_eh): Use langhook.
3571         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
3572         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
3573         (LANG_HOOKS_INITIALIZER): Update.
3574         * langhooks.h (lang_hooks_for_types): New.
3575         (struct lang_hooks): Add it.
3576         * tree.c (make_lang_type_fn, make_lang_type): Remove.
3577         * tree.h (make_lang_type_fn, make_lang_type): Remove.
3578 config:
3579         * alpha/alpha.c: Include langhooks.h.
3580         (alpha_build_va_list): Use langhook.
3581         * d30v/d30v.c: Include langhooks.h.
3582         (d30v_build_va_list): Use langhook.
3583         * i386/i386.c: Include langhooks.h.
3584         (ix86_build_va_list): Use langhook.
3585         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
3586         * s390/s390.c: Include langhooks.h.
3587         (s390_build_va_list): Use langhook.
3588         * stormy16/stormy16.c: Include langhooks.h.
3589         (stormy16_build_va_list): Use langhook.
3590
3591 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3592
3593         PR c++/5964
3594         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
3595         attributes.
3596         (length): Compute variable length for branches/calls/jumps here.
3597         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
3598         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
3599         define branch_type attribute.
3600         (divsi3_sp32): Maximum length is 6 not 7.
3601         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
3602         call_address_untyped_struct_value_sp32,
3603         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
3604         * config/sparc/sparc.c (empty_delay_slot): New function.
3605         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
3606         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
3607
3608 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3609
3610         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
3611         nonzero_bits if not needed.
3612         (nonzero_bits) [XOR]: Likewise.
3613         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
3614         reg_last_set_mode and mode are both MODE_INT, but not equal.
3615         (record_value_for_reg): Compute reg_last_set_nonzero_bits
3616         in nonzero_bits_mode for MODE_INT modes.
3617
3618 2002-03-28  Richard Henderson  <rth@redhat.com>
3619
3620         PR target/5715
3621         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
3622         to GAS.  Correct drift between alternatives.
3623
3624 2002-03-28  Richard Henderson  <rth@redhat.com>
3625
3626         PR target/6087
3627         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
3628
3629 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
3630
3631         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
3632         emulation to the linker.
3633
3634 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
3635
3636         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
3637         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
3638
3639 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
3640
3641         * combine.c (simplify_and_const_int): Make sure to apply mask
3642         when force_to_mode returns a constant integer.  PR3311.
3643
3644 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3645
3646         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
3647
3648 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3649
3650         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
3651         and Objective-C Dialect Options.
3652
3653 2002-03-28  Richard Henderson  <rth@redhat.com>
3654
3655         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
3656         comparison should be done vs !=0 not >0 return code.  Tidy cases.
3657
3658 2002-03-28  Richard Henderson  <rth@redhat.com>
3659
3660         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
3661         on to c_expand_body.
3662         * c-tree.h (finish_function): Update decl.
3663         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
3664
3665 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
3666
3667         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
3668
3669 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
3670
3671         * rtlanal.c: Include flags.h
3672         (may_trap_p): Do not mark FP operations if trapping
3673         if !flag_trapping_math
3674         * Makefile.in (rtlanal.o): Add dependency on flag.h
3675         * ifcvt.c (noce_operand_ok): Avoid the lameness.
3676
3677 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
3678
3679         * mips.md: Use dconst1, not 1.0, as first argument of
3680         REAL_VALUE_LDEXP.  Don't use union real_extract.
3681
3682 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
3683
3684         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
3685         rather than $target.  Heed program_prefix and
3686         program_transform_name.  Search for gas in cross-compiler case too.
3687         "test -x" rather than "test -f".
3688         (gcc_cv_ld): Likewise.
3689         (gcc_cv_nm): Heed program_prefix and program_transform_name.
3690         (gcc_cv_objdump): Likewise.
3691         * configure: Regenerate.
3692
3693 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3694
3695         * Makefile.in (attribs.o): Update.
3696         * attribs.c: Include langhooks.h.
3697         (decl_attributes): Use langhook.
3698         * c-decl.c (insert_default_attributes): Rename.
3699         * c-tree.h (c_insert_default_attributes): New.
3700         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
3701         (LANG_HOOKS_INITIALIZER): Update.
3702         * langhooks.h (struct lang_hooks): New hook.
3703         * tree.h (insert_default_attributes): Remove.
3704 objc:
3705         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
3706
3707 2002-03-27  Andreas Schwab  <schwab@suse.de>
3708
3709         * config/i386/i386.c (classify_argument): Also check for
3710         QUAL_UNION_TYPE.
3711
3712 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3713
3714         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
3715         any more.
3716
3717 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
3718
3719         * i960.md (ret): Set PC.
3720         (nonlocal_goto): Fix expander.
3721         * builtins.c (epxand_builin_longjmp): Check that we've emitted
3722         some jump or call.
3723
3724 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
3725
3726         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
3727         of libcall regions.
3728
3729 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3730
3731         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
3732         assigning to BLOCK_FOR_INSN directly.
3733
3734 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
3735
3736         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
3737
3738 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3739
3740         * c-common.c (c_expand_expr): Fix prototype.
3741         * c-common.h (c_expand_expr): Always declare, update.
3742         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3743         * c-objc-common.c (c_objc_common_init): No global hook.
3744         * expr.c (expand_expr): Use langhook.
3745         * expr.h (enum expand_modifier): Conditionally declare.
3746         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
3747         (LANG_HOOKS_INITIALIZER): Update.
3748         * langhooks.c (lhd_expand_expr): New.
3749         * langhooks.h (struct lang_hooks): New hook.
3750         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
3751         (lang_independent_init): Don't default hook.
3752 objc:
3753         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3754
3755 2002-03-27  Richard Henderson  <rth@redhat.com>
3756
3757         PR target/6054
3758         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
3759         TARGET_CONST_GP.  Simplify conditions.
3760
3761 2002-03-27  Richard Henderson  <rth@redhat.com>
3762
3763         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
3764         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
3765         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
3766
3767 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
3768
3769         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
3770         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
3771         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
3772         Remove unnecessary masks.
3773         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
3774         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
3775         -mwindows, -mdll switches and their negations.
3776
3777 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3778
3779         * gcc-common.c (lang_mark_false_label_stack): Remove.
3780         * ggc.h (lang_mark_false_label_stack): Similarly.
3781
3782 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3783
3784         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
3785
3786         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
3787         or __rtems_ is defined.
3788
3789 2002-03-26  Richard Henderson  <rth@redhat.com>
3790
3791         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
3792         if a non-trivial load was emitted.
3793         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
3794         in high+extra+low case.
3795
3796 2002-03-26  Richard Henderson  <rth@redhat.com>
3797
3798         * config.gcc (sparc*-solaris): Use float_format=sparc.
3799
3800 2002-03-26  Richard Henderson  <rth@redhat.com>
3801
3802         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
3803         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
3804         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
3805         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
3806         (WINT_TYPE_SIZE): Fix at 32.
3807
3808 2002-03-26  Richard Henderson  <rth@redhat.com>
3809
3810         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
3811         until after eh landing pad generation.
3812         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
3813         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
3814
3815 2002-03-26  Richard Henderson  <rth@redhat.com>
3816
3817         * expr.h (ADD_PARM_SIZE): One more convert for INC.
3818
3819 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
3820
3821         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
3822         and warning switches.
3823         (cc1_options):  Likewise.
3824
3825 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
3826
3827         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
3828         Restore more of the signal context.  Set no_reg_stack_frame.
3829         * config/ia64/unwind-ia64.c (unw_state_record):
3830         Add no_reg_stack_frame, comments.
3831         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
3832         (uw_update_context): Adjust bsp when unwinding from leaf,
3833         but not signal frame.
3834
3835 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
3836
3837         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
3838
3839 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3840
3841         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
3842
3843 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3844
3845         PR target/5621
3846         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
3847         "Add a pool_range attribute", which was lost during the ARM/Thumb
3848         merge.
3849
3850 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3851
3852         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
3853         a register into the MAC16 accumulator.
3854
3855 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
3856
3857         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
3858         (Warning Options): Document -Wswitch-enum.
3859         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
3860         -Wswitch.
3861         (warn_switch_enum): Define variables.
3862         * flags.h (warn_switch_enum): Declare variables.
3863         * stmt.c (expand_end_case_type): When warn_switch_enum /
3864         -Wswitch-enum, perform switch checks.
3865         Fix PR c/5044.
3866
3867 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3868
3869         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
3870         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
3871         (reload_muladdsi_compare0_scratch): Delete.
3872
3873 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
3874
3875         * doc/install.texi (*-*-freebsd*): Update.
3876
3877 2002-03-26  Richard Henderson  <rth@redhat.com>
3878
3879         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
3880         (SUB_PARM_SIZE): Cast DEC to ssizetype.
3881
3882         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
3883         types from the normal argument frame.
3884
3885         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
3886         variable sized objects by reference.
3887         (sparc_va_arg): Receive them by reference too.
3888
3889 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
3890
3891         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
3892         code to not restoring global registers.
3893
3894 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3895
3896         * Makefile.in (ggc-common.o): Update.
3897         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
3898         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3899         * c-tree.h (c_mark_tree): New.
3900         * ggc-common.c: Include langhooks.h.
3901         (gcc_mark_trees): Use new langhook.
3902         * ggc-callbacks.c: Delete file.
3903         * ggc.h (lang_mark_tree): Remove.
3904         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
3905         (LANG_HOOKS_INITIALIZER): Update.
3906         * langhooks.h (struct lang_hooks): New hook.
3907 objc:
3908         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3909
3910 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3911
3912         * doc/cpp.texi: Exclude entire Top node from printed manual.
3913         Move option index after directive index.  Insert page breaks
3914         before GFDL and concept index.  Index environment variables
3915         with command line options.
3916         * doc/cppenv.texi: Use @vtable for environment variable list.
3917         Add paragraph explaining semantics of empty elements in path
3918         variables.  Exclude a cross-reference to Fishkill from the
3919         manpage.  Remove an unnecessary cross-reference of the entry
3920         right above the referer.  Don't use @anchor in text that goes
3921         into manpage.
3922         * doc/cppopts.texi: Cross-reference the environment variables
3923         section, not the specific environment variable, for consistency.
3924
3925 2002-03-25  Richard Henderson  <rth@redhat.com>
3926
3927         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
3928         anywhere in the block.  Don't refer to insns that have been
3929         removed from the chain.  Iterate backward through the new insns.
3930         Don't refer to edges that have been removed.
3931
3932 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
3933
3934         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
3935         test for overflow of constant.
3936
3937 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
3938
3939         PR target/2623
3940         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
3941         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
3942         these patterns on arm_archv4.
3943
3944 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
3945
3946         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
3947         int".
3948
3949 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3950
3951         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
3952         float_handled, float_handler, float_signal, set_float_handler,
3953         and do_float_handler.  Set handler for SIGFPE to crash_signal.
3954         * toplev.h: Don't prototype do_float_handler.
3955
3956         * c-lex.c: Fold parse_float into lex_number.  Make warning
3957         about portability of hex float constants more informative, and
3958         don't issue it on top of a syntax error.
3959         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
3960         their callers.
3961         * real.h: Define REAL_VALUE_ABS here...
3962         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
3963         simplify_unary_real, simplify_binary_real, and
3964         simplify_binary_is2orm1 into their callers.
3965         * tree.c: Fold build_real_from_int_cst_1 into caller.
3966
3967         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
3968
3969         * tsystem.h: Include float.h here...
3970         * libgcc2.c: ... not here.
3971
3972 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
3973
3974         Fixes for: PR bootstrap/3591, target/5676
3975         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
3976         defined.  Do not disable exceptions or rtti.
3977         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
3978         mcore.h.  Disable exceptions and rtti, since they are not
3979         supported by EPOC.
3980
3981 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3982
3983         * c-decl.c (maybe_build_cleanup): Remove.
3984         * expr.c (expand_expr): Use langhook.
3985         * langhooks-def.h (lhd_return_null_tree,
3986         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
3987         (LANGHOOKS_INITIALIZER): Update.
3988         * langhooks.c (lhd_return_null_tree): New.
3989         * langhooks.h (struct lang_hooks): New hook.
3990         * tree-inline.c (initialize_inlined_parameters): Use langhook.
3991         * tree.h (maybe_build_cleanup): Remove.
3992
3993 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
3994
3995         * regrename.c (build_def_use): Move recog_memoized
3996         before extract_insn.
3997
3998 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
3999
4000         PR target/6043
4001         * expr.c (emit_group_store): Handle storing into CONCAT.
4002
4003 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4004
4005         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
4006         corresponding MATCH_DUP.
4007
4008 2002-03-24  Richard Henderson  <rth@redhat.com>
4009
4010         * unroll.c (unroll_loop): Zero label_map.
4011
4012         * gcse.c: Include except.h.
4013         * Makefile.in (gcse.o): Update.
4014
4015 2002-03-24  Richard Henderson  <rth@redhat.com>
4016
4017         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
4018         Do resolve_unique_section before shared data clause.
4019
4020 2002-03-24  Richard Henderson  <rth@redhat.com>
4021
4022         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
4023
4024 2002-03-24  Richard Henderson  <rth@redhat.com>
4025
4026         * recog.c (peephole2_optimize): Split blocks when EH insns are
4027         generated in the middle of a block.  Do global life update if
4028         zapped EH edges.
4029
4030 2002-03-24  Richard Henderson  <rth@redhat.com>
4031
4032         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
4033
4034 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4035
4036         preprocessor/3951
4037         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
4038         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
4039         (init_dependency_output): Don't make no_output decision here.
4040
4041 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
4042
4043         * stmt.c (check_for_full_enumeration_handling): Remove tests of
4044         warn_switch.  Update description.
4045         (expand_end_case_type): Call check_for_full_enumeration_handling
4046         when warn_switch.
4047
4048 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4049
4050         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
4051         (m68hc11_split_move): Call it to see if the source and destination
4052         operands use the same direction auto inc/dec mode, otherwise make the
4053         source an offsetable memory operand and generate an add.
4054
4055 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4056
4057         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
4058         register for operand 2.
4059         ("*subsi3_zero_extendqi"): Likewise.
4060         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
4061         bits so that it is compatible with a pop.
4062         ("*andhi3_gen"): Likewise.
4063         ("xorhi3"): Likewise.
4064
4065 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4066
4067         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
4068         -pedantic here...
4069         (cpp_post_options): ... not here.
4070
4071 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4072             Aldy Hernandez  <aldyh@redhat.com>
4073
4074         Removal of separate preprocessor cpp0.
4075
4076         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
4077         cpp0, install-common): Update.
4078         * c-common.c (flag_preprocess_only): New.
4079         (c_common_init): Preprocess for -E.
4080         * c-common.h (flag_preprocess_only): New.
4081         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
4082         * c-objc-common.c (c_init_decl_processing): Exit quickly
4083         for NULL return from c_common_init.
4084         * cpplib.h (cpp_preprocess_file): New.
4085         * cppmain.c (main, general_init, pfile, progname): Remove.
4086         (do_preprocessing): Rename cpp_preprocess_file, don't call
4087         cpp_finish.  Don't close stdout here.
4088         (setup_callbacks): Update prototype.
4089         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
4090         Update.
4091         * tradcpp.c&nb