OSDN Git Service

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