OSDN Git Service

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