OSDN Git Service

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