OSDN Git Service

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