OSDN Git Service

* cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-01  Richard Henderson  <rth@redhat.com>
2
3         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
4         info before expunging the block.
5
6 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
7
8         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
9         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
10         -M -or -MM is in effect.
11
12 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
13
14         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
15         A29k configurations.
16         * doc/install.texi: Update to match.
17
18 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19
20         PR bootstrap/6514
21         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
22         for duplicates. Always loop over whole list.
23
24 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25
26         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
27
28 2002-05-01      Joel Sherrill <joel@OARcorp.com>
29
30         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
31         support routines.
32
33 2002-05-01      Joel Sherrill <joel@OARcorp.com>
34
35         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
36
37 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
38
39         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
40         (nabs_nopower): Same.
41         (floatdisf2): New pattern.
42         (absdi2): Convert to define_insn_and_split.
43         (nabsdi2): Same.
44         (trunctfsf2): Same.
45         (floatditf2): Same.
46         (floatsitf2): Same.
47         (fix_trunctfdi2): Same.
48         (fix_trunctfsi2): Same.
49
50 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
51
52         * doc/install.texi: Update Texinfo version requirement
53         documentation.
54
55 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
56
57         PR target/6512, PR target/5628
58         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
59         when memory is not aligned.
60         (movdf_insn_v9only_vis): Likewise.
61         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
62         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
63         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
64
65 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
66
67         * gcc.dg/altivec-7.c: New.
68
69         * config/rs6000/altivec.h: Cleanup.
70
71 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
72
73         * doc/invoke.texi (Option Summary): Add -mvrsave=.
74         (RS/6000 and PowerPC Options): Document -mvrsave=.
75
76         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
77         (rs6000_altivec_vrsave_string): Same.
78         (rs6000_override_options): Call rs6000_parse_vrsave_option.
79         (rs6000_parse_vrsave_option): New.
80         (rs6000_stack_info): Only generate vrsave instructions when
81         TARGET_ALTIVEC_VRSAVE.
82
83         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
84         (rs6000_altivec_vrsave_string): Define extern.
85         (rs6000_altivec_vrsave): Same.
86         (TARGET_ALTIVEC_VRSAVE): New.
87
88 2002-04-30  Richard Henderson  <rth@redhat.com>
89
90         PR opt/6516
91         * toplev.c (rest_of_compilation): Don't run cross-jump before
92         bb-reorder.
93
94 2002-04-30  Tom Rix  <trix@redhat.com>
95
96         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
97         check which_alternative.
98
99 2002-04-30  Kazu Hirata  <kazu@hxi.com>
100
101         * cpplex.c: Fix comment formatting.
102         * function.c: Likewise.
103         * integrate.c: Likewise.
104         * regrename.c: Likewise.
105         * sibcall.c: Likewise.
106         * simplify-rtx.c: Likewise.
107         * tree-inline.c: Likewise.
108
109 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
110
111         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
112         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
113         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
114         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
115         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
116         * pa/x-ada: New file.  Define ADA_CFLAGS.
117
118 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
119
120         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
121         from MMIX_LAST_REGISTER_FILE_REGNUM.
122         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
123         (struct machine_function): New member highest_saved_stack_register
124         previously static variable in mmix.c.
125         (MACHINE_DEPENDENT_REORG): Define.
126         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
127         (MMIX_OUTPUT_REGNO): New.
128         (mmix_target_asm_function_prologue): Move calculation of last used
129         saved-stack-register into...
130         (mmix_machine_dependent_reorg): New function.  Update to also handle
131         !TARGET_ABI_GNU.
132         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
133         register names, simplify somewhat by new variable regno.
134         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
135         register.
136         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
137         emitting register names.
138         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
139         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
140         Remove fixed FIXME.
141         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
142         Declare.
143
144         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
145
146 2002-04-30  Richard Henderson  <rth@redhat.com>
147
148         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
149         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
150         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
151         emit_tfmode_cvt): New.
152         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
153         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
154         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
155         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
156         * config/sparc/sparc-protos.h: Update.
157
158 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
159
160         * install.texi (Final install): Add to the list of info to include
161         in a report of a successful bootstrap, and add link to 3.1 list.
162
163 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
164
165         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
166         (mode): Add vector modes
167         (i387): Kill attribute.
168         (unit): New attribute.
169         (length_immediate): Grok new types.
170         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
171         (modrm): Use "unit".
172         (memory): Handle MMX/SSE properly.
173         (scheduling descriptions): Kill uses of fop1.
174         (sse, mmx, fp patterns): Set type and mode properly.
175
176 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
177
178         * pa.c (override_options): Default to PA8000 scheduling.
179         * doc/invoke.texi (HP-PA options): Mention newly added 7300
180         scheduling parameter.
181
182         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
183         handling of double precision multiplies.
184
185         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
186         fpdiv and fpsqrt instructions.
187         (7200 & 7300 scheduling): Fix typo in handling of
188         store-load and store-store penalties.
189
190 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
191
192         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
193         mips.  Add two missing commas.
194
195 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
196
197         * doc/contrib.texi (Contributors): Update Paolo Carlini's
198         and Benjamin Kosnik's entries.
199
200 2002-04-29  David S. Miller  <davem@redhat.com>
201
202         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
203         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
204         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
205         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
206
207 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
208
209         * combine.c (find_split_point): Use gen_int_mode.
210
211 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
212
213         Merging code from dfa-branch:
214
215         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
216
217         * genautomata.c (output_reserv_sets): Fix typo.
218
219         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
220
221         * genautomata.c (output_reserv_sets): Remove
222         next_cycle_output_flag.
223
224         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
225
226         * sched-rgn.c (init_ready_list): Make the DFA code handle
227         USE/CLOBBER insns in the same way as the traditional
228         scheduler.
229         (new_ready): Similarly..
230
231         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
232
233         * haifa-sched.c (schedule_block): Change the DFA state only after
234         issuing insn.
235
236         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
237
238         * pa.c (hppa_use_dfa_pipeline_interface): New function.
239         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
240         (override_options): Add PA7300 scheduling support.
241         (pa_adjust_cost): Update various comments.  Properly
242         handle anti and output dependencies when using the
243         DFA scheduler.
244         (pa_issue_rate): Add PA7300 scheduling support.
245         (pa_can_combine_p): Call extract_insn before calling
246         constrain_operands (taken from mainline tree).
247         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
248         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
249         descriptions using DFA descriptions.  Add PA7300
250         scheduling support.
251
252         2002-03-30  David S. Miller  <davem@redhat.com>
253
254         Add UltraSPARC-III DFA scheduling support.
255         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
256         Update FP conditional move on register insn patterns to use it, as
257         appropriate.
258         (define_attr cpu): Add ultrasparc3.
259         (define_attr us3load_type): New, update integer load patterns to
260         set it, as appropriate.
261         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
262         (rest): Add UltraSPARC3 scheduling description.
263         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
264         (PROCESSOR_ULTRASPARC3): New.
265         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
266         ({ASM,CPP}_CPU_SPEC): Likewise.
267         (REGISTER_MOVE_COST): Likewise.
268         (RTX_COSTS): Likewise.
269         * config/sparc/sparc.c (sparc_override_options,
270         sparc_initialize_trampoline, sparc64_initialize_trampoline,
271         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
272         sparc_issue_rate): Likewise.
273         * config/sparc/sol2.h: Likewise.
274         * config/sparc/sol2-sld-64.h: Likewise.
275         * config/sparc/linux64.h: Likewise.
276
277         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
278
279         * doc/md.texi: Add comments about usage the latency time for the
280         different dependencies and about case when two or more conditions
281         in different define_insn_reservations returns TRUE for an insn.
282
283         * doc/md.texi: Add reference for automaton based pipeline
284         description.
285
286         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
287
288         * doc/passes.texi: Add missed information about genattrtab.
289
290         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
291
292         * genautomata.c (output_automata_list_transition_code): Check
293         automata_list on NULL.
294
295         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
296
297         * genautomata.c (output_insn_code_cases,
298         output_automata_list_min_issue_delay_code,
299         output_automata_list_transition_code,
300         output_automata_list_state_alts_code): Comment the functions.
301
302         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
303
304         * genautomata.c (automata_list_el_t): New typedef.
305         (get_free_automata_list_el,free_automata_list_el,
306         free_automata_list, automata_list_hash, automata_list_eq_p,
307         initiate_automata_lists, automata_list_start, automata_list_add,
308         automata_list_finish, finish_automata_lists,
309         output_insn_code_cases, output_automata_list_min_issue_delay_code,
310         output_automata_list_transition_code,
311         output_automata_list_state_alts_code, add_automaton_state,
312         form_important_insn_automata_lists): New functions and prototypes.
313         (insn_reserv_decl): Add members important_automata_list and
314         processed_p.
315         (ainsn): Add members important_p.
316         (automata_list_el): New structure.
317         (first_free_automata_list_el, current_automata_list,
318         automata_list_table): New global variables.
319         (create_ainsns): Initiate member important_p.
320         (output_internal_min_issue_delay_func): Generate the switch and
321         call output_insn_code_cases.
322         (output_internal_trans_func, output_internal_state_alts_func):
323         Ditto.
324         (generate): Call initiate_automata_lists.
325         (automaton_states): New global variable.
326         (expand_automata): Call form_important_insn_automata_lists.
327         (write_automata): Call finish_automata_lists.
328
329         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
330
331         * genautomata.c (add_excls, add_presence_absence): Check that
332         cpu units in the sets belong the same automaton.
333
334         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
335         about that cpu units in the sets belong the same automaton.
336
337         * doc/md.texi: Ditto.
338
339         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
340                     Nitin Gupta  <niting@noida.hcltech.com>
341
342         * config/sh/sh.c (sh_use_dfa_interface): New function.
343
344         (sh_issue_rate): New Function.
345         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
346         TARGET_SCHED_ISSUE_RATE: define.
347
348         * config/sh/sh.md: Add DFA based pipeline description for SH4.
349
350         (define_attr insn_class): New attribute used for DFA
351          scheduling.
352         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
353         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
354          cmpeqdi_t): Likewise.
355
356         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
357          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
358          ex_group.
359         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
360
361         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
362
363         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
364         break.
365
366         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
367
368         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
369         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
370         necessary.
371         (output_dfa_start_func): Initiate new variable insn_codes_length,
372         (write_automata): Output definition of the new variable.
373
374         2001-10-02  David S. Miller  <davem@redhat.com>
375
376         * haifa-sched.c (advance_one_cycle): New function.
377         (schedule_block): Use it.
378         (queue_to_ready): Use it, and also make sure to advance the DFA
379         state on all stall cycles, not just those where insn_queue links
380         are found.
381
382         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
383
384         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
385         non-zero if the highest-priority instruction could be scheduled.
386         (choose_ready): Remove last argument from max_issue call.
387
388         2001-09-28  David S. Miller  <davem@redhat.com>
389
390         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
391         ultrasparc and 3 for other multi-issue sparcs.
392
393         2001-09-27  David S. Miller  <davem@redhat.com>
394
395         * config/sparc/sparc.md (cycle_display): New pattern.
396         * config/sparc/sparc.c (sparc_cycle_display): New.
397         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
398
399         2001-09-25  David S. Miller  <davem@redhat.com>
400
401         Convert all of Sparc scheduling to DFA
402         * config/sparc/sparc.md: Kill all define_function_unit
403         directives and replace with DFA equivalent.
404         * config/sparc/sparc.c (ultrasparc_adjust_cost,
405         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
406         ultra_fpmode_conflict_exists, ultra_find_type,
407         ultra_build_types_avail, ultra_flush_pipeline,
408         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
409         ultrasparc_variable_issue, ultrasparc_sched_init,
410         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
411         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
412         ultra_cur_hist, ultra_cycles_elapsed): Kill.
413         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
414         ultrasparc_store_bypass_p): New.
415         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
416         Declare.
417
418         2001-09-24  David S. Miller  <davem@redhat.com>
419
420         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
421         ready->vec[foo] not ready[foo].
422
423         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
424
425         * doc/md.texi: Correct examples for define_insn_reservations
426         `mult' and `div'.
427
428         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
429
430         * genautomata.c (create_automata): Print message about creation of
431         each automaton.
432         (generate): Remove printing meease about creation of
433         automata.
434
435         2001-09-05  David S. Miller  <davem@redhat.com>
436
437         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
438         * config/sparc/linux64.h: Likewise.
439
440         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
441
442         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
443         schedule_block, sched_init, sched_finish): Add missed calls of
444         use_dfa_pipeline_interface.
445
446         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
447         Ditto.
448
449         * sched-vis.c (get_visual_tbl_length): Ditto.
450
451         2001-08-27  Richard Henderson  <rth@redhat.com>
452
453         * genattr.c (main): Emit state_t even when not doing scheduling.
454
455         2001-08-27  Richard Henderson  <rth@redhat.com>
456
457         * genautomata.c (expand_automata): Always create a description.
458
459         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
460
461         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
462         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
463         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
464         RTL constructions.
465
466         * genattr.c (main): New variable num_insn_reservations.  Increase
467         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
468         pipeline hazard recognizer interface.
469
470         * genattrtab.h: New file.
471
472         * genattrtab.c: Include genattrtab.h.
473         (attr_printf, check_attr_test, make_internal_attr,
474         make_numeric_value): Move protypes into genattrtab.h.  Define them
475         as external.
476         (num_dfa_decls): New global variable.
477         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
478         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
479         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
480         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
481
482         * genautomata.c: New file.
483
484         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
485
486         * sched-int.h: (curr_state): Add the external definition for
487         automaton pipeline interface.
488         (haifa_insn_data): Add comments for members blockage and units.
489
490         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
491         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
492         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
493         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
494         TARGET_SCHED_DFA_POST_CYCLE_INSN,
495         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
496         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
497         macros.
498         (TARGET_SCHED): Use the new macros.
499
500         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
501         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
502         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
503         dfa_bubble): New members in gcc_target.sched.
504
505         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
506         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
507         (insn_queue): Redefine it as pointer to array.
508         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
509         INSN_QUEUE_SIZE.
510         (max_insn_queue_index_macro_value): New variable.
511         (curr_state, dfa_state_size, ready_try): New varaibles for
512         automaton interface.
513         (ready_element, ready_remove, max_issue): New function prototypes
514         for automaton interface.
515         (choose_ready): New function prototype.
516         (insn_unit, blockage_range): Add comments.
517         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
518         FUNCTION_UNITS_SIZE == 0.
519         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
520         actual_hazard, potential_hazard): Add comments.
521         (insn_cost): Use cost -1 as undefined value.  Remove
522         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
523         pipeline interface.
524         (ready_element, ready_remove): New functions for automaton
525         interface.
526         (schedule_insn): Add new code for automaton pipeline interface.
527         (queue_to_ready): Add new code for automaton pipeline interface.
528         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
529         (debug_ready_list): Print newline when the queue is empty.
530         (max_issue): New function for automaton pipeline interface.
531         (choose_ready): New function.
532         (schedule_block): Add new code for automaton pipeline interface.
533         Print ready list before scheduling each insn.
534         (sched_init): Add new code for automaton pipeline interface.
535         Initiate insn cost by -1.
536         (sched_finish): Free the current automaton state and finalize
537         automaton pipeline interface.
538
539         * sched-rgn.c: Include target.h.
540         (init_ready_list, new_ready, debug_dependencies): Add new code for
541         automaton pipeline interface.
542
543         * sched-vis.c: Include target.h.
544         (get_visual_tbl_length): Add code for automaton interface.
545         (target_units, print_block_visualization):  Add comments.
546
547         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
548         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
549         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
550         (getruntime.o, genautomata.o): New entries.
551         (genattrtab.o): Add new dependency file genattrtab.h.
552         (genattrtab): Add new dependencies.  Link it with `libm.a'.
553         (getruntime.o, hashtab.o): New entries for canadian cross.
554
555         * doc/md.texi: Description of automaton based model.
556
557         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
558         Add comments.
559         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
560         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
561         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
562         TARGET_SCHED_DFA_POST_CYCLE_INSN,
563         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
564         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
565         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
566         hook descriptions.
567         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
568         MAX_DFA_ISSUE_RATE): New macro descriptions.
569
570         * doc/contrib.texi: Add dfa based scheduler contribution.
571
572         * doc/gcc.texi: Add more information about genattrtab.
573
574 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
575
576         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
577         adjust_address_nv call.
578
579 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
580
581         * doc/install.texi (Testing): Provide additional information, and
582         a stronger encouragement, for running the testsuites.
583
584 2002-04-29  DJ Delorie  <dj@redhat.com>
585
586         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
587         given in upper case.
588
589 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
590
591         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
592         Solaris 2 <widec.h> if missing.
593         * fixinc/fixincl.x: Regenerate.
594         * fixinc/tests/base/widec.h: New file.
595
596 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
597
598         * toplev.c (f_options): Add "profile" switch so that
599         -fno-profile can be used to disable -p.
600
601 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
602
603         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
604         UV2DImode.
605         * tree.c (build_common_tree_nodes_2): Likewise.
606         * tree.h (enum tree_index): Likewise.
607         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
608
609         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
610         entries.
611         (init_mmx_sse_builtins): Initialize SSE2 builtins.
612         (ix86_expand_builtin): Add support for SSE2 builtins.
613         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
614         (VALID_SSE_REG_MODE): Use it.
615         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
616         (enum ix86_builtins): Add SSE2 builtins.
617         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
618         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
619         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
620         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
621         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
622         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
623         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
624         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
625         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
626         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
627         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
628         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
629         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
630         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
631         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
632         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
633         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
634         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
635         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
636         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
637         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
638         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
639         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
640         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
641         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
642         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
643         lfence_insn): New patterns.
644         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
645         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
646
647 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
648
649         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
650
651 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
652
653         * doc/contrib.texi (Contributors): Add Paolo Carlini and
654         Janis Johnson.
655         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
656         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
657         and CPU instead of cpu.
658
659 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
660
661         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
662         variables.
663         (lang_independent_options): Add -fif-conversion, -fif-conversion2
664         (rest_of_compilation): Do if conversion only when asked for.
665         (parse_options_and_default_flags): Set new variables to 1 for -O1
666         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
667
668 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
669
670         * i386.c (dbx64_register_map): Fix typo.
671
672 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
673
674         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
675         real_one_half, real_bb_freq_max): New static variables.
676         (debug_profile_bbauxs): Kill.
677         (process_note_predictions): Kill unused variable.
678         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
679         volatile double.
680         (propagate_freq): Use REAL_ARITHMETICS.
681         (estimate_bb_frequencies): Likevise; init new static variables.
682         * Makefile.in (predict.o): Add dependency on real.h
683
684 2002-04-28  David S. Miller  <davem@redhat.com>
685
686         PR target/6500
687         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
688         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
689         several {reads,writes} instead.
690         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
691         Define.
692
693 2002-04-27  David S. Miller  <davem@redhat.com>
694
695         PR target/6494
696         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
697         of the stack bias.
698
699         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
700         including signal.h and sys/ucontext.h, not needed.
701
702 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
703
704         * varasm.c (output_constant_def): Correct test for not calling
705         ENCODE_SECTION_INFO for INTEGER_CST.
706
707 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
708
709         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
710         keep most cases as function eval_token.
711         (eval_token): New function.
712         (_cpp_parse_expr): Read token here for improved diagnostics.
713         Don't use op_as_text.  Detect bad ':' here.
714         (reduce): Don't detect bad ':' here.
715         (op_as_text): Remove.
716         * cpphash.h (_cpp_test_assertion): Change prototype.
717         * cpplib.c (_cpp_test_assertion): Change prototype.
718
719 2002-04-28  Richard Henderson  <rth@redhat.com>
720
721         PR c/5154
722         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
723         (ggc_mark_rtx_children): New.
724
725 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
726
727         PR target/6496
728         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
729         after call peepholes for UltraSPARC.
730         (call + jump 64-bit peepholes): Remove.
731
732 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
733
734         PR c/6497
735         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
736         result as temporary value.
737
738 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
739
740         PR c++/6396
741         * toplev.c (rest_of_compilation): Only run regrename and copy
742         propagation if optimizing.
743
744 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
745
746         PR optimization/6475
747         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
748         register of REGNO_DECL (i).
749         * Makefile.in (reload1.o): Add $(TREE_H).
750
751 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
752
753         * cppexp.c (lex): Update to use state.skip_eval.
754         (struct op): Remove prio and flags members.
755         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
756         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
757         (LEFT_ASSOC): New macro.
758         (optab): New table of operator priorities and flags.
759         (SHIFT): Update.
760         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
761         malloc-ed parser stack.
762         (reduce): New; reduce the operator stack.
763         (_cpp_expand_op_stack): Expand the operator stack as necessary.
764         * cpphash.h (struct op): Predeclare.
765         (struct cpp_reader): New members op_stack, op_limit.
766         (struct lexer_state): New member skip_eval.
767         (_cpp_parse_expr): Update.
768         (_cpp_expand_op_stack): New.
769         * cpplib.c (do_if): Update.
770         * cppinit.c (cpp_create_reader): Create op stack.
771         (cpp_destroy): And destroy it.
772         * cpplib.h (CPP_LAST_CPP_OP): Correct.
773         (TTYPE_TABLE): Correct.
774
775 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
776
777         PR c/6343
778         * c-decl.c (duplicate_decls): Call merge_weak.
779         * c-pragma.c (apply_pragma_weak): Warn about misuse.
780         * output.h (merge_weak): Prototype merge_weak.
781         * varasm.c (merge_weak): New function.
782         (declare_weak): Make sure we don't give an error on VAR_DECLs.
783         Mark RTL with SYMBOL_REF_WEAK.
784
785 2002-04-27  Kurt Garloff <garloff@suse.de>
786
787         * tree-inline.c (inlinable_function_p): Improve heuristics
788         by using a smoother function to cut down allowable inlinable size.
789         * param.def: Add parameters max-inline-insns-single,
790         max-inline-slope, min-inline-insns that determine the exact
791         shape of the above function.
792         * param.h: Likewise.
793
794 2002-04-26  Richard Henderson  <rth@redhat.com>
795
796         * c-parse.in (malloced_yyss, malloced_yyvs): New.
797         (yyoverflow): Re-add.  Set them.
798         (free_parser_stacks): New.
799         * c-common.h: Declare it.
800         * c-lex.c (c_common_parse_file): Call it.
801
802 2002-04-26  Richard Henderson  <rth@redhat.com>
803
804         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
805         for fallthru search.
806
807 2002-04-26  Eric Christopher  <echristo@redhat.com>
808
809         PR optimization/3700
810         * config/mips/mips.c (mips_issue_rate): Define.  New function.
811         (TARGET_SCHED_ISSUE_RATE): Use.
812
813 2002-04-25  David S. Miller  <davem@redhat.com>
814
815         PR target/6422
816         * reorg.c (optimize_skip): Do not allow exception causing
817         instructions to be considered for delay slots.
818         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
819         (relax_delay_slots): Do not try to consider exception causing
820         instructions as redundant.
821
822 2002-04-26  Richard Henderson  <rth@redhat.com>
823
824         PR c/5225
825         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
826
827 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
828
829         PR bootstrap/6445
830         * config/i386/i386.md (untyped_call): Return the value in a float
831         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
832         TARGET_80387.
833
834 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
835
836         * tree.c (tree_int_cst_lt): Compare constants whose types differ
837         in unsigned-ness correctly.
838
839 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
840
841         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
842         portable runtime model.
843
844 2002-04-26  Richard Henderson  <rth@redhat.com>
845
846         * c-parse.in (yyoverflow): Revert.
847
848 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
849             Richard Henderson  <rth@redhat.com>
850
851         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
852         result as temporary value.
853
854 2002-04-26  Richard Henderson  <rth@redhat.com>
855
856         PR c/3581
857         * c-common.c (fix_string_type): Split out of ...
858         (combine_strings): ... here.  Take a varray, not a tree list.
859         (c_expand_builtin_printf): Use fix_string_type.
860         * c-common.h: Update decls.
861         * c-parse.in (string): Remove.  Update all uses to use STRING
862         instead, and not call combine_strings.
863         (yylexstring): New.
864         (_yylex): Use it.
865         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
866         (build_asm_stmt): Likewise.
867         * objc/objc-act.c (my_build_string): Use fix_string_type.
868         (build_objc_string_object): Build varray for combine_strings.
869
870 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
871
872         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
873         x86-64.
874
875 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
876
877         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
878         (HAVE_NO_R_OPERAND): Remove.
879         (HAVE_VALUE): Remove.
880         (op_to_prio): Update.
881         (UNARY): Don't alter flags.
882         (_cpp_parse_expr): want_value used to indicate whether
883         a number or unary operator is expected next.  Distinguish
884         unary and binary +/-.
885         (op_as_text): Update for unary operators.
886
887 2002-04-25  Richard Henderson  <rth@redhat.com>
888
889         PR c/2161
890         * c-parse.in (yyoverflow): New.
891
892 2002-04-25  Richard Henderson  <rth@redhat.com>
893
894         PR c/2098
895         * c-common.c (shorten_compare): Simplfy conditions leading to
896         the generation of a warning.
897
898 2002-04-25  Richard Henderson  <rth@redhat.com>
899
900         PR c/2035
901         * expmed.c (extract_bit_field): Fall through to generic code rather
902         than aborting on subreg special case.
903
904 2002-04-25  David S. Miller  <davem@redhat.com>
905
906         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
907         for DECL being NULL.
908
909 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
910
911         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
912
913 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
914
915         * c-decl.c (grokdeclarator): Remove outdated ??? note
916         on invalid declaration of flexible array members.
917
918 2002-04-25  Richard Henderson  <rth@redhat.com>
919
920         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
921
922 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
923
924         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
925         needed by the compiler, even if they are used as global regs.
926
927 2002-04-25  Matt Hiller  <hiller@redhat.com>
928
929         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
930         functions.
931         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
932         of the corresponding functions.
933         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
934         New prototypes.
935
936 2002-04-25  Matt Hiller  <hiller@redhat.com>
937
938         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
939
940         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
941         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
942         registers, adjust comment accordingly.
943         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
944         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
945         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
946         for coprocessor registers.
947         (ADDITIONAL_REGISTER_NAMES): Include
948         ALL_COP_ADDITIONAL_REGISTER_NAMES.
949
950         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
951         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
952         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
953         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
954         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
955
956         (mips_char_to_class): Adjust comment to include coprocessor
957         constraint letters.
958
959         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
960         New functions.
961         (mips_reg_names, mips_regno_to_class): Include coprocessor
962         information.
963         (mips_sw_reg_names): Ditto, make non-static.
964         (mips_move_1word): Handle moves to and from coprocessor registers.
965         (mips_move_2words): Handle moves to and from coprocessor
966         registers.
967         (mips_class_max_nregs, mips_register_move_cost): Handle
968         coprocessor register classes.
969         (override_options): Initialize mips_char_to_class and
970         mips_hard_regno_mode_ok properly for coprocessor registers.
971
972         * config/mips/mips.md (movdi_internal, movdi_internal2,
973         movsi_internal1, movsi_internal2): Add constraint-sets for
974         coprocessor registers.
975         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
976         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
977         isn't mips.
978         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
979         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
980         isn't mips.
981         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
982         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
983         isn't mips.
984         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
985         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
986         isn't mips.
987
988         * doc/tm.texi: Document feature.
989
990 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
991
992         * integrate.c (function_attribute_inlinable_p): Simplify.
993         Check the table pointer is not NULL.
994
995 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
996
997         * doc/c-tree.texi: Fix typo in introduction.
998
999 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1000
1001         * c-common.h (c_common_parse_file): Update.
1002         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1003         * c-lex.c (YYDEBUG): Get from c-lex.h.
1004         (c_common_parse_file): Update.
1005         * c-lex.h (YYDEBUG, yydebug): New.
1006         * c-parse.in (YYDEBUG): Get from c-lex.h.
1007         (c_set_yydebug): Remove.
1008         * c-tree.h (c_set_yydebug): Remove.
1009         * langhooks-def.h (lhd_do_nothing_i): New.
1010         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
1011         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
1012         * langhooks.c  (lhd_do_nothing_i): New.
1013         (lhd_set_yydebug): Remove.
1014         * langhooks.h (struct lang_hooks): Update.
1015         * toplev.c (set_yydebug): New.
1016         (compile_file): Update call to parse_file hook.
1017         (decode_d_option): Update.
1018 objc:
1019         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1020
1021 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
1022
1023         * loop.c (load_mems): Don't change the interface of called functions.
1024
1025         * calls.c (expand_call): Take current_function_pretend_args_size
1026         into account when setting argblock for sibcalls.
1027
1028 2002-04-24  Matt Hiller  <hiller@redhat.com>
1029
1030         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
1031         * c-lex.c: Ditto.
1032
1033         * cpplex.c (skip_line_comment): Process comment one multibyte
1034         character at a time rather than one char at a time, if
1035         appropriate.
1036         (parse_string): Process string one multibyte character at a time
1037         rather than one char at a time, if appropriate.
1038         * c-lex.c (lex_string): Lex and copy multibyte strings
1039         appropriately.
1040         * cpplib.h (cppchar_t): Change to unsigned.
1041
1042 2002-04-24  Richard Henderson  <rth@redhat.com>
1043
1044         PR c/3467
1045         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
1046         for c99.
1047
1048 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
1049
1050         * sh.c (sh_va_arg): If argument was passed by reference,
1051         dereference the pointer.
1052
1053         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1054
1055         * sh.md (divsi3_i4_media): Use match_operand for input values
1056         rather than hard registers.
1057         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1058         unnecessarily through hard registers.  Keep copies of pseudo
1059         registers outside of the libcall sequence.
1060
1061         * sh.md (casesi_shift_media): Add modes.
1062
1063         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
1064         values in memory.
1065
1066 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1067
1068         * attribs.c (c_common_attribute_table): Move table and handlers
1069         to c-common.c.
1070         (format_attribute_table, lang_attribute_table,
1071         lang_attribute_common): Remove.
1072         (init_attributes): Replace NULL pointers with pointers to the
1073         empty table.
1074         (handle_packed_attribute, handle_nocommon_attribute,
1075         handle_common_attribute, handle_noreturn_attribute,
1076         handle_noinline_attribute, handle_always_inline_attribute,
1077         handle_used_attribute, handle_unused_attribute,
1078         handle_const_attribute, handle_transparent_union_attribute,
1079         handle_constructor_attribute, handle_destructor_attribute,
1080         handle_mode_attribute, handle_section_attribute,
1081         handle_aligned_attribute, handle_weak_attribute,
1082         handle_alias_attribute, handle_visibility_attribute,
1083         handle_no_instrument_function_attribute, handle_malloc_attribute,
1084         handle_no_limit_stack_attribute, handle_pure_attribute,
1085         handle_deprecated_attribute, handle_vector_size_attribute,
1086         vector_size_helper): Move to c-common.c.
1087         * c-common.c (c_common_attribute_table,
1088         handle_packed_attribute, handle_nocommon_attribute,
1089         handle_common_attribute, handle_noreturn_attribute,
1090         handle_noinline_attribute, handle_always_inline_attribute,
1091         handle_used_attribute, handle_unused_attribute,
1092         handle_const_attribute, handle_transparent_union_attribute,
1093         handle_constructor_attribute, handle_destructor_attribute,
1094         handle_mode_attribute, handle_section_attribute,
1095         handle_aligned_attribute, handle_weak_attribute,
1096         handle_alias_attribute, handle_visibility_attribute,
1097         handle_no_instrument_function_attribute, handle_malloc_attribute,
1098         handle_no_limit_stack_attribute, handle_pure_attribute,
1099         handle_deprecated_attribute, handle_vector_size_attribute,
1100         vector_size_helper): Move from attribs.c.
1101         * c-common.h (c_common_attribute_table,
1102         c_common_format_attribute_table): New.
1103         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1104         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1105         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1106         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
1107         (LANG_HOOKS_INITIALIZER): Update.
1108         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
1109         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
1110         * target.h: Update comment.
1111         * tree.c (default_target_attribute_table): Remove.
1112         * tree.h (default_target_attribute_table, format_attribute_table,
1113         lang_attribute_table, lang_attribute_common): Remove.
1114 objc:
1115         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1116         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1117
1118 2002-04-24  Jason Merrill  <jason@redhat.com>
1119
1120         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
1121         * dwarf2out.c (dwarf_attr_name): Support it.
1122         (gen_array_type_die): Emit it.
1123         (lookup_type_die): No special handling for VECTOR_TYPE.
1124         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
1125
1126 2002-04-24  Richard Henderson  <rth@redhat.com>
1127
1128         * config/mips/mips.md (movdi_usd): Renumber.
1129
1130 2002-04-24  David S. Miller  <davem@redhat.com>
1131
1132         PR target/6420
1133         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
1134         32-bit Sparc and current_function_returns_struct is true.
1135
1136 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1137
1138         * loop.c (canonicalize_condition): Use gen_int_mode.
1139
1140 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
1141
1142         * config/rs6000/altivec.h: Cleanup file.  Add non individual
1143         variants.
1144         (vec_vaddubm): New.
1145         (vec_vadduhm): New.
1146         (vec_vadduwm): New.
1147         (vec_vaddfp): New.
1148         (vec_vaddcuw): New.
1149         (vec_vaddubs): New.
1150         (vec_vaddsbs): New.
1151         (vec_vadduhs): New.
1152         (vec_vadduws): New.
1153         (vec_vaddsws): New.
1154         (vec_vand): New.
1155         (vec_vandc): New.
1156         (vec_vavgub): New.
1157         (vec_vavgsb): New.
1158         (vec_vavguh): New.
1159         (vec_vavgsh): New.
1160         (vec_vavguw): New.
1161         (vec_vavgsw): New.
1162         (vec_vrfip): New.
1163         (vec_vcmpbfp): New.
1164         (vec_vcmpequb): New.
1165         (vec_vcmpequh): New.
1166         (vec_vcmpequw): New.
1167         (vec_vcmpeqfp): New.
1168         (vec_vcmpgefp): New.
1169         (vec_vcmpgtub): New.
1170         (vec_vcmpgtsb): New.
1171         (vec_vcmpgtuh): New.
1172         (vec_vcmpgtsh): New.
1173         (vec_vcmpgtuw): New.
1174         (vec_vcmpgtsw): New.
1175         (vec_vcmpgtfp): New.
1176         (vec_vcmpgefp): New.
1177         (vec_vcfux): New.
1178         (vec_vcfsx): New.
1179         (vec_vctsxs): New.
1180         (vec_vctuxs): New.
1181         (vec_vexptefp): New.
1182         (vec_vrfim): New.
1183         (vec_lvx): New.
1184         (vec_lvebx): New.
1185         (vec_lvehx): New.
1186         (vec_lde): Add vector float variant.
1187         (vec_lvewx): New.
1188         (vec_lvxl): New.
1189         (vec_vlogefp): New.
1190         (vec_vmaddfp): New.
1191         (vec_vmhaddshs): New.
1192         (vec_vmaxub): New.
1193         (vec_vmaxsb): New.
1194         (vec_vmaxuh): New.
1195         (vec_vmaxsh): New.
1196         (vec_vmaxuw): New.
1197         (vec_vmaxsw): New.
1198         (vec_vmaxsw): New.
1199         (vec_vmaxfp): New.
1200         (vec_vmrghb): New.
1201         (vec_vmrghh): New.
1202         (vec_vmrghw): New.
1203         (vec_vmrglb): New.
1204         (vec_vmrglh): New.
1205         (vec_vmrglw): New.
1206         (vec_vminub): New.
1207         (vec_vminsb): New.
1208         (vec_vminuh): New.
1209         (vec_vminsh): New.
1210         (vec_vminuw): New.
1211         (vec_vminsw): New.
1212         (vec_vminfp): New.
1213         (vec_vmladduhm): New.
1214         (vec_vmhraddshs): New.
1215         (vec_msumubm): New.
1216         (vec_vmsummbm): New.
1217         (vec_vmsumuhm): New.
1218         (vec_vmsumshm): New.
1219         (vec_vmsumuhs): New.
1220         (vec_vmsumshs): New.
1221         (vec_vmuleub): New.
1222         (vec_vmulesb): New.
1223         (vec_vmuleuh): New.
1224         (vec_vmulesh): New.
1225         (vec_vmuloub): New.
1226         (vec_mulosb): New.
1227         (vec_vmulouh): New.
1228         (vec_vmulosh): New.
1229         (vec_vnmsubfp): New.
1230         (vec_vnor): New.
1231         (vec_vor): New.
1232         (vec_vpkuhum): New.
1233         (vec_vpkuwum): New.
1234         (vec_vpkpx): New.
1235         (vec_vpkuhus): New.
1236         (vec_vpkshss): New.
1237         (vec_vpkuwus): New.
1238         (vec_vpkswss): New.
1239         (vec_vpkshus): New.
1240         (vec_vpkswus): New.
1241         (vec_vperm): New.
1242         (vec_vrefp): New.
1243         (vec_vrlb): New.
1244         (vec_vrlh): New.
1245         (vec_vrlw): New.
1246         (vec_vrfin): New.
1247         (vec_vrsqrtefp): New.
1248         (vec_vsel): New.
1249         (vec_vslb): New.
1250         (vec_vslh): New.
1251         (vec_vslw): New.
1252         (vec_vsldoi): New.
1253         (vec_vsl): New.
1254         (vec_vslo): New.
1255         (vec_vspltb): New.
1256         (vec_vsplth): New.
1257         (vec_vspltw): New.
1258         (vec_vspltisb): New.
1259         (vec_vspltish): New.
1260         (vec_vspltisw): New.
1261         (vec_vsrb): New.
1262         (vec_vsrh): New.
1263         (vec_vsrw): New.
1264         (vec_vsrab): New.
1265         (vec_vsrah): New.
1266         (vec_vsraw): New.
1267         (vec_vsr): New.
1268         (vec_vsro): New.
1269         (vec_stvx): New.
1270         (vec_stvebx): New.
1271         (vec_stvehx): New.
1272         (vec_stvewx): New.
1273         (vec_stvxl): New.
1274         (vec_vsububm): New.
1275         (vec_vsubuhm): New.
1276         (vec_vsubuwm): New.
1277         (vec_vsubfp): New.
1278         (vec_vsubcuw): New.
1279         (vec_vsububs): New.
1280         (vec_vsubsbs): New.
1281         (vec_vsubuhs): New.
1282         (vec_vsubshs): New.
1283         (vec_vsubuws): New.
1284         (vec_vsubsws): New.
1285         (vec_vsum4ubs): New.
1286         (vec_vsum4sbs): New.
1287         (vec_vsum4shs): New.
1288         (vec_vsum2sws): New.
1289         (vec_vsumsws): New.
1290         (vec_vrfiz): New.
1291         (vec_vupkhsb): New.
1292         (vec_vupkhpx): New.
1293         (vec_vupkhsh): New.
1294         (vec_vupklsb): New.
1295         (vec_vupklpx): New.
1296         (vec_vupklsh): New.
1297         (vec_vxor): New.
1298
1299 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
1300
1301         PR c/5430
1302         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
1303         added literals from substracted literals.
1304         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
1305         (fold) [associate]: Preserve MINUS_EXPR if needed.
1306
1307 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
1308
1309         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
1310         are obsoleted.
1311
1312 2002-04-23  Tom Tromey  <tromey@redhat.com>
1313
1314         * gcc.c: Added --resource.  For PR java/6314.
1315
1316 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1317
1318         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
1319         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
1320         these libraries.
1321
1322 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1323
1324         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
1325
1326 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1327
1328         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
1329         workaround.
1330         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
1331         (ix86_expand_clrstr): Fix typo.
1332         * loop.c (gen_load_of_final_value): New.
1333         (loop_givs_rescan, strength_reduce, check_dbra_loop):
1334         Use it.
1335
1336 2002-04-23  Roger Sayle  <roger@eyesopen.com>
1337
1338         * builtins.c (builtin_memset_gen_str): New function.
1339         (expand_builtin_memset): Optimize the case of constant length, but
1340         unknown value.
1341
1342 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
1343
1344         * config/rs6000/altivec.h (vec_step): Remove extraneous
1345         parentheses.
1346         (vec_ctu): Cast return.
1347
1348 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
1349
1350         PR target/6413
1351         * function.h: (struct function): Add profile_label_no field.
1352         (current_function_profile_label_no): Define.
1353         * function.c: (profile_label_no): New static var.
1354         (expand_function_start): Increment it, and copy to
1355         current_function_profile_label_no.
1356         * output.h (profile_label_no): Delete.
1357         * final.c (profile_label_no): Delete.
1358         (profile_function): Use current_function_profile_label_no.
1359         (final_end_function): Don't increment profile_label_no here.
1360         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
1361         profile_label_no with current_function_profile_label_no.
1362         * config/pa/pa.c (current_function_number): Delete.
1363         (pa_output_function_prologue): Don't output profile label here.
1364         (hppa_profile_hook): Use label_no param rather than
1365         current_function_number.
1366         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
1367         * config/pa/pa.h: .. here.
1368         (FUNCTION_PROFILER): Output profile label here.
1369
1370 2002-04-22  Eric Christopher  <echristo@redhat.com>
1371
1372         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
1373         patch of 2002-04-09 due to binutils issues.
1374         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
1375
1376 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1377
1378         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
1379         constraint to 'o' for m=r and r=m alternatives.
1380         ("*movv8hi_internal1"): Same.
1381         ("*movv16qi_internal1"): Same.
1382         ("*movv4sf_internal1"): Same.
1383
1384 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
1385
1386         * rtl.h (RTX_FLAG): New macro.
1387         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
1388         * final.c (alter_subreg): Use macro to access rtx flag.
1389         * integrate.c (copy_rtx_and_substitute): Use new access macro.
1390         * print-rtl.c (print_rtx): Use new access macro.
1391
1392         * cse.c (insert): Check rtx code before accessing flag.
1393
1394         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
1395         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
1396         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
1397         convert_const_symbol_ref, make_canonical, make_alternative_compare,
1398         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
1399         simplify_test_exp, optimize_attrs, simplify_by_exploding,
1400         find_and_mark_used_attributes, unmark_used_attributes,
1401         add_values_to_cover, simplify_with_current_value,
1402         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
1403         copy_rtx_unchanging, main): Use new access macros.
1404
1405 2002-04-22  Tom Rix  <trix@redhat.com>
1406
1407         * expmed.c (init_expmed): Generate shifted constant once.
1408
1409 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
1410
1411         * c-lex.c (lex_charconst): Call convert to get constant in
1412         proper type; don't just smash the type field.
1413         Fixes PR c/6300.
1414
1415         * config.gcc: Add list of obsolete configurations.  Disallow
1416         building these without --enable-obsolete.
1417         * doc/install.texi: Document --enable-obsolete and obsoletion
1418         policy.  Mention obsoletion of individual targets in
1419         appropriate places.
1420
1421 2002-04-22  Richard Henderson  <rth@redhat.com>
1422
1423         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
1424
1425 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
1426
1427         PR f/6138.
1428         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
1429         (walk_fixup_memory_subreg): Likewise.
1430         (fixup_var_refs_insn): Adjust accordingly.
1431         (fixup_var_refs_1): Likewise.
1432
1433 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
1434
1435         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
1436         LIBPATH_ARCH64_SPEC): Define.
1437         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
1438         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
1439         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
1440         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
1441
1442 2002-04-22      Joel Sherrill <joel@OARcorp.com>
1443
1444         * gthr-rtems.h: Correct prototypes to remove warnings.
1445
1446 2002-04-22  Richard Henderson  <rth@redhat.com>
1447
1448         PR c/6344
1449         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
1450
1451         * gcse.c (free_insn_expr_list_list): New.
1452         (clear_modify_mem_tables): Use it.  Fix bit set usage.
1453         (canon_list_insert): Use EXPR_LISTs for expressions.
1454         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
1455
1456 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1457
1458         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
1459         file change and include code to _cpp_pop_buffer.
1460         * cpphash.h (struct pending_option): Predeclare.
1461         (struct cpp_reader): New member next_include_file.
1462         (_cpp_pop_file_buffer): Update.
1463         (_cpp_push_next_buffer): Update, rename.
1464         * cppinit.c (cpp_destroy): Free include chain and pending here.
1465         (cpp_finish_options): Simplify.
1466         (_cpp_push_next_buffer): Rename and clean up.
1467         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
1468         Clarify.
1469         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
1470
1471 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1472
1473         * config/rs6000/altivec.h (vec_xor): Add variant for both args
1474         being vector signed int.
1475         (vec_andc): Same.
1476         (vec_xor): Add variant for both args being vector signed char.
1477         Remove redundant variant.
1478         (vec_andc): Same.
1479
1480 2002-04-21  David S. Miller  <davem@redhat.com>
1481
1482         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
1483         compare mode in output RTL.
1484
1485 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
1486
1487         * config/rs6000/rs6000.c (rs6000_override_options): Correct
1488         style and formatting of previous patch.
1489
1490 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
1491
1492         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
1493         flag_pic for ABI_AIX.
1494
1495 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1496
1497         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
1498         * cppfiles.c (read_include_file): Similarly.
1499         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
1500         uxstrdup ustrchr, ufputs): Similarly.
1501         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
1502         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
1503         cpp_ideq, parse_identifier, parse_number): Similarly.
1504         * cpplib.c (struct directive, dequote_string, D, run_directive,
1505         cpp_push_buffer): Similarly.
1506         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
1507         _cpp_create_definition, check_trad_stringification,
1508         cpp_macro_definition): Similarly.
1509
1510 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1511
1512         * cppmacro.c (funlike_invocation_p): Don't step back
1513         over CPP_EOF.
1514
1515 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
1516
1517         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
1518         labelno.
1519
1520 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1521
1522         * doc/invoke.texi: Remove Chill references.
1523         * doc/gcc.texi: Update last modified date.
1524
1525 2002-04-20  Kazu Hirata  <kazu@hxi.com>
1526
1527         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
1528         push and pop.  Replace add.l with add.w.
1529
1530 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1531
1532         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
1533         multiply instructions for H8/300H case.
1534
1535 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1536
1537         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
1538         Bum three instructions from each routine.
1539
1540 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1541
1542         * Makefile.in: Update.
1543         * decl.c (push_c_function_context, pop_c_function_context,
1544         mark_c_function_context): Rename for consistency.
1545         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
1546         * c-tree.h (push_c_function_context, pop_c_function_context,
1547         mark_c_function_context): Rename for consistency.
1548         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1549         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1550         * function.c (init_lang_status, save_lang_status,
1551         restore_lang_status, mark_lang_status, free_lang_status):
1552         Move to langhooks.h.
1553         (push_function_context_to, pop_function_context_from,
1554         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
1555         Update.
1556         * function.h (init_lang_status, save_lang_status,
1557         restore_lang_status, mark_lang_status, free_lang_status):
1558         Move to langhooks.h.
1559         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
1560         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1561         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
1562         LANG_HOOKS_FUNCTION_INITIALIZER): New.
1563         (LANG_HOOKS_INITIALIZER): Update.
1564         (lhd_do_nothing_f): New.
1565         * langhooks.h (struct lang_hooks_for_functions): New.
1566         (struct lang_hooks): New hooks.
1567         * langhooks.c (lhd_do_nothing_f): New.
1568 objc:
1569         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1570         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1571
1572 2002-04-19  David S. Miller  <davem@redhat.com>
1573
1574         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
1575         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
1576
1577 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1578
1579         PR optimization/3756
1580         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
1581         x = ((int) y < 0) ? cst1 : cst2.
1582
1583 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1584
1585         PR c/6358
1586         * function.c: Reapply patch for c/6358.
1587         (expand_function_end): Copy decl_rtl's mode, not
1588         current_function_return_rtx mode.
1589
1590 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
1591
1592         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
1593         targets.
1594
1595 2002-04-19  Tom Tromey  <tromey@redhat.com>
1596
1597         * doc/install.texi (Specific): Update status of Solaris 2.8.
1598         For PR libgcj/6158.
1599
1600 2002-04-19  Andreas Schwab  <schwab@suse.de>
1601
1602         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
1603         (PUT_REAL): Restore old definition.
1604
1605 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1606             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1607
1608         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
1609         binutils 2.11.2 and higher generate smaller binaries than Sun's
1610         native tools.
1611
1612 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
1613
1614         PR c++/6352
1615         * toplev.c (rest_of_compilation): Do not defer functions for which
1616         TREE_SYMBOL_REFERENCED has already been set.
1617
1618 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
1619
1620         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
1621         alternative.
1622
1623 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1624
1625         * builtins.c: Include langhooks.h.
1626         (lang_type_promotes_to): Remove.
1627         (expand_builtin_va_arg): Use new hook.
1628         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
1629         (simple_type_promotes_to): Move to c-typeck.c.
1630         * c-common.h (simple_type_promotes_to): Remove.
1631         * c-decl.c (duplicate_decls, grokdeclarator): Update.
1632         * c-format.c: Include langhooks.h.
1633         (check_format_types): Update.
1634         * c-tree.h (c_type_promotes_to): New.
1635         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
1636         (type_lists_compatible_p): Update.
1637         * langhooks-def.h (lhd_type_promotes_to): New.
1638         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
1639         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1640         * langhooks.c (lhd_type_promotes_to): New.
1641         * langhooks.h (struct lang_hooks_for_types): New hook.
1642         * tree.h (lang_type_promotes_to): Remove.
1643 objc:
1644         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1645
1646 2002-04-18  Richard Henderson  <rth@redhat.com>
1647
1648         * function.c: Revert patch for c/6358.
1649
1650 2002-04-18  Richard Henderson  <rth@redhat.com>
1651
1652         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
1653         blocks.  Handle multiple references to the TRAP block.  Handle
1654         non-adjacent THEN and OTHER blocks.
1655
1656 2002-04-18  Richard Henderson  <rth@redhat.com>
1657
1658         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
1659         crash with no type for by-mode libcalls.
1660
1661         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
1662
1663 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
1664
1665         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
1666         __xtensa_nonlocal_goto): Use a syscall instructions to flush
1667         the register windows.
1668
1669 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1670
1671         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
1672         appropriate.  Document need for extended precision even when
1673         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
1674         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
1675         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
1676         instead of relying on later syntax error when REAL_WIDTH > 5.
1677         * real.c: Define NE based only on whether or not we have a
1678         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
1679         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
1680         define GET_REAL and PUT_REAL as simple memcpy operations; no
1681         need to byteswap or round.
1682         Use #error instead of #ifdef-ing out the entire file, for
1683         prompt error detection.
1684
1685         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
1686
1687 2002-04-18  David S. Miller  <davem@redhat.com>
1688
1689         * config/sparc/sparc.h (BRANCH_COST): Define.
1690
1691         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
1692         does it.
1693
1694 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
1695
1696         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
1697         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
1698         propagate_block calls after relaxation loop using new variable
1699         stabilized_prop_flags.
1700
1701 2002-04-18  Richard Henderson  <rth@redhat.com>
1702
1703         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
1704         (ia64_va_arg): Expect variable sized types by reference.
1705         * config/ia64/ia64-protos.h: Update.
1706         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
1707         ia64_function_arg_pass_by_reference.
1708
1709 2002-04-18  Richard Henderson  <rth@redhat.com>
1710
1711         * ifcvt.c: Include except.h.
1712         (block_has_only_trap): Break out from find_cond_trap.
1713         (find_cond_trap): Use it.  Always delete the trap block.
1714         (merge_if_block): Allow then block null.  Be less simplistic about
1715         what insns can end a block.
1716         * Makefile.in (ifcvt.o): Depend on except.h.
1717
1718         * config/ia64/ia64.md (trap, conditional_trap): New.
1719
1720 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1721
1722         PR c/6358
1723         * function.c (assign_parms): Assign hard current_function_return_rtx
1724         register here...
1725         (expand_function_end): ...not here.
1726
1727 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1728
1729         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1730         * c-tree.h (c_incomplete_type_error): New.
1731         * c-typeck.c (require_complete_type, build_component_ref): Update.
1732         (incomplete_type_error): Rename.
1733         * langhooks-def.h (lhd_incomplete_type_error): New.
1734         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
1735         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1736         * langhooks.c (lhd_incomplete_type_error): New.
1737         * langhooks.h (struct lang_hooks_for_types): New hook.
1738         * tree.c (size_in_bytes): Use new hook.
1739         * tree.h (incomplete_type_error): Remove.
1740 objc:
1741         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1742
1743 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1744
1745         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
1746         TARGET_FLOAT_FORMAT blocks.
1747
1748 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1749
1750         * doc/install.texi (Downloading the source): Do not mention Chill
1751         any longer, but mention Ada.
1752         (Configuration): Do not mention Chill any longer.
1753
1754 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
1755
1756         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
1757
1758 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
1759
1760         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
1761         in last patch.
1762
1763 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1764
1765         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
1766         instead of unsigned_type.
1767
1768 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
1769
1770         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
1771         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
1772         later.
1773
1774 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
1775
1776         * attribs.c (vector_type_node_list): New static variable.
1777         (handle_vector_size_attribute): Use it to avoid generating a
1778         new type node each time we are called.
1779
1780         * combine.c (subst): Avoid trying to make a vector mode subreg of
1781         an integer constant.
1782         (gen_lowpart_for_combine): Likewise.
1783
1784 2002-04-18  Roger Sayle  <roger@eyesopen.com>
1785             Jakub Jelinek  <jakub@redhat.com>
1786
1787         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
1788         for integer constant c (if x has unsigned type or sign bit is not
1789         set in c).  This folds the zero/sign extension into the bit-wise and
1790         operation.
1791
1792 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1793
1794         PR middle-end/6205
1795         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
1796         otherwise xorps.
1797
1798 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
1799
1800         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
1801
1802 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
1803
1804         * gcc.c (read_specs): Detect and fail if an attempt is made to
1805         rename a spec string to an already existing string.
1806
1807 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1808
1809         * config/s390/s390.c (legitimize_pic_address): Do not generate
1810         illegal address constant without CONST.
1811
1812 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1813
1814         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
1815         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
1816
1817 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1818
1819         PR optimization/6305
1820         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
1821         to make sure previous reloads are taken into account.  Generate
1822         better code if one operand is an in-range immediate constant.
1823
1824 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
1825
1826         * doc/install.texi (Building): libgcj requires GNU make.
1827
1828 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
1829
1830         PR bootstrap/6315
1831         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
1832         even if hard quad and register is not floating.
1833         (movtf reg<-mem split): Disallow splitting if hard quad and
1834         register is floating.
1835         (movtf mem<-reg split): Likewise.
1836         * config/sparc/sparc.c (fp_register_operand): New predicate.
1837         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
1838
1839 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
1840
1841         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
1842         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
1843         (unprotoize.o): Ditto.  Build from protoize.c.  Define
1844         UNPROTOIZE on command line.
1845         * protoize.c: Include cppdefault.h.  Delete include_defaults.
1846         (in_system_include_dir): Use cpp_include_defaults (defined in
1847         cppdefault.o).
1848         * unprotoize.c: Delete file.
1849
1850 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
1851
1852         * config/rs6000/altivec.h (vec_ld): Add array variants.
1853         (vec_lde): Same.
1854         (vec_ldl): Same.
1855
1856 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
1857             Aldy Hernandez <aldyh@redhat.com>
1858
1859         * config/rs6000/altivec.h: Define __ALTIVEC__.
1860         (bool): New.
1861         (__pixel): New.
1862         (pixel): New.
1863         (vec_cfux): New.
1864         (vec_vmaddfp): New.
1865         (vec_vsldoi): New.
1866         Add parentheses to all macro arguments.
1867
1868 2002-04-16  Richard Henderson  <rth@redhat.com>
1869
1870         PR c++/6320
1871         * except.c (remove_eh_handler): Insert inner regions at beginning
1872         of sibling chain.  Refactor expressions.
1873
1874 2002-04-16  Richard Henderson  <rth@redhat.com>
1875
1876         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
1877         * config/sparc/sol2-gas-bi.h: New file.
1878         * config.gcc (sparc*-solaris): Add it as needed.
1879         * configure.in (AS_SPARC64_FLAG): Remove check.
1880         * config.in, configure: Regenerate.
1881
1882         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
1883
1884 2002-04-16  Richard Henderson  <rth@redhat.com>
1885
1886         * config/mips/mips.c (override_options): Don't override N32 for
1887         a 64-bit ISA.
1888
1889         PR 6202
1890         * config/mips/mips.md (can_delay): Split out of existing define_delays.
1891         (HILO_delay): Set can_delay false.
1892
1893 2002-04-16  Dale Johannesen <dalej@apple.com>
1894
1895         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
1896         instruction addresses.
1897         (rs6000_output_function_epilogue): Likewise.
1898
1899 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
1900
1901         * c-parse.in (poplevel, compstmt_start,
1902         compstmt_primary_start): Add ending ';', in accordance
1903         with POSIX.
1904
1905 2002-04-16  Richard Henderson  <rth@redhat.com>
1906
1907         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
1908         Adjust tm_file order to get TARGET_DEFAULT set properly.
1909         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
1910         * doc/install.texi (sparc-solaris): Update.
1911
1912 2002-04-16  Dale Johannesen <dalej@apple.com>
1913
1914         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
1915         comparison operands do not match each other or if modes of
1916         conditions do not match result.
1917
1918 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
1919
1920         PR target/6305
1921         * config/s390/s390.md (mulsidi3): Set both subregs of the
1922         multiword register.
1923
1924 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
1925
1926         * config/rs6000/altivec.h (vec_addc): Type check.
1927
1928 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
1929
1930         PR middle-end/6279
1931         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
1932
1933         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
1934
1935 2002-04-15  Richard Henderson  <rth@redhat.com>
1936
1937         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
1938         call_really_used_regs too.
1939
1940 2002-04-15  Richard Henderson  <rth@redhat.com>
1941
1942         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
1943
1944 2002-04-15  David S. Miller  <davem@redhat.com>
1945
1946         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
1947         as being CLOBBERed.
1948
1949 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
1950
1951         PR c/6290
1952         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
1953         CONST_VECTOR is { 0, ... 0 }.
1954
1955 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
1956
1957         * doc/install.texi (Installing GCC: Configuration): Clarify
1958         the only supported ways to configure gcc.
1959
1960 2002-04-15  Roland McGrath  <roland@frob.com>
1961
1962         * config.gcc (alpha*-*-gnu*): New target configuration.
1963         * config/alpha/gnu.h: New file for it.
1964         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
1965
1966 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
1967
1968         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
1969         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
1970         * tree.h (expand_start_stmt_expr): Update prototype.
1971         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
1972         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
1973         on the STMT_EXPR created for the inline function.
1974
1975 2002-04-15  Richard Henderson  <rth@redhat.com>
1976
1977         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
1978         config/i386/linux-aout.h, config/i386/linux-oldld.h,
1979         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
1980         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
1981         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
1982         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
1983         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
1984         Define __gnu_linux__, not gnu_linux.
1985         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
1986
1987 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
1988
1989         Remove Chill front end.
1990         * gcc.c (default_compilers): Remove Chill entries.
1991         * ch: Remove directory.
1992         * doc/frontends.texi: Remove information about Chill.
1993         * doc/sourcebuild.texi: Likewise.
1994         * doc/standards.texi: Likewise.
1995
1996 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
1997
1998         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
1999         (LONGLONG_STANDALONE): Define.
2000
2001 2002-04-15  David S. Miller  <davem@redhat.com>
2002
2003         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
2004         Call emit_library_call with LCT_NORMAL.
2005         (sparc_initialize_trampoline): Use LCT_foo instead of
2006         magic constant in emit_library_call invocations.
2007         (sparc64_initialize_trampoline): Likewise.
2008         (sparc_profile_hook): Likewise.
2009         * config/sparc/sparc.md: Likewise.
2010
2011         * config/sparc/sparc.c (sparc_extra_constraint_check):
2012         Fix type of argument 'c'.
2013         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
2014         Likewise.
2015
2016 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2017
2018         * diagnostic.h (output_buffer_state): Redefine.
2019         (output_format_decoder): New macro.
2020         (output_prefixing_rule): Likewise.
2021         (output_line_cutoff): Likewise.
2022         (diagnostic_format_decoder): Adjust.
2023         (diagnostic_prefixing_rule): Likewise.
2024         (diagnostic_line_cutoff): Likewise.
2025         (diagnostic_state): Likewise.
2026         (diagnostic_kind_count): Likewise.
2027         (diagnostic_buffer): Now a macro.
2028
2029         * diagnostic.c (diagnostic_buffer): Remove definition.
2030         (output_is_line_wrapping): Adjust.
2031         (set_real_maximum_length): Likewise.
2032         (output_set_maximum_length): Likewise.
2033         (init_output_buffer): Likewise.
2034         (lhd_print_error_function): Likewise.
2035         (output_do_verbatim): Likewise.
2036
2037 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2038
2039         * cpperror.c (print_location): Don't print include chain
2040         if line == 0.
2041         (cpp_begin_message): Update to use DL_ macros.
2042         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2043         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2044         cpp_notice, cpp_notice_from_errno): Remove.
2045         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2046         level.
2047         (cpp_errno): New.
2048         * cppexp.c (CPP_ICE): Remove.
2049         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
2050         lex, integer_overflow, _cpp_parse_expr): Update.
2051         * cppfiles.c (read_include_file, find_include_file,
2052         handle_missing_header, _cpp_read_file, remap_filename): Update.
2053         * cpphash.h (enum error_type): Remove.
2054         (_cpp_begin_message): Update.
2055         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
2056         cpp_handle_option, cpp_post_options): Update.
2057         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
2058         skip_whitespace, parse_identifier, parse_slow, parse_string,
2059         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
2060         cpp_interpret_charconst): Update.
2061         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
2062         lex_macro_node, do_undef, glue_header_name, parse_include,
2063         do_include_common, read_flag, do_line, do_linemarker, do_ident,
2064         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
2065         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
2066         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
2067         _cpp_pop_buffer, do_diagnostic): Update.
2068         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
2069         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
2070         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2071         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2072         cpp_notice, cpp_notice_from_errno): Remove.
2073         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2074         level.
2075         (cpp_errno): New.
2076         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
2077         collect_args, enter_macro_context, save_parameter, parse_params,
2078         _cpp_create_definition, check_trad_stringification,
2079         cpp_macro_definition): Update.
2080         * cppmain.c (cpp_preprocess_file): Update.
2081         * fix-header.c (read_scan_file): Update.
2082
2083 2002-04-14  Andreas Schwab  <schwab@suse.de>
2084
2085         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
2086
2087 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2088
2089         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
2090
2091 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2092
2093         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
2094         not gnu_hurd.
2095
2096 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
2097
2098         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
2099
2100 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2101
2102         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
2103         sparc-elf and sparc-rtems targets.
2104
2105 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2106
2107         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
2108         defined, and __gnu_hurd__ wherever __GNU__ is defined.
2109         * arm/linux-elf.h: Likewise.
2110         * cris/aout.h: Likewise.
2111         * cris/linux.h: Likewise.
2112         * i370/linux.h: Likewise.
2113         * i386/gnu.h: Likewise.
2114         * i386/linux-aout.h: Likewise.
2115         * i386/linux-oldld.h: Likewise.
2116         * i386/linux.h: Likewise.
2117         * i386/linux64.h: Likewise.
2118         * ia64/linux.h: Likewise.
2119         * m68k/linux-aout.h: Likewise.
2120         * m68k/linux.h: Likewise.
2121         * mips/linux.h: Likewise.
2122         * pa/pa-linux.h: Likewise.
2123         * pj/linux.h: Likewise.
2124         * rs6000/sysv4.h: Likewise.
2125         * s390/linux.h: Likewise.
2126         * sh/linux.h: Likewise.
2127         * sparc/linux-aout.h: Likewise.
2128         * sparc/linux.h: Likewise.
2129         * sparc/linux64.h: Likewise.
2130         * xtensa/linux.h: Likewise.
2131
2132 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
2133
2134         * stmt.c (check_unique_operand_names): Expect operand names to
2135         be strings rather than identifiers.  Use simple_cst_equal to
2136         compare them.
2137         (resolve_operand_name_1): Make same identifier to string change here.
2138         * c-parse.in (asm_operand): Convert a named operand into a string.
2139         * cp/parse.y (asm_operand): Likewise.
2140
2141 2002-04-13  Andreas Schwab  <schwab@suse.de>
2142
2143         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
2144
2145 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
2146
2147         Revert these changes:
2148
2149         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2150
2151         PR c++/5571
2152         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2153
2154 2002-04-12  Richard Henderson  <rth@redhat.com>
2155
2156         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
2157         (sparc*-*-solaris): Clean up header files.
2158         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
2159         and plan on generating 64-bit code.
2160         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
2161         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
2162         * config/sparc/sol2-sld-64.h: Rename ...
2163         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
2164         for AS_SPARC64_FLAG not defined.
2165         * config/sparc/sol2-gld-bi.h: New.
2166         * config/sparc/sol2-sld.h: Remove.
2167         * config/sparc/sol26-sld.h: New.
2168         * config/sparc/sol2.h: Tidy comments.
2169         * doc/install.texi: Document sparc-solaris configury changes.
2170
2171 2002-04-12  Richard Henderson  <rth@redhat.com>
2172
2173         * recog.c (offsettable_address_p): Match the logic in adjust_address.
2174
2175         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
2176         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
2177
2178 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2179
2180         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
2181
2182 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
2183
2184         * pa.c (pa_can_combine_p): Call extract_insn before calling
2185         constrain_operands.
2186
2187 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
2188
2189         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
2190         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
2191         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
2192         (CPP_PREDEFINES): Handle __declspec.
2193         * config/i386/t-interix (USER_H): Remove.
2194
2195 2002-04-12  DJ Delorie  <dj@redhat.com>
2196
2197         * integrate.c (compare_blocks): Make comparisons safe for when
2198         sizeof(int) < sizeof(char *).
2199         (find_block): Likewise.
2200
2201 2002-04-12  Jan Hubicka  <jh@suse.cz>
2202             David Edelsohn  <edelsohn@gnu.org>
2203
2204         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
2205         registers.
2206         (symbol_ref_operand): New.
2207         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
2208         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
2209
2210 2002-04-12  Andreas Schwab  <schwab@suse.de>
2211
2212         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
2213         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
2214         overrides the definition in config/svr4.h.
2215
2216 2002-04-12      Eric Norum <eric.norum@usask.ca>
2217
2218         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2219         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
2220         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
2221         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
2222         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
2223         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
2224         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
2225         definitions to config/rtems.h and make the targets more similar.
2226
2227 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2228
2229         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
2230         POINTERS_EXTEND_UNSIGNED.
2231         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
2232         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
2233
2234         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
2235         not specified.
2236
2237 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
2238
2239         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
2240         depends on TARGET_SHMEDIA, not TARGET_SH5.
2241
2242 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
2243
2244         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
2245         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
2246
2247 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2248
2249         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
2250         no r0 clobber.
2251
2252 2002-04-12  Andreas Schwab  <schwab@suse.de>
2253
2254         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
2255
2256 2002-04-12  Richard Henderson  <rth@redhat.com>
2257
2258         PR bootstrap/4191
2259         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
2260
2261         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
2262         modes spanning multiple hard regs.
2263
2264         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
2265
2266 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2267
2268         * pa.c (pa_output_function_prologue): Don't accumulate the total
2269         number of code bytes when using TARGET_64BIT, or gas, SOM and not
2270         the portable runtime.
2271         (output_deferred_plabels): Handle 64bit plabels.
2272         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
2273         generating pic code using the GAS assembler for object formats that
2274         are not SOM (ie., ELF32 and ELF64).
2275         (output_millicode_call): Check attribute type if attribute length is 28.
2276         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
2277         dbr_sequence_length once.
2278         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
2279         dbr_sequence_length once.
2280         * pa.h (TARGET_SOM): Define if not defined.
2281         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
2282         with GAS and not SOM.
2283         (jump, call_internal_reg, call_value_internal_reg): Likewise.
2284         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
2285
2286 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2287
2288         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
2289         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
2290         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
2291         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
2292         elfos.h and dbxelf.h values are fine now.
2293         * config/i386/freebsd.h, config/alpha/freebsd.h
2294         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
2295
2296 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2297
2298         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
2299         or set Acpu or Amachine.  Reformat.
2300         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2301         define.
2302         (LINK_SPEC): Do not need to undef.
2303         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
2304         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
2305         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2306         define.
2307         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
2308         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
2309         (LINK_SPEC): Do not need to undef.
2310         (DONT_USE_BUILTIN_SETJMP): Do not define.
2311         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
2312         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
2313         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
2314         Remove trailing spaces.
2315         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
2316         __ELF__, or set Acpu or Amachine.  Reformat.
2317         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2318         define.
2319
2320 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2321
2322         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
2323         all other *-*-freebsd* targets.
2324
2325 2002-04-11  Richard Henderson  <rth@redhat.com>
2326
2327         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
2328
2329 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2330
2331         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
2332         Include {cpu}/{cpu}.h thru tm_file.
2333         (alpha*-*-linux*ecoff): Remove target.
2334         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
2335         (LINK_SPEC): Remove, is not OS independent.
2336         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
2337         (LINK_SPEC): Do not need to #undef any longer.
2338         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
2339         any longer.
2340         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
2341         __ELF__.
2342         (LINK_SPEC): Moved here from alpha/elf.h.
2343         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
2344         SUB_CPP_PREDEFINES.
2345         * config/alpha/linux-ecoff.h: Remove.
2346         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
2347         (CPP_SPEC): Define _POSIX_SOURCE as needed.
2348         (CPP_SUBTARGET_SPEC): Do not define.
2349         (LINK_SPEC): Do not need to #undef any longer.
2350         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
2351         * config/alpha/vms.h: Likewise.
2352
2353 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
2354
2355         * doc/extend.texi: Remove old claim that typedefs cannot have
2356         an alignment attribute.
2357
2358 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2359
2360         PR optimization/6177
2361         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
2362         bitpos is 0 and bitsize CONCAT size.
2363
2364 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2365
2366         PR c/6223
2367         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
2368
2369 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
2370
2371         * config/alpha/freebsd.h: Minor reformatting.
2372         (CPP_SPEC): Define ELF and add cpp_subtarget.
2373         (ASM_SPEC): No longer needed.
2374
2375 2002-04-11  Richard Henderson  <rth@redhat.com>
2376
2377         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
2378         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
2379         (dimode mem/zero splitter): New.
2380
2381 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
2382
2383         * config/cris/cris.c (cris_override_options): Tweak error message
2384         for PIC not implemented.
2385
2386         * config/cris/cris.h: Tweak comments related to parameter-passing.
2387
2388         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
2389
2390 2002-04-10  Richard Henderson  <rth@redhat.com>
2391
2392         * except.c (add_ehl_entry): Allow duplicates after landing pad
2393         creation.
2394
2395 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
2396
2397         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
2398
2399 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
2400
2401         * c-decl.c (c_init_decl_processing): Move generation of
2402         decls for g77_integer_type_node and friends from here ...
2403         * c-common.c (c_common_nodes_and_builtins): ... to here.
2404
2405 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
2406
2407         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
2408         is only used as frame pointer when frame_pointer_needed is true.
2409
2410 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
2411
2412         PR target/817
2413         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
2414         for the fact that the pool entry uses two words.
2415         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
2416         1k bytes.
2417         (movdf_soft_insn): Similarly.
2418         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
2419         for the fact that the pool entry uses three words.
2420
2421 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
2422
2423         * config/mips/mips.c (mips_va_arg): When using the struct version
2424         of the EABI va_list, allow arguments in the register save area to
2425         take up less room than a stack argument.
2426
2427 2002-04-10  Richard Henderson  <rth@redhat.com>
2428
2429         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
2430         if EXPAND_INITIALIZER.
2431
2432 2002-04-09  Richard Henderson  <rth@redhat.com>
2433
2434         * config/alpha/alpha.md (movdi_er_maybe_g): New.
2435         * config/alpha/alpha.c (alpha_expand_mov): Use it.
2436
2437 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
2438
2439         PR optimization/6233
2440         * rtlanal.c (pure_call_p): New function.
2441         * rtl.h (pure_call_p): Declare.
2442         * loop.c (prescan_loop): Use it to set has_nonconst_call.
2443         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
2444
2445 2002-04-09  Eric Christopher  <echristo@redhat.com>
2446
2447         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
2448         information to .comm directive.
2449
2450 2002-04-09  Richard Henderson  <rth@redhat.com>
2451
2452         PR c/5078
2453         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
2454
2455 2002-04-09  Richard Henderson  <rth@redhat.com>
2456
2457         * basic-block.h (flow_delete_block_noexpunge): Declare.
2458         (expunge_block_nocompact): Declare.
2459         * cfg.c (expunge_block_nocompact): Split out from ...
2460         (expunge_block): ... here.
2461         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
2462         (flow_delete_block_noexpunge): Split out from ...
2463         (flow_delete_block): ... here.
2464         * cfgcleanup.c (delete_unreachable_blocks): Compact while
2465         removing dead blocks.
2466         * except.c (exception_handler_labels): Remove.
2467         (exception_handler_label_map): New.
2468         (struct eh_region): Add aka member.
2469         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
2470         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
2471         (for_each_eh_label, for_each_eh_label_1): New.
2472         (init_eh): Register exception_handler_label_map.
2473         (free_eh_status): Use free_region.
2474         (find_exception_handler_labels): Use the map, not the list.
2475         (remove_exception_handler_label): Likewise.
2476         (maybe_remove_eh_handler): Likewise.
2477         (remove_eh_handler): Use the region aka bitmap.
2478         * except.h (exception_handler_labels): Remove.
2479         (for_each_eh_label): Declare.
2480         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
2481         * loop.c (invalidate_loops_containing_label): New.
2482         (find_and_verify_loops): Use it.  Use for_each_eh_label.
2483         * sched-rgn.c (is_cfg_nonregular): Use
2484         current_function_has_exception_handlers.
2485
2486 2002-04-09  Richard Henderson  <rth@redhat.com>
2487
2488         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
2489         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
2490         Do not return changed status.
2491         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
2492         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
2493         New functions that do return changed status.
2494         * sbitmap.h: Update decls.
2495         * gcse.c, lcm.c: Use _cg functions as needed.
2496
2497 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2498
2499         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
2500         (sh64-*-elf*, sh-*-rtemself*): Likewise.
2501         * config/sh/embed_bb.c: New file.
2502         * config/sh/embed-elf.h: New file.
2503         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
2504         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
2505         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2506         __PTRDIFF_TYPE__ .
2507         (SUBTARGET_CPP_PTR_SPEC): Don't define.
2508         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
2509         Add subtarget_asm_endian_spec.
2510         (ASM_SPEC): Use subtarget_asm_endian_spec.
2511         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
2512         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
2513         (WCHAR_UNSIGNED): Define.
2514         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
2515         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2516         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
2517         Fix value.
2518         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
2519         (sh_adjust_cost): Likewise.
2520         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2521         __PTRDIFF_TYPE__ .
2522         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
2523         (WCHAR_TYPE_SIZE): Likewise.
2524         (ASM_SPEC): Use subtarget_asm_endian_spec.
2525         (SH_ELF_WCHAR_TYPE): #undef/ #define.
2526         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
2527         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
2528         (MAX_WCHAR_TYPE_SIZE): Don't #define .
2529         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
2530         (USER_LABEL_PREFIX): Don't #undef /#define .
2531         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2532         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
2533         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
2534         (ASM_SPEC): Likewise.
2535         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
2536         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
2537         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
2538         (LIB2FUNCS_EXTRA): Define.
2539         * t-sh64 (LIB2FUNCS_EXTRA): Define.
2540         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
2541         (LIB1ASMFUNCS_CACHE): Define.
2542         (LIB2FUNCS_EXTRA): Redefine empty.
2543
2544 2002-04-08  Richard Henderson  <rth@redhat.com>
2545
2546         * reorg.c (get_branch_condition): Use reversed_comparison_code.
2547
2548 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2549
2550         * config/m68hc11/larith.asm (__map_data_section): Fix condition
2551         and optimize for size.
2552         (__do_global_ctors): Fix pointer comparison.
2553         (__do_global_dtors): Likewise.
2554
2555 2002-04-09  David S. Miller  <davem@redhat.com>
2556
2557         * config/sparc/sparc.c (sparc_extra_constraint_check): New
2558         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
2559         allow reloading pseudos.
2560         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
2561         * config/sparc/sparc-protos.h: Declare it.
2562
2563         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
2564         unsigned comparison warning.
2565         (output_restore_regs): Mark leaf_function as unused.
2566
2567 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2568
2569         * expr.c (is_aligning_offset): New function.
2570         (expand_expr, case COMPONENT_EXPR): Call it.
2571
2572 2002-04-08  David S. Miller  <davem@redhat.com>
2573
2574         PR target/6082
2575         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
2576
2577         Make init_priority work on Sparc when using GNU ld.
2578         * config/sparc/linux.h, config/sparc/linux64.h,
2579         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
2580         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
2581         * config/sparc/sol2-gld.h: New file to do the same.
2582         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
2583         sparc/sol2-gld.h to tm_file.
2584
2585         PR optimization/4328
2586         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
2587         * doc/md.texi: Document it.
2588         * config/sparc/sparc.md (movdi_insn_sp64_novis,
2589         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
2590         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
2591         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
2592         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
2593
2594 2002-04-08  Andreas Jaeger  <aj@suse.de>
2595
2596         * stmt.c (expand_asm_operands): Revert last patch from Richard
2597         Henderson.
2598
2599 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2600
2601         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
2602         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
2603
2604 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2605
2606         * doc/contrib.texi (Contributors): Add David O'Brien.
2607
2608 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
2609
2610         * configure.in (auto-build.h): Use target_alias and build_alias
2611         when running configure.
2612         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
2613         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
2614         * configure: Regenerate.
2615
2616 2002-04-07  David S. Miller  <davem@redhat.com>
2617
2618         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
2619
2620 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2621
2622         PR 5933
2623         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
2624         generating 32-bit pic code.
2625
2626 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2627
2628         * cppinit.c (cpp_create_reader): Initialize
2629         discard_comments_in_macro_exp.
2630         (COMMAND_LINE_OPTIONS): Add "-CC" option.
2631         (cpp_handle_option): Handle "-CC" option.
2632         * cpplex.c (save_comment): If saving a C++ comment in
2633         a directive, convert it to a C comment.
2634         (_cpp_lex_direct): Pass second comment start character to
2635         save_comment to indicate comment type.
2636         * cpplib.c (_cpp_handle_directive): If processing
2637         a "#define" directive and discard_comments_in_macro_exp
2638         is false,  re-enable saving of comments.
2639         (lex_macro_node): If discard_comments_in_macro_exp is false,
2640         discard any comments before the macro identifier.
2641         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
2642         member.
2643         * cppmacro.c (cpp_get_token): If expanding a macro while
2644         processing a directive, discard any comments we might encounter.
2645         (parse_params): If discard_comments_in_macro_exp is false,
2646         ignore comments in the macro parameter list.
2647         * gcc.c (cpp_unique_options): Add "-CC" option.
2648         (option_map): Map "--comments-in-macros" to "-CC".
2649         * doc/cppopts.texi: Document "-CC" option.
2650         * f/lang-specs.h: Add "-CC" option.
2651         * testsuite/gcc.dg/cpp/maccom1.c: New test.
2652         * testsuite/gcc.dg/cpp/maccom2.c: New test.
2653         * testsuite/gcc.dg/cpp/maccom3.c: New test.
2654         * testsuite/gcc.dg/cpp/maccom4.c: New test.
2655         * testsuite/gcc.dg/cpp/maccom5.c: New test.
2656         * testsuite/gcc.dg/cpp/maccom6.c: New test.
2657
2658 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2659
2660         PR middle-end/6180
2661         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
2662
2663 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2664
2665         PR c++/5571
2666         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2667
2668         PR opt/5120
2669         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
2670         RTX_UNCHANGING_P for the functions arguments when a tail call
2671         is made.
2672
2673 2002-04-06  Jason Merrill  <jason@redhat.com>
2674
2675         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
2676         (parse_options_and_default_flags): Set them appropriately.
2677         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
2678
2679 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
2680
2681         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
2682         here.
2683
2684         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
2685         semicolon.
2686
2687         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
2688         types come in by-reference.  Fix typo in comment.
2689
2690 2002-04-05  David S. Miller  <davem@redhat.com>
2691
2692         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
2693         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
2694         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
2695         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
2696
2697 2002-04-05  David S. Miller  <davem@redhat.com>
2698
2699         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
2700         are not going to emit return instructions, emit at least a nop
2701         for the sake of sane backtraces.
2702
2703 2002-04-05  Richard Henderson  <rth@redhat.com>
2704
2705         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
2706
2707 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
2708
2709         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
2710
2711 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
2712
2713         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
2714         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
2715         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
2716
2717 2002-04-05  Andreas Schwab  <schwab@suse.de>
2718
2719         * c-convert.c: Include c-common.h.
2720         * Makefile.in (c-convert.o): Updated.
2721
2722 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2723
2724         * mklibgcc.in: Use separate libgcc.map for each multilib.
2725         * Makefile.in (distclean): Don't remove libgcc.map here.
2726
2727 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2728
2729         * Makefile.in (s-mlib): Handle --disable-multilib by separate
2730         genmultilib invocation.
2731
2732 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
2733
2734         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
2735         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
2736         to num_gprs for symmetry.
2737         * config/mips/mips.c: Adjust accordingly.
2738
2739 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2740
2741         * c-common.c (truthvalue_conversion): Rename, update.
2742         * c-common.h (c_common_truthvalue_conversion): New.
2743         * c-convert.c (convert): Update.
2744         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2745         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
2746         * c-typeck.c (build_binary_op, build_unary_op,
2747         build_conditional_expr): Update.
2748         * fold-const.c (constant_boolean_node, fold): Use langhook.
2749         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
2750         * langhooks.h (struct lang_hooks): New hook.
2751         * stmt.c (expand_decl_cleanup): Use langhook.
2752         * tree.h (truthvalue_conversion): Remove.
2753 objc:
2754         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2755
2756 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
2757
2758         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
2759         Add rules to make null object file.
2760
2761 2002-04-04  Jim Blandy  <jimb@redhat.com>
2762
2763         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
2764         macro formal parameter names.
2765
2766 2002-04-04  David S. Miller  <davem@redhat.com>
2767
2768         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
2769
2770 2002-04-04  Richard Henderson  <rth@redhat.com>
2771
2772         PR middle-end/5099
2773         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
2774         Support copies into and out of memory.  Don't accept allows_reg
2775         and allows_mem as gospel.
2776
2777 2002-04-04  Richard Henderson  <rth@redhat.com>
2778
2779         PR opt/6165
2780         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
2781         (write_dependence_p): Likewise.
2782
2783 2002-04-04  Richard Henderson  <rth@redhat.com>
2784
2785         * predict.c (estimate_bb_frequencies): Do frequency calculation
2786         with a volatile temporary.
2787
2788 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
2789
2790         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
2791
2792 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2793
2794         PR c++/6119
2795         * final.c (final_start_function): Don't bump profile_label_no here...
2796         (final_end_function): ...but here.
2797
2798 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2799
2800         * config/sparc/sparc.md (pic): New attribute.
2801         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
2802         into stack slots.
2803         (split after do_builtin_setjmp_setup): New.
2804
2805 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2806
2807         PR fortran/6106
2808         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
2809         change.
2810
2811 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2812
2813         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
2814         UNITS_PER_WORD for zero sized aggregates.
2815
2816 2002-04-03  David S. Miller  <davem@redhat.com>
2817
2818         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
2819         one-character spec for this, just use %(link_gcc_c_sequence).
2820
2821 2002-04-03  David S. Miller  <davem@redhat.com>
2822
2823         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
2824         handling.
2825
2826 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2827
2828         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
2829         (DWARF_FRAME_RETURN_COLUMN): Move.
2830         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2831         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
2832         * pa.c (except.h, predict.h): Include.
2833         (FRP): Delete.
2834         (store_reg_modify, set_reg_plus_d): Revise prototypes.
2835         (output_ascii): Add cast.
2836         (store_reg_modify): Revise to add frame notes.
2837         (set_reg_plus_d): Likewise.
2838         (compute_frame_size): Include space for eh data registers in frame if
2839         the current function calls eh_return.
2840         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
2841         function calls eh_return.  Save eh data registers if the current
2842         function calls eh_return.  Fix code to add frame notes.  Emit
2843         blockage to prevent insns with frame notes being scheduled in the
2844         delay slot of calls.
2845         (hppa_expand_epilogue): Restore eh data registers and do final stack
2846         adjustment if the current function calls eh_return.  Don't add frame
2847         notes.
2848         (output_call): Revise for change in length of call insn.  Don't do
2849         return pointer adjustment for an unconditional jump in the delay slot
2850         of a call when using frame notes.
2851         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
2852         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
2853         (ARG_POINTER_CFA_OFFSET): Define.
2854         * pa.md (return_external_pic): New pattern.
2855         (prologue): Correct formatting.  Use return_external_pic if current
2856         function calls eh_return.
2857         (call_internal_symref, call_value_internal_symref,
2858         sibcall_internal_symref, sibcall_value_internal_symref): Change default
2859         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
2860         respectively.
2861         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
2862
2863         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
2864         list of targets to check using "nop" insn.
2865         * configure: Rebuilt.
2866
2867 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
2868
2869         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
2870
2871 2002-04-03  David S. Miller  <davem@redhat.com>
2872
2873         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
2874         library sequence passed to the linker.
2875         (LINK_COMMAND_SPEC): Use it.
2876         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
2877         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
2878         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2879
2880 2002-04-03  Jason Merrill  <jason@redhat.com>
2881
2882         * except.c (struct eh_status): Remove protect_list.
2883         (begin_protect_partials, end_protect_partials): Remove.
2884         (add_partial_entry): Remove.
2885         * except.h: Remove prototypes.
2886
2887         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
2888         expand_decl_cleanup_eh.
2889
2890         PR c++/5636
2891         * tree.h (CLEANUP_EH_ONLY): New macro.
2892         * stmt.c (expand_decl_cleanup_eh): New fn.
2893         (expand_cleanups): Check CLEANUP_EH_ONLY.
2894         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
2895         Use expand_decl_cleanup_eh.
2896         (expand_stmt): Adjust.
2897         * c-common.h: Adjust prototype.
2898
2899 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
2900
2901         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
2902         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
2903         (cris_target_asm_function_epilogue): Ditto.
2904         (cris_initial_frame_pointer_offset): Ditto.
2905         (cris_simple_epilogue): Ditto.
2906         (cris_expand_builtin_va_arg): Variable-size types come in
2907         by-reference.
2908
2909 2002-04-03  David S. Miller  <davem@redhat.com>
2910
2911         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
2912         little-endian.
2913         (set_fast_math): Correct 'fsr' type.
2914
2915 2002-04-03  Richard Henderson  <rth@redhat.com>
2916
2917         PR opt/3569
2918         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
2919         * toplev.c (check_global_declarations): Use it.
2920         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
2921         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2922         (LANG_HOOKS_DECLS): Add it.
2923         * langhooks.c (lhd_warn_unused_global_decl): New.
2924         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2925         * c-objc-common.c (c_warn_unused_global_decl): New.
2926         * c-tree.h (c_warn_unused_global_decl): Declare.
2927         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2928
2929 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2930
2931         * langhooks-def.h (lhd_set_decl_assembler_name,
2932         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2933         (LANG_HOOKS_INITIALIZER): Update.
2934         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
2935         * langhooks.h (struct lang_hooks): New hook.
2936         * tree.c (set_decl_assembler_name): Move to langhooks.c.
2937         (lang_set_decl_assembler_name): Remove.
2938         (init_obstacks): Don't set hook.
2939         (decl_assembler_name): New function.
2940         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
2941         (decl_assembler_name): New.
2942         (lang_set_decl_assembler_name): Remove.
2943
2944 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
2945
2946         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
2947         works properly with .hidden symbols.
2948         * configure: Rebuilt.
2949         * config.in: Rebuilt.
2950         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2951         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
2952         properly with .hidden symbols.
2953
2954 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
2955
2956         PR middle-end/6102
2957         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
2958         USE argument.
2959
2960 2002-04-03  Richard Henderson  <rth@redhat.com>
2961
2962         PR opt/4120
2963         * sched-rgn.c (sets_likely_spilled): New.
2964         (sets_likely_spilled_1): New.
2965         (add_branch_dependences): Use it.
2966
2967 2002-04-02  Richard Henderson  <rth@redhat.com>
2968
2969         PR opt/4311
2970         * loop.h (LOOP_FIRST_PASS): New.
2971         * loop.c (strength_reduce): Mind it when deciding to unroll.
2972         * toplev.c (rest_of_compilation): Set it.
2973
2974 2002-04-02  David S. Miller  <davem@redhat.com>
2975
2976         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
2977         mems_ok_for_ldd_peep when the order of the loads being examined
2978         is reversed.
2979         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
2980         existing comment to increase comprehension of this situation.
2981
2982 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
2983
2984         * config/sh/sh.md: Don't use union real_extract.
2985
2986 2002-04-02  Richard Henderson  <rth@redhat.com>
2987
2988         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
2989
2990 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
2991
2992         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
2993         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
2994         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
2995         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
2996         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
2997         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
2998         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
2999         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
3000         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
3001         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
3002         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
3003         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
3004         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
3005         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
3006         Include as many configury headers via tm_file as possible.  This
3007         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
3008         * config/openbsd-oldgas.h: New file.
3009         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
3010         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
3011         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
3012         config/i386/i386-coff.h, config/i386/i386-interix.h,
3013         config/i386/iscdbx.h, config/i386/linux-aout.h,
3014         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
3015         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
3016         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
3017         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
3018         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
3019         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
3020         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
3021         config/i386/vxi386.h: Do not directly include configury headers.
3022         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
3023         Directly include configury headers that are no longer automatically
3024         included by the above headers.
3025         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
3026         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
3027         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
3028         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
3029         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
3030         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
3031         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
3032         (TARGET_VERSION): Define.
3033         * config/i386/beos-elf.h, config/i386/freebsd.h,
3034         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
3035         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
3036         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
3037         config/i386/sco5.h, config/i386/sysv4.h
3038         (TARGET_VERSION): Do not need to protect.
3039         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
3040         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
3041         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
3042         config/i386/i386-interix.h, config/i386/linux-aout.h,
3043         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
3044         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
3045         (YES_UNDERSCORES): Do not define - not needed.
3046         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
3047         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3048         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
3049         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
3050         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3051         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
3052         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
3053         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
3054
3055 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
3056             Richard Henderson  <rth@redhat.com>
3057
3058         PR c/5484
3059         * function.c (assign_temp): Accept either type or decl argument.
3060         Detect variables whose size is too large to fit into an integer.
3061         * stmt.c (expand_decl): Pass the decl, not the type.
3062
3063 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3064
3065         * protoize.c: Match include directory usage with cppdefault.c.
3066
3067 2002-04-03  Jeffrey A Law  (law@redhat.com)
3068             Hans-Peter Nilsson  <hp@bitrange.com>
3069
3070         * combine.c (simplify_comparison): Avoid narrowing a comparison
3071         with a paradoxical subreg when doing so would drop signficant bits.
3072
3073 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
3074
3075         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
3076         if POINTERS_EXTEND_UNSIGNED is defined.
3077
3078 2002-04-02  Richard Henderson  <rth@redhat.com>
3079
3080         PR opt/3967
3081         * local-alloc.c (contains_replace_regs): LO_SUM may contain
3082         replace regs.
3083
3084 2002-04-02  Richard Henderson  <rth@redhat.com>
3085
3086         * doc/standards.texi: Document required freestanding libc entry points.
3087
3088 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
3089
3090         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
3091         associated splitter.  Remove MQ constraint.
3092         (ctrdi_internal4): Correct CCmode clobber.
3093
3094 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3095
3096         * milli64.S ($$dyncall): New function.
3097         * t-linux (LIB1ASMFUNCS): Revise module list.
3098         (LIB1ASMSRC): Use pa/milli64.S.
3099
3100 2002-04-02  Richard Henderson  <rth@redhat.com>
3101
3102         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
3103         rename solaris_sys_varargs_h.
3104
3105 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3106
3107         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
3108         the same mode as its component.
3109
3110 2002-04-02  Richard Henderson  <rth@redhat.com>
3111
3112         PR opt/190
3113         * final.c (this_is_asm_operands): Export.
3114         * output.h (this_is_asm_operands): Declare.
3115         * config/i386/i386.c (print_operand): Error odd asm operands.
3116
3117 2002-04-02  Richard Henderson  <rth@redhat.com>
3118
3119         PR opt/420
3120         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
3121
3122 2002-04-01  Richard Henderson  <rth@redhat.com>
3123
3124         PR target/1538
3125         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
3126         * fixinc/fixincl.x: Rebuild.
3127
3128 2002-04-01  Richard Henderson  <rth@redhat.com>
3129
3130         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
3131         (atomic_alloc, atomic_free): New.
3132         (SIZE, MASK_FOR, PTR_IN): New.
3133         (emergency_reg_state, emergency_reg_state_free): New.
3134         (emergency_labeled_state, emergency_labeled_state_free): New.
3135         (reg_state_alloced, labeled_state_alloced): New.
3136         (alloc_reg_state, free_reg_state): New.
3137         (alloc_label_state, free_label_state, free_label_states): New.
3138         (push, pop, dup_state_stack, free_state_stack): Use them.
3139         (desc_label_state): Likewise.
3140         (uw_frame_state_for): Free label states and state stack.
3141         (uw_update_reg_address): Eliminate warnings.
3142
3143 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
3144
3145         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
3146         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
3147
3148 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3149
3150         * c-decl.c (grokdeclarator): Update.
3151         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3152         * c-tree.h (c_mark_addressable): New.
3153         * c-typeck.c (default_function_array_conversion, build_unary_op,
3154         build_array_ref, convert_for_assignment): Update.
3155         (mark_addressable): Rename.
3156         * calls.c (try_to_integrate, expand_call): Use langhook.
3157         * expr.c (expand_expr): Use langhook.
3158         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
3159         * langhooks.h (struct lang_hooks): New hook.
3160         * stmt.c (expand_asm_operands): Use langhook.
3161         * tree.h (mark_addressable): Remove.
3162 objc:
3163         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3164
3165 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3166
3167         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
3168         in previous change.
3169
3170 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3171
3172         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
3173         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
3174
3175 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3176
3177         * c-common.c (unsigned_conversion_warning, convert_and_check,
3178         unsigned_type, signed_type, shorten_compare,
3179         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
3180         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
3181         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
3182         New.
3183         * c-decl.c (grokdeclarator): Update.
3184         * c-format.c (check_format_types): Update.
3185         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3186         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3187         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
3188         * convert.c (convert_to_integer): Use new hooks.
3189         * expmed.c (make_tree): Use new hooks.
3190         * expr.c (store_expr): Use new hooks.
3191         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
3192         all_ones_mask_p, unextend, fold): Use new hooks.
3193         * langhooks.h (struct lang_hooks_for_types): New hooks.
3194         * tree.h (signed_or_unsigned_type, signed_type,
3195         unsigned_type): Remove.
3196 objc:
3197         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3198         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3199
3200 2002-03-31  Richard Henderson  <rth@redhat.com>
3201
3202         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
3203         (desc_frgr_mem): Fix reference to f16-f31.
3204
3205 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3206
3207         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3208         RTVEC_ELT): Const-ify.
3209         * varray.h (VARRAY_CHECK): Const-ify.
3210         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
3211         ggc_mark_rtvec, ggc_mark): Const-ify.
3212
3213 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3214
3215         * diagnostic.c: Include langhooks-def.h.
3216         * Makefile.in (diagnostic.o): Update.
3217
3218 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3219
3220         * c-common.c (c_unsafe_for_reeval): Rename.
3221         * c-common.h (c_unsafe_for_reeval): Rename.
3222         * c-decl.c (finish_incomplete_decl): Rename.
3223         (c_init_decl_processing): Don't set langhook.
3224         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3225         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3226         * c-objc-common.c (c_objc_common_init): Don't set langhook.
3227         * c-tree.h (finish_incomplete_decl): Rename.
3228         * langhooks-def.h (lhd_unsafe_for_reeval): New.
3229         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
3230         (LANG_HOOKS_INITIALIZER): Update.
3231         * langhooks.c (lhd_unsafe_For_reeval): New.
3232         * langhooks.h (struct langhooks): New hooks.
3233         * toplev.c (incomplete_decl_finalize_hook): Remove.
3234         (wrapup_global_declarations): Update.
3235         * tree.c (lang_unsafe_for_reeval): Remove.
3236         (unsafe_for_reeval): Update.
3237         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
3238         Remove.
3239 objc:
3240         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3241         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3242
3243 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3244
3245         * diagnostic.c (print_error_function): Remove.
3246         (default_print_error_function): Rename.
3247         (report_error_function): Update.
3248         * diagnostic.h (print_error_function): Remove.
3249         (default_print_error_function): Remove.
3250         * langhooks-def.h (struct diagnostic_context): Predeclare.
3251         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
3252         (LANG_HOOKS_INITIALIZER): Update.
3253         * langhooks.h (struct diagnostic context): Predeclare.
3254         (struct lang_hooks): New hook.
3255
3256 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3257
3258         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
3259         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
3260         !flag_pic.
3261         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
3262         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
3263         of PIC_OFFSET_TABLE_REGNUM thruout.
3264         * config/rs6000/rs6000.md: Likewise.
3265         * config/rs6000/darwin.h: Likewise.
3266
3267 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3268
3269         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
3270         unsigned HOST_WIDE_INT, not unsigned int.
3271
3272 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3273
3274         PR middle-end/6096, middle-end/6098, middle-end/6099
3275         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
3276         CODE_LABELs.
3277         (fill_slots_from_thread): Likewise.
3278
3279 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3280
3281         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
3282         floating fields in float regs.
3283         (function_arg_record_value_2): Likewise.
3284
3285 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3286
3287         * config/mmix/mmix.md (define_constants): Remove misleading
3288         FIXME.  Add MMIX_fp_rO_OFFSET.
3289         ("nonlocal_goto_receiver"): Don't have stack-frame address of
3290         saved rO as part of the pattern.  Remove FIXME.
3291         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
3292         here, at output-time.
3293
3294 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3295
3296         PR middle-end/6100
3297         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
3298         REG_BR_PRED.
3299         (output_v9branch): Likewise.
3300
3301 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3302
3303         * gcc.c: Revert previous patch for now.
3304         * config/i386/djgpp.h: Likewise.
3305
3306 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3307
3308         * config/mmix/crti.asm (_init): Register _fini with atexit.
3309         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
3310
3311 2002-03-31  Richard Henderson  <rth@redhat.com>
3312
3313         PR target/3997
3314         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
3315         (ASM_OUTPUT_DEF_FROM_DECLS): New.
3316
3317 2002-03-31  Richard Henderson  <rth@redhat.com>
3318
3319         * libgcc2.c (__bb_exit_func): Make static.
3320
3321         * config/alpha/alpha.md (trap): New.
3322
3323 2002-03-31  Richard Henderson  <rth@redhat.com>
3324
3325         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
3326         promoted argument types; build trap.
3327         (expand_builtin_trap): New.
3328         (expand_builtin): Use it.
3329         * stmt.c (expand_nl_goto_receivers): Likewise.
3330         * expr.h (expand_builtin_trap): Declare.
3331         * libfuncs.h (LTI_abort, abort_libfunc): New.
3332         * optabs.c (init_optabs): Init abort_libfunc.
3333
3334 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3335
3336         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
3337         (LINK_COMMAND_SPEC): ... from here.
3338         (init_gcc_specs): Duplicate it here too, omitting
3339         shared_name in the second copy.
3340         (init_spec): Test for duplicate
3341         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
3342
3343 2002-03-30  David S. Miller  <davem@redhat.com>
3344
3345         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3346         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
3347
3348 2002-03-30  Roger Sayle <roger@eyesopen.com>
3349             Richard Henderson  <rth@redhat.com>
3350
3351         * regmove.c (combine_stack_adjustments_for_block): Avoid
3352         emitting a stack adjustment of zero bytes.  Let delete_insn
3353         update bb->head.
3354
3355 2002-03-30  Richard Henderson  <rth@redhat.com>
3356
3357         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
3358         (sparc_emitting_epilogue): New.
3359         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
3360         * config/sparc/sparc-protos.h: Update.
3361         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
3362         (TARGET_SWITCHES): Update.
3363         * config/sparc/sparc.md (return): Remove.
3364         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
3365         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
3366         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
3367         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
3368         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
3369         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
3370         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
3371         Remove MASK_EPILOGUE.
3372         * doc/invoke.texi: Update.
3373
3374 2002-03-30  Daniel Berlin  <dan@dberlin.org>
3375
3376         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
3377         CPP will start the file for us.
3378
3379 2002-03-30  Richard Henderson  <rth@redhat.com>
3380
3381         PR target/5446
3382         * config/ia64/ia64.c (group_barrier_needed_p): Special case
3383         prologue_allocate_stack.
3384         (ia64_single_set): Use insn codes for recognition of special
3385         cases, not rtl matching.
3386         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
3387
3388 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
3389
3390         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
3391
3392 2002-03-30  Richard Henderson  <rth@redhat.com>
3393
3394         PR target/6032
3395         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
3396         or -fomit-frame-pointer with profiling.
3397         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3398         (FUNCTION_PROFILER): Do nothing.
3399         (PROFILE_HOOK): New.
3400         * config/sparc/sparc.c (sparc_override_options): Don't check
3401         code models for profiling.
3402         (sparc_function_profiler): Remove.
3403         (sparc_profile_hook): New.
3404         * config/sparc/sparc-protos.h: Update.
3405
3406 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
3407
3408         PR optimization/6086
3409         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
3410         of SUBREG of volatile MEM or because the MEM was mode dependent,
3411         return CLOBBER instead of unmodified SUBREG.
3412
3413 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
3414
3415         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
3416         when not optimizing.
3417
3418         * toplev.c (rest_of_compilation): Cann mark_constant_function
3419         only when optimizing.
3420
3421         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
3422         are NULL.
3423
3424         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
3425         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
3426         (try_optimize_cfg): clear all AUX fields.
3427
3428         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
3429         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
3430         (ix86_address_cost): Be prepared for SUBREGed registers.
3431         (legitimate_address_p): Accept SUBREGed registers.
3432
3433 2002-03-29  Richard Henderson  <rth@redhat.com>
3434
3435         PR target/5672
3436         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
3437
3438 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3439
3440         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
3441         for aggregate and TFmode types.
3442
3443 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3444
3445         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
3446
3447 2002-03-29  Richard Henderson  <rth@redhat.com>
3448
3449         PR target/5886
3450         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
3451         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
3452
3453 2002-03-29  Richard Henderson  <rth@redhat.com>
3454
3455         PR target/6041
3456         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
3457         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
3458         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
3459         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
3460         conditional.
3461         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
3462
3463 2002-03-29  Dale Johannesen <dalej@apple.com>
3464
3465         * loop.c (combine_movables): Do allow combination of pseudos.
3466
3467 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
3468
3469         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
3470         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
3471         No functional change except ...
3472         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
3473         * doc/install.texi (*-*-freebsd*): Document port configuration.
3474
3475 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3476
3477         * Makefile.in (convert.o, calls.o, expmed.o): Update.
3478         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
3479         Use new hooks.
3480         * builtin-types.def (BT_PTRMODE): Update.
3481         * c-common.c (type_for_size): Rename c_common_type_for_size.
3482         (type_for_mode): Similarly.
3483         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
3484         Use new hook.
3485         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
3486         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
3487         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
3488         Redefine.
3489         * c-typeck.c (common_type, comptypes, default_conversion):
3490         Use new hooks.
3491         * calls.c: Include langhooks.h.
3492         (emit_library_call_value_1): Use new hooks.  Avoid redundant
3493         calls.
3494         * convert.c: Include langhooks.h
3495         (convert_to_pointer, convert_to_integer): Use new hooks.
3496         * except.c (init_eh): Similarly.
3497         * expmed.c: Include langhooks.h.
3498         (expand_mult_add): Use new hooks.
3499         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
3500         try_casesi): Similarly.
3501         * fold-const.c (optimize_bit_field_compare, make_range,
3502         decode_field_reference, fold_truthop, fold): Similarly.
3503         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
3504         put_var_into_stack): Similarly.
3505         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
3506         LANG_HOOKS_TYPE_FOR_SIZE): New.
3507         (LANG_HOOKS_TYPES_INITIALIZER): Update.
3508         * langhooks.h (lang_hooks_for_types): New hooks.
3509         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
3510         * tree.c (get_unwidened, get_narrower): Similarly.
3511         * tree.h (type_for_mode, type_for_size): Remove.
3512         * varasm.c (force_const_mem): Use new hooks.
3513         * utils2.c (nonbinary_modular_operation): Update.
3514 objc:
3515         * objc-act.c (handle_impent): Update.
3516         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
3517         Redefine.
3518
3519 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
3520
3521         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
3522         * config/ia64/ia64.c (basereg_operand): New.
3523         * config/ia64/ia64-protos.h (basereg_operand): Declare.
3524         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
3525
3526 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3527
3528         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
3529         unwind information when frame_pointer_needed.
3530         (mmix_assemble_integer): Tweak wording in comment.
3531
3532 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3533
3534         * Makefile.in (except.o): Update.
3535         * except.c: Include langhooks.h.
3536         (init_eh): Use langhook.
3537         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
3538         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
3539         (LANG_HOOKS_INITIALIZER): Update.
3540         * langhooks.h (lang_hooks_for_types): New.
3541         (struct lang_hooks): Add it.
3542         * tree.c (make_lang_type_fn, make_lang_type): Remove.
3543         * tree.h (make_lang_type_fn, make_lang_type): Remove.
3544 config:
3545         * alpha/alpha.c: Include langhooks.h.
3546         (alpha_build_va_list): Use langhook.
3547         * d30v/d30v.c: Include langhooks.h.
3548         (d30v_build_va_list): Use langhook.
3549         * i386/i386.c: Include langhooks.h.
3550         (ix86_build_va_list): Use langhook.
3551         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
3552         * s390/s390.c: Include langhooks.h.
3553         (s390_build_va_list): Use langhook.
3554         * stormy16/stormy16.c: Include langhooks.h.
3555         (stormy16_build_va_list): Use langhook.
3556
3557 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3558
3559         PR c++/5964
3560         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
3561         attributes.
3562         (length): Compute variable length for branches/calls/jumps here.
3563         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
3564         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
3565         define branch_type attribute.
3566         (divsi3_sp32): Maximum length is 6 not 7.
3567         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
3568         call_address_untyped_struct_value_sp32,
3569         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
3570         * config/sparc/sparc.c (empty_delay_slot): New function.
3571         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
3572         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
3573
3574 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3575
3576         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
3577         nonzero_bits if not needed.
3578         (nonzero_bits) [XOR]: Likewise.
3579         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
3580         reg_last_set_mode and mode are both MODE_INT, but not equal.
3581         (record_value_for_reg): Compute reg_last_set_nonzero_bits
3582         in nonzero_bits_mode for MODE_INT modes.
3583
3584 2002-03-28  Richard Henderson  <rth@redhat.com>
3585
3586         PR target/5715
3587         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
3588         to GAS.  Correct drift between alternatives.
3589
3590 2002-03-28  Richard Henderson  <rth@redhat.com>
3591
3592         PR target/6087
3593         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
3594
3595 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
3596
3597         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
3598         emulation to the linker.
3599
3600 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
3601
3602         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
3603         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
3604
3605 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
3606
3607         * combine.c (simplify_and_const_int): Make sure to apply mask
3608         when force_to_mode returns a constant integer.  PR3311.
3609
3610 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3611
3612         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
3613
3614 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3615
3616         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
3617         and Objective-C Dialect Options.
3618
3619 2002-03-28  Richard Henderson  <rth@redhat.com>
3620
3621         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
3622         comparison should be done vs !=0 not >0 return code.  Tidy cases.
3623
3624 2002-03-28  Richard Henderson  <rth@redhat.com>
3625
3626         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
3627         on to c_expand_body.
3628         * c-tree.h (finish_function): Update decl.
3629         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
3630
3631 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
3632
3633         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
3634
3635 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
3636
3637         * rtlanal.c: Include flags.h
3638         (may_trap_p): Do not mark FP operations if trapping
3639         if !flag_trapping_math
3640         * Makefile.in (rtlanal.o): Add dependency on flag.h
3641         * ifcvt.c (noce_operand_ok): Avoid the lameness.
3642
3643 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
3644
3645         * mips.md: Use dconst1, not 1.0, as first argument of
3646         REAL_VALUE_LDEXP.  Don't use union real_extract.
3647
3648 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
3649
3650         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
3651         rather than $target.  Heed program_prefix and
3652         program_transform_name.  Search for gas in cross-compiler case too.
3653         "test -x" rather than "test -f".
3654         (gcc_cv_ld): Likewise.
3655         (gcc_cv_nm): Heed program_prefix and program_transform_name.
3656         (gcc_cv_objdump): Likewise.
3657         * configure: Regenerate.
3658
3659 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3660
3661         * Makefile.in (attribs.o): Update.
3662         * attribs.c: Include langhooks.h.
3663         (decl_attributes): Use langhook.
3664         * c-decl.c (insert_default_attributes): Rename.
3665         * c-tree.h (c_insert_default_attributes): New.
3666         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
3667         (LANG_HOOKS_INITIALIZER): Update.
3668         * langhooks.h (struct lang_hooks): New hook.
3669         * tree.h (insert_default_attributes): Remove.
3670 objc:
3671         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
3672
3673 2002-03-27  Andreas Schwab  <schwab@suse.de>
3674
3675         * config/i386/i386.c (classify_argument): Also check for
3676         QUAL_UNION_TYPE.
3677
3678 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3679
3680         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
3681         any more.
3682
3683 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
3684
3685         * i960.md (ret): Set PC.
3686         (nonlocal_goto): Fix expander.
3687         * builtins.c (epxand_builin_longjmp): Check that we've emitted
3688         some jump or call.
3689
3690 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
3691
3692         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
3693         of libcall regions.
3694
3695 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3696
3697         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
3698         assigning to BLOCK_FOR_INSN directly.
3699
3700 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
3701
3702         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
3703
3704 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3705
3706         * c-common.c (c_expand_expr): Fix prototype.
3707         * c-common.h (c_expand_expr): Always declare, update.
3708         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3709         * c-objc-common.c (c_objc_common_init): No global hook.
3710         * expr.c (expand_expr): Use langhook.
3711         * expr.h (enum expand_modifier): Conditionally declare.
3712         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
3713         (LANG_HOOKS_INITIALIZER): Update.
3714         * langhooks.c (lhd_expand_expr): New.
3715         * langhooks.h (struct lang_hooks): New hook.
3716         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
3717         (lang_independent_init): Don't default hook.
3718 objc:
3719         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3720
3721 2002-03-27  Richard Henderson  <rth@redhat.com>
3722
3723         PR target/6054
3724         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
3725         TARGET_CONST_GP.  Simplify conditions.
3726
3727 2002-03-27  Richard Henderson  <rth@redhat.com>
3728
3729         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
3730         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
3731         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
3732
3733 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
3734
3735         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
3736         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
3737         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
3738         Remove unnecessary masks.
3739         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
3740         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
3741         -mwindows, -mdll switches and their negations.
3742
3743 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3744
3745         * gcc-common.c (lang_mark_false_label_stack): Remove.
3746         * ggc.h (lang_mark_false_label_stack): Similarly.
3747
3748 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3749
3750         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
3751
3752         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
3753         or __rtems_ is defined.
3754
3755 2002-03-26  Richard Henderson  <rth@redhat.com>
3756
3757         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
3758         if a non-trivial load was emitted.
3759         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
3760         in high+extra+low case.
3761
3762 2002-03-26  Richard Henderson  <rth@redhat.com>
3763
3764         * config.gcc (sparc*-solaris): Use float_format=sparc.
3765
3766 2002-03-26  Richard Henderson  <rth@redhat.com>
3767
3768         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
3769         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
3770         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
3771         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
3772         (WINT_TYPE_SIZE): Fix at 32.
3773
3774 2002-03-26  Richard Henderson  <rth@redhat.com>
3775
3776         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
3777         until after eh landing pad generation.
3778         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
3779         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
3780
3781 2002-03-26  Richard Henderson  <rth@redhat.com>
3782
3783         * expr.h (ADD_PARM_SIZE): One more convert for INC.
3784
3785 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
3786
3787         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
3788         and warning switches.
3789         (cc1_options):  Likewise.
3790
3791 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
3792
3793         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
3794         Restore more of the signal context.  Set no_reg_stack_frame.
3795         * config/ia64/unwind-ia64.c (unw_state_record):
3796         Add no_reg_stack_frame, comments.
3797         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
3798         (uw_update_context): Adjust bsp when unwinding from leaf,
3799         but not signal frame.
3800
3801 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
3802
3803         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
3804
3805 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3806
3807         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
3808
3809 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3810
3811         PR target/5621
3812         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
3813         "Add a pool_range attribute", which was lost during the ARM/Thumb
3814         merge.
3815
3816 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3817
3818         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
3819         a register into the MAC16 accumulator.
3820
3821 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
3822
3823         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
3824         (Warning Options): Document -Wswitch-enum.
3825         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
3826         -Wswitch.
3827         (warn_switch_enum): Define variables.
3828         * flags.h (warn_switch_enum): Declare variables.
3829         * stmt.c (expand_end_case_type): When warn_switch_enum /
3830         -Wswitch-enum, perform switch checks.
3831         Fix PR c/5044.
3832
3833 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3834
3835         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
3836         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
3837         (reload_muladdsi_compare0_scratch): Delete.
3838
3839 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
3840
3841         * doc/install.texi (*-*-freebsd*): Update.
3842
3843 2002-03-26  Richard Henderson  <rth@redhat.com>
3844
3845         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
3846         (SUB_PARM_SIZE): Cast DEC to ssizetype.
3847
3848         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
3849         types from the normal argument frame.
3850
3851         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
3852         variable sized objects by reference.
3853         (sparc_va_arg): Receive them by reference too.
3854
3855 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
3856
3857         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
3858         code to not restoring global registers.
3859
3860 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3861
3862         * Makefile.in (ggc-common.o): Update.
3863         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
3864         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3865         * c-tree.h (c_mark_tree): New.
3866         * ggc-common.c: Include langhooks.h.
3867         (gcc_mark_trees): Use new langhook.
3868         * ggc-callbacks.c: Delete file.
3869         * ggc.h (lang_mark_tree): Remove.
3870         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
3871         (LANG_HOOKS_INITIALIZER): Update.
3872         * langhooks.h (struct lang_hooks): New hook.
3873 objc:
3874         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3875
3876 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3877
3878         * doc/cpp.texi: Exclude entire Top node from printed manual.
3879         Move option index after directive index.  Insert page breaks
3880         before GFDL and concept index.  Index environment variables
3881         with command line options.
3882         * doc/cppenv.texi: Use @vtable for environment variable list.
3883         Add paragraph explaining semantics of empty elements in path
3884         variables.  Exclude a cross-reference to Fishkill from the
3885         manpage.  Remove an unnecessary cross-reference of the entry
3886         right above the referer.  Don't use @anchor in text that goes
3887         into manpage.
3888         * doc/cppopts.texi: Cross-reference the environment variables
3889         section, not the specific environment variable, for consistency.
3890
3891 2002-03-25  Richard Henderson  <rth@redhat.com>
3892
3893         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
3894         anywhere in the block.  Don't refer to insns that have been
3895         removed from the chain.  Iterate backward through the new insns.
3896         Don't refer to edges that have been removed.
3897
3898 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
3899
3900         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
3901         test for overflow of constant.
3902
3903 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
3904
3905         PR target/2623
3906         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
3907         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
3908         these patterns on arm_archv4.
3909
3910 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
3911
3912         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
3913         int".
3914
3915 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3916
3917         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
3918         float_handled, float_handler, float_signal, set_float_handler,
3919         and do_float_handler.  Set handler for SIGFPE to crash_signal.
3920         * toplev.h: Don't prototype do_float_handler.
3921
3922         * c-lex.c: Fold parse_float into lex_number.  Make warning
3923         about portability of hex float constants more informative, and
3924         don't issue it on top of a syntax error.
3925         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
3926         their callers.
3927         * real.h: Define REAL_VALUE_ABS here...
3928         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
3929         simplify_unary_real, simplify_binary_real, and
3930         simplify_binary_is2orm1 into their callers.
3931         * tree.c: Fold build_real_from_int_cst_1 into caller.
3932
3933         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
3934
3935         * tsystem.h: Include float.h here...
3936         * libgcc2.c: ... not here.
3937
3938 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
3939
3940         Fixes for: PR bootstrap/3591, target/5676
3941         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
3942         defined.  Do not disable exceptions or rtti.
3943         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
3944         mcore.h.  Disable exceptions and rtti, since they are not
3945         supported by EPOC.
3946
3947 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3948
3949         * c-decl.c (maybe_build_cleanup): Remove.
3950         * expr.c (expand_expr): Use langhook.
3951         * langhooks-def.h (lhd_return_null_tree,
3952         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
3953         (LANGHOOKS_INITIALIZER): Update.
3954         * langhooks.c (lhd_return_null_tree): New.
3955         * langhooks.h (struct lang_hooks): New hook.
3956         * tree-inline.c (initialize_inlined_parameters): Use langhook.
3957         * tree.h (maybe_build_cleanup): Remove.
3958
3959 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
3960
3961         * regrename.c (build_def_use): Move recog_memoized
3962         before extract_insn.
3963
3964 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
3965
3966         PR target/6043
3967         * expr.c (emit_group_store): Handle storing into CONCAT.
3968
3969 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
3970
3971         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
3972         corresponding MATCH_DUP.
3973
3974 2002-03-24  Richard Henderson  <rth@redhat.com>
3975
3976         * unroll.c (unroll_loop): Zero label_map.
3977
3978         * gcse.c: Include except.h.
3979         * Makefile.in (gcse.o): Update.
3980
3981 2002-03-24  Richard Henderson  <rth@redhat.com>
3982
3983         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
3984         Do resolve_unique_section before shared data clause.
3985
3986 2002-03-24  Richard Henderson  <rth@redhat.com>
3987
3988         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
3989
3990 2002-03-24  Richard Henderson  <rth@redhat.com>
3991
3992         * recog.c (peephole2_optimize): Split blocks when EH insns are
3993         generated in the middle of a block.  Do global life update if
3994         zapped EH edges.
3995
3996 2002-03-24  Richard Henderson  <rth@redhat.com>
3997
3998         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
3999
4000 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4001
4002         preprocessor/3951
4003         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
4004         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
4005         (init_dependency_output): Don't make no_output decision here.
4006
4007 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
4008
4009         * stmt.c (check_for_full_enumeration_handling): Remove tests of
4010         warn_switch.  Update description.
4011         (expand_end_case_type): Call check_for_full_enumeration_handling
4012         when warn_switch.
4013
4014 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4015
4016         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
4017         (m68hc11_split_move): Call it to see if the source and destination
4018         operands use the same direction auto inc/dec mode, otherwise make the
4019         source an offsetable memory operand and generate an add.
4020
4021 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4022
4023         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
4024         register for operand 2.
4025         ("*subsi3_zero_extendqi"): Likewise.
4026         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
4027         bits so that it is compatible with a pop.
4028         ("*andhi3_gen"): Likewise.
4029         ("xorhi3"): Likewise.
4030
4031 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4032
4033         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
4034         -pedantic here...
4035         (cpp_post_options): ... not here.
4036
4037 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4038             Aldy Hernandez  <aldyh@redhat.com>
4039
4040         Removal of separate preprocessor cpp0.
4041
4042         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
4043         cpp0, install-common): Update.
4044         * c-common.c (flag_preprocess_only): New.
4045         (c_common_init): Preprocess for -E.
4046         * c-common.h (flag_preprocess_only): New.
4047         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
4048         * c-objc-common.c (c_init_decl_processing): Exit quickly
4049         for NULL return from c_common_init.
4050         * cpplib.h (cpp_preprocess_file): New.
4051         * cppmain.c (main, general_init, pfile, progname): Remove.
4052         (do_preprocessing): Rename cpp_preprocess_file, don't call
4053         cpp_finish.  Don't close stdout here.
4054         (setup_callbacks): Update prototype.
4055         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
4056         Update.
4057         * tradcpp.c (main): Ignore -quiet.
4058 objc:
4059         * lang-specs.h (default_compilers): Preprocess with cc1obj.
4060
4061 2002-03-24  Richard Henderson  <rth@redhat.com>
4062
4063         PR optimization/5742
4064         * machmode.def: Add inner mode field to complex modes.
4065         * config/mips/mips.c (mips_function_value): Always define.  Add
4066         new argument to handle libcalls.
4067         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
4068         (FUNCTION_VALUE): Likewise.
4069         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
4070         * config/mips/mips-protos.h: Update.
4071
4072 2002-03-23  Richard Henderson  <rth@redhat.com>
4073
4074         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
4075         * config/sparc/sparc-protos.h: Update.
4076         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
4077
4078 2002-03-23  Richard Henderson  <rth@redhat.com>
4079
4080         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
4081         _start or _init begins the text segment.
4082
4083 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
4084
4085         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
4086         not HOST_WIDEST_INT.
4087         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
4088
4089 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
4090
4091         PR java/5489
4092         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
4093         operand argument to output_return_instruction.
4094         * arm.c (arm_print_operand, case 'd'): If the operand is
4095         const_true_rtx then just return.
4096         (arm_print_operand, case 'D'): If the operand is const_true_rtx
4097         then abort.
4098
4099 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
4100
4101         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
4102         (Warning Options): Document -Wswitch-default.
4103         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
4104         -Wswitch.
4105         (warn_switch_default): Define variable.
4106         (warn_switch): Update comment.
4107         * flags.h (warn_switch_default): Declare variable.
4108         (warn_switch): Update comment.
4109         * stmt.c (expand_end_case): Check for and, when
4110         warn_switch_no_default, warn of a missing default case.
4111
4112 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
4113
4114         * real.h (N): Special case 128 bit doubles.
4115
4116         * combine.c (simplify_comparison): When widening modes, ignore
4117         sign extension on CONST_INTs.
4118
4119 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4120
4121         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
4122         passed to adjust_address.  Fix comment formatting.
4123
4124
4125 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
4126
4127         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
4128         Always make REAL_VALUE_TYPE a struct containing an array of
4129         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
4130         big it is.  Don't declare or use union real_extract.
4131
4132         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
4133         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
4134         (print_operand), config/arm/arm.c (output_move_double),
4135         config/arm/arm.md (consttable_4, consttable_8),
4136         config/romp/romp.c (output_fpops), config/s390/s390.h
4137         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
4138         (xtensa_output_literal): Don't use union real_extract.
4139
4140         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
4141         (sfmode_constant_to_ulong), config/ns32k/merlin.h
4142         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
4143         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
4144         (PRINT_OPERAND): Don't use local version of union
4145         real_extract.
4146
4147         * config/convex/convex.c (check_float_value), config/vax/vax.c
4148         (vax_float_literal), config/m88k/m88k.md (divdf3),
4149         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
4150         config/pdp11/pdp11.c (output_move_quad): Don't do host
4151         arithmetic on target floating point quantities.
4152
4153         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
4154         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
4155
4156         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
4157         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
4158
4159         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
4160         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
4161         INFINITY.
4162         * print-rtl.c (print_rtx): Disable code which needs
4163         floating-point emulator.
4164         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
4165         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
4166         depending on HOST_FLOAT_FORMAT to be defined properly.
4167
4168         * config/1750a/1750a.c (get_double, float_label): Delete.
4169         (print_operand): Delete huge commented-out chunk.  Use
4170         REAL_VALUE_TO_DECIMAL.
4171         * config/1750a/1750a-protos.h: Delete prototypes of deleted
4172         functions.
4173         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
4174         IEEE_FLOAT_FORMAT.
4175         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
4176         Use REAL_VALUE_TO_DECIMAL as ELF version does.
4177         * config/m88k/m88k.c (real_power_of_2_operand,
4178         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
4179         real_extract out of the union; run the input through
4180         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
4181         from that into the union.
4182         * config/pdp11/pdp11.c (output_move_double): Rearrange
4183         parentheses to make automatic indenter happy.
4184
4185         * doc/tm.texi (Cross-compilation): Rename node to "Floating
4186         Point" and rewrite to describe current situation.  Also adjust
4187         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
4188         match code.
4189         * doc/rtl.texi: Adjust cross reference.
4190
4191 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4192
4193         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
4194         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
4195         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
4196         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
4197         prevent use of sp as a reload register.
4198         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
4199         non_acc_reg_operand.
4200         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
4201         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
4202         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
4203         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
4204
4205 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4206
4207         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
4208         * cpplex.c (unterminated): Delete.
4209         (parse_string): No string literal may extend over multiple
4210         lines.  Suppress the error when preprocessing assembly.
4211         * cppmain.c (scan_translation_unit): Strings are single-line.
4212
4213         * doc/cpp.texi: Update to match.
4214
4215 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR optimization/5854
4218         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
4219         Shut up warnings.
4220         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
4221         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
4222         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
4223         const0 if scratch register was not allocated.
4224         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
4225         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
4226         with GEN_INT (...).
4227         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
4228         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
4229         with GEN_INT (...) everywhere.  Remove constraints in define_split
4230         patterns.
4231         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
4232         require scratch register for setting 0 into regs/non-pushable memory.
4233
4234 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4235
4236         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
4237         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
4238
4239 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
4240
4241         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
4242         * cppinit.c (cpp_create_reader):  On by default.
4243         (cpp_handle_option):  Handle -W[no-]endif-labels.
4244         (cpp_post_options):  Also enable if -pedantic.
4245         * cpplib.c (do_else):  Use it.
4246         (do_endif):  Likewise.
4247         * doc/cppopts.texi:  Document new option.
4248         * doc/invoke.texi:  Document new option.
4249
4250 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
4251
4252         * config/i386/i386.c, config/i386/i386.md: Change all occurences
4253         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
4254
4255 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4256
4257         * flow.c (calculate_global_regs_live): Clear aux fields of
4258         ENTRY and EXIT.
4259
4260 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4261
4262         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
4263         REG or MEM subregs, pass rtx * instead of rtx to it.
4264         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
4265         rtx * instead of rtx to alter_subreg.
4266         * config/m32r/m32r.c (gen_split_move_double): Likewise.
4267         * config/pj/pj.c (pj_output_rval): Likewise.
4268
4269 2002-03-22  Richard Henderson  <rth@redhat.com>
4270
4271         PR target/3177
4272         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
4273         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
4274         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
4275         (ia64_expand_prologue): Look at int_regs, not words, for number
4276         of incomming int regs.
4277
4278 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
4279
4280         * expr.c (expand_expr): A RESULT_DECL is part of a call.
4281
4282 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
4283
4284         * toplev.c (flag_loop_optimize, flag_crossjumping):
4285         New static variables.
4286         (rest_of_compilation): Conditionalize crossjumping and
4287         loop optimizer.
4288         (parse_options_and_default_flags): Default loop_optimize and
4289         crossjumping.
4290         (lang_independent_options): Add -fcrossjumping and -floop-optimize
4291         * invoke.texi (crossjumping, loop-optimize): Document.
4292
4293 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4294
4295         * real.c (eiisneg): Move outside #ifdef NANS.
4296
4297 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4298
4299         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
4300         frequencies match; avoid match on different loop depths.
4301         (try_crossjump_to_bb): Kill tests that no longer brings time
4302         savings.
4303         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
4304         updating code.
4305         (split_edge): Likewise.
4306
4307         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
4308         variable.
4309
4310         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
4311         * cfgrtl.c: Include insn-config.h
4312         (split_block) Dirtify block in presence of conditional execution
4313
4314 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4315
4316         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
4317         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
4318         (function_arg): Constify CUMULATIVE_ARGS.
4319         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
4320         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
4321         (UNITS_PER_DOUBLE): New macro.
4322         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
4323         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
4324         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
4325         fp_regs and stack_words.
4326         (EABI_FLOAT_VARARGS_P): New macro.
4327         * config/mips/mips.c (struct mips_arg_info): New.
4328         (mips_arg_info): New function.
4329         (function_arg_advance): Use it.  Add adjustment instructions here
4330         rather than in function_arg.
4331         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
4332         for VOIDmode at the beginning of the function.
4333         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
4334         (function_arg_pass_by_reference): Likewise.
4335         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
4336         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
4337         (mips_va_start): Likewise.  Use the new stack_words field of
4338         CUMULATIVE_ARGS to set up overflow area.  Reformat.
4339         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
4340         doubles and other types, aligning the overflow pointer for non-doubles
4341         too.  Remove some code duplication.  Replace hard-coded constants.
4342
4343 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4344
4345         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
4346         (CLASS_UNITS): Undefine.
4347         (CLASS_MAX_NREGS): Use FP_INC.
4348         * config/mips/mips.c (compute_frame_size): Likewise.
4349         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
4350
4351 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4352
4353         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
4354         prototype, and handle lexing numbers and identifiers.
4355         (parse_identifier): Update to new form of parse_slow.
4356         (parse_number): Fast path only, use parse_slow otherwise.
4357         (_cpp_lex_direct): Update calls to parse_number.
4358
4359 2002-03-21  DJ Delorie  <dj@redhat.com>
4360
4361         * bb-reorder.c (make_reorder_chain_1): Protect against
4362         when redundant edges are omitted.
4363         * predict.c (dump_prediction): Likewise.
4364
4365 2002-03-21  Richard Henderson  <rth@redhat.com>
4366
4367         PR target/5996
4368         * fixinc/inclhack.def (solaris_stdio_tag): New.
4369         * fixinc/fixincl.x: Regenerate.
4370
4371 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4372
4373         PR c/5597
4374         * c-typeck.c (process_init_element): Flag non-static
4375         initialization of a flexible array member as illegal.
4376
4377 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
4378
4379         * config/rs6000/t-linux64: New.
4380         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
4381         t-ppccomm.  Use t-rs6000 and t-linux64.
4382         (powerpc64-*-gnu* <tmake_file>): Likewise.
4383         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
4384         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
4385         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
4386
4387 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
4388
4389         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
4390         flag_really_no_inline instead of optimize == 0.
4391
4392         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
4393
4394         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
4395
4396         * flags.h (flag_really_no_inline): New.
4397
4398         * c-common.c (c_common_post_options): Initialize
4399         flag_really_no_inline.
4400
4401         * toplev.c (flag_really_no_inline): New.
4402
4403 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4404
4405         * config/avr/avr.md (length): Fix length computation for
4406         conditional branches.
4407
4408 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4409
4410         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
4411         sdbout.o, profile.o): Update.
4412         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
4413         langhook.
4414         * c-common.h (gettags): Move here from tree.h.
4415         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
4416         insert_block, getdecls, kept_level_p, global_bindings_p): New.
4417         * dbxout.c (dbxout_init): Use getdecls langhook.
4418         * expr.c (expand_expr): Use insert_block langhook.
4419         * fold-const.c: Include langhooks.h.
4420         (fold_range_test, fold_binary_op_with_conditional_arg,
4421         fold): Use global_bindings_p langhook.
4422         * integrate.c (expand_inline_function): Use insert_block langhook.
4423         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
4424         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
4425         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
4426         LANG_HOOKS_GETDECLS): New.
4427         (LANG_HOOKS_INITIALIZER): Update.
4428         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
4429         langhook.
4430         * langhooks.h (struct lang_hooks_for_decls): New.
4431         (struct lang_hooks): Update.
4432         * profile.c: Include langhooks.h.
4433         (output_func_start_profiler): Use new langhooks.
4434         * sdbout.c: Include langhooks.h.
4435         (sdbout_init, sdbout_finish): Use getdecls langhook.
4436         * stmt.c: Include langhooks.h.
4437         (expand_fixup, fixup_gotos): Use new langhooks.
4438         * stor-layout.c: Include langhooks.h.
4439         (variable_size): Use global_bindings_p langhook.
4440         * toplev.c (compile_file): Use getdecls langhook.
4441         * tree-inline.c (remap_block): Use insert_block langhook.
4442         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
4443         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
4444
4445 2002-03-21  Richard Henderson  <rth@redhat.com>
4446
4447         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
4448         constants in .data when -fpic.
4449
4450 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4451
4452         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
4453         where appropriate.
4454
4455 2002-03-21  Tom Tromey  <tromey@redhat.com>
4456
4457         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
4458
4459 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4460
4461         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
4462
4463         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
4464
4465 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4466             Richard Henderson  <rth@redhat.com>
4467
4468         PR c/5354
4469         * c-common.c (c_expand_expr): Preserve result of a statement
4470         expression if needed.
4471
4472 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4473
4474         PR bootstrap/4195
4475         * genrecog.c (maybe_both_true_mode): Remove.
4476         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
4477         * machmode.def (Pmode): Likewise.
4478
4479 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
4480
4481         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
4482         (nonlocal_mentioned_p_1): New function.
4483         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
4484         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
4485         (mark_constant_function): Recognize pure functions.
4486         * rtl.h (global_reg_mentioned_p): New prototype.
4487         * rtlanal.c (global_reg_mentioned_p,
4488         global_reg_mentioned_p_1): New function.
4489
4490 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4491
4492         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
4493         UNIX assert.h.
4494         * fixinc/fixincl.x: Regenerate.
4495
4496 2002-03-20  Jason Merrill  <jason@redhat.com>
4497
4498         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
4499
4500 2002-03-20  Michael Meissner  <meissner@redhat.com>
4501
4502         * doc/invoke.texi (Optimize Options): Document that -O2 sets
4503         -fstrict-aliasing.
4504
4505 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4506
4507         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
4508         ".literal_position" directive before the constant pool.
4509
4510 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4511
4512         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
4513         Add Craig Rodrigues.
4514         Add Brad Lucier to testers.
4515
4516 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4517
4518         PR target/4792
4519         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
4520         to if_then_else.
4521         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
4522         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
4523         instead of insn_extract.
4524
4525 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4526
4527         PR bootstrap/4192
4528         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
4529
4530         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
4531         stmt if some case has been output.
4532
4533 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4534
4535         PR c/5972
4536         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
4537         movsfcc_1, movdfcc_1): Add %O2.
4538         * config/i386/i386.c (print_operand): Handle %ON.
4539         Print . before float condition codes in Sun as cmov syntax.
4540         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
4541         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
4542         no longer true.
4543
4544 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
4545
4546         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
4547         return instruction if PC was popped.
4548
4549 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4550
4551         * config/xtensa/xtensa.md: Remove unused type attributes.
4552         (adddi_carry, subddi_carry): Change type attribute to "multi".
4553
4554 2002-03-19  Dale Johannesen  <dalej@apple.com>
4555
4556         PR optimization/5999, middle-end/5731
4557         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
4558         multiplications by reciprocals.
4559
4560 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4561
4562         * Makefile.in: Update.
4563         * c-common.c: Include langhooks.h.
4564         (inline_forbidden_p): Use new hook.
4565         * diagnostic.c: Include langhooks.h.
4566         (format_with_decl, announce_function,
4567         default_print_error_function): Use new hook.
4568         * dwarf2out.c (dwarf2_name): Use new hook.
4569         * function.c: Include langhooks.h.
4570         (init_function_start): Use new hook.
4571         * langhooks-def.h (lhd_decl_printable_name): New.
4572         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
4573         (LANGHOOKS_INITIALIZER): Update.
4574         * langhooks.c (lhd_decl_printable_name): New.
4575         * langhooks.h (struct lang_hooks): New hook.
4576         * toplev.c (decl_name, decl_printable_name): Remove.
4577         (open_dump_file): Use new hook.
4578         (process_options): Remove old hook.
4579         * tree.h (decl_printable_name): Remove.
4580 objc:
4581         * objc-act.c (objc_init): Remove old hook.
4582         (objc_printable_name): Export.
4583         * objc-act.h (objc_printable_name): New.
4584         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
4585
4586 2002-03-19  Jim Blandy  <jimb@redhat.com>
4587
4588         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
4589         the start_source_file debug hook, not the current line number.
4590
4591 2002-03-19  Richard Henderson  <rth@redhat.com>
4592
4593         * flow.c (EH_USES): Provide default.
4594         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
4595         * doc/tm.texi (EH_USES): New.
4596
4597         * config/ia64/ia64.c (ia64_eh_uses): New.
4598         * config/ia64/ia64-protos.h: Update.
4599         * config/ia64/ia64.h (EH_USES): New.
4600
4601 2002-03-19  Richard Henderson  <rth@redhat.com>
4602
4603         * varasm.c (output_constant_def): Fix stupid typo.
4604
4605 2002-03-19  Richard Henderson  <rth@redhat.com>
4606
4607         PR 5879
4608         * except.c (current_function_has_exception_handlers): New.
4609         * except.h: Declare it.
4610         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
4611         Combine tests that disable all sibcalls for the function.
4612
4613 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
4614
4615         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
4616         for INTEGER_CST.
4617
4618 2002-03-19  Richard Henderson  <rth@redhat.com>
4619
4620         PR 5977, 5991
4621         * config/ia64/ia64.c: Revert 2002-03-01 patch.
4622         * config/ia64/ia64.h (INIT_EXPANDERS): New.
4623
4624 2002-03-19  Jim Blandy  <jimb@redhat.com>
4625
4626         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
4627         name, even if the replacement list contains no tokens, as required
4628         by Dwarf.
4629
4630 2002-03-19  Jason Merrill  <jason@redhat.com>
4631
4632         * varasm.c (globalize_decl): Get the name from the RTL, not
4633         DECL_ASSEMBLER_NAME.
4634
4635         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
4636
4637 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
4638
4639         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
4640         subdi_carry): Define.
4641
4642 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4643
4644         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
4645         about -fpic/-fPIC if extra_warnings set.
4646
4647 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4648
4649         * expr.c (expand_expr): Sign-extend CONST_INT generated from
4650         TREE_STRING_POINTER.
4651         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
4652
4653 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4654
4655         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
4656         in favor of SP if FRAME_POINTER_REQUIRED is false.
4657
4658 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
4659
4660         * emit-rtl.c (gen_int_mode): New function.
4661         * rtl.h: Prototype for it.
4662         * combine.c (make_extraction, simplify_comparison), expmed.c
4663         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
4664         (convert_modes, store_field), optabs.c (expand_fix),
4665         simplify-rtx.c (neg_const_int, simplify_unary_real),
4666
4667         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
4668         Use it instead of GEN_INT (trunc_int_for_mode (...)).
4669
4670 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
4671
4672         PR c/5656
4673         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
4674         convert_parm_for_inlining.
4675         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
4676         Define.
4677         * langhooks-def.h: Likewise.
4678         * objc/objc-lang.c: Likewise.
4679         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
4680         function.
4681         * tree-inline.c (initialize_inlined_parameters):
4682         Call convert_parm_for_inlining lang hook if needed.
4683         * c-typeck.c (c_convert_parm_for_inlining): New function.
4684         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
4685
4686 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
4687
4688         * calls.c (precompute_arguments): Do not assume that temporaries
4689         can be destroyed after expanding the argument.
4690         (expand_call): Likewise.
4691
4692 2002-03-15  Eric Christopher  <echristo@redhat.com>
4693
4694         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
4695         Fix register preference on last change.
4696         * config/mips/mips.c (mips_return_in_memory): New function.
4697         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
4698         * config/mips/mips-protos.h: Declare.
4699         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
4700         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
4701
4702 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
4703
4704         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
4705         a register too.
4706         (anddi3, iorsi3): Likewise.
4707
4708         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
4709         use %gprel for symbols that are going to be placed in linkonce
4710         sections.
4711
4712         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
4713         RETURN_ADDRESS_POINTER_REGNUM to $ra.
4714         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
4715         not needed.  Disregard leaf_function_p().
4716         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
4717         mips16 frame pointer.
4718         * config/mips/mips.md (store ra): Only to small SP offsets.
4719         2001-08-22  Graham Stott  <grahams@redhat.com>
4720         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
4721         return a REG rtx for the return address register.
4722
4723 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
4724
4725         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
4726         constant-pool addresses as "mode-dependent".
4727         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
4728
4729 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
4730
4731         PR target/5740
4732         * expr.c (emit_group_load): Use extract_bit_field if
4733         needed for CONCAT arguments.
4734
4735 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
4736
4737         PR target/4863
4738         * arm.md (tablejump): Make this a define_expand.  For PIC add the
4739         offset to the base of the table.
4740         (thumb_tablejump): Matcher for Thumb tablejump insn.
4741         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
4742         as the difference of two labels.
4743         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4744         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
4745         tables in the code.
4746         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
4747         * arm.c (get_jump_table_size): If the table is not in the text
4748         section, return zero.
4749
4750 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
4751
4752         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
4753         of gen_rtx_SUBREG.
4754         (arm_reload_out_hi): Use gen_lowpart instead of
4755         gen_rtx_SUBREG to access QImode components.
4756         * config/arm/arm.md: Disable zero_extend split for QImode
4757         subregs in BIG_ENDIAN mode.
4758         (storehi_bigend): Match use of least significant byte.
4759         (storeinthi): Remove extraneous SUBREG.
4760         Add missing construction of operands[2].
4761         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
4762         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
4763         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
4764
4765 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
4766
4767         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
4768         any_operand.
4769
4770 2002-03-17  Richard Henderson  <rth@redhat.com>
4771
4772         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
4773         explicitly.
4774
4775 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
4776
4777         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
4778         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
4779
4780 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4781
4782         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
4783
4784         * predict.c (estimate_bb_frequencies): Delete unused variables.
4785
4786 2002-03-17  Richard Henderson  <rth@redhat.com>
4787
4788         * config/ia64/ia64.c (ia64_attribute_table): Move before
4789         targetm definition.  Make static.
4790
4791 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4792
4793         * c-common.h (yyparse, c_common_parse_file): New.
4794         * c-lang.c: Include c-common.h.
4795         (LANG_HOOKS_PARSE_FILE): Redefine.
4796         * c-lex.c: Include c-common.h.
4797         (yyparse): Rename c_common_parse_file.  Call yyparse.
4798         * c-parse.in (yyparse): Remove macro.
4799         * c-tree.h (yyparse_1): Remove.
4800         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
4801         (LANG_HOOKS_INITIALIZER): Update.
4802         * langhooks.h (struct lang_hoooks): New hook parse_file.
4803         * toplev.c (compile_file): Use parse_file hook.
4804         * tree.h (yyparse): Remove.
4805         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
4806
4807 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
4808
4809         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
4810         float_truncate, not fix.
4811         ("*truncdfsf2_real"): Ditto.
4812         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
4813
4814         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
4815
4816 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
4817
4818         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
4819         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
4820         where appropriate.  Make the second reference to
4821         leaf_function_p a function call, as intended.  Reindented.
4822
4823         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
4824         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
4825
4826         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
4827         add register to non-constant into sp.
4828
4829         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
4830         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
4831         (mips16_gp_pseudo_rtx): Lose.
4832         (INIT_EXPANDERS): Deleted.
4833         * config/mips/mips.c (mips_init_machine_status): New.
4834         (mips_free_machine_status): New.
4835         (mips_mark_machine_status): New.
4836         (override_options): Set them.
4837         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
4838         (struct machine_function): ... new.  Replaced all references.
4839         (mips_add_gc_roots): Don't mark them.
4840         (embedded_pic_fnaddr_reg): New, extracted from...
4841         (embedded_pic_offset): ... here.
4842         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
4843         (movsi): Likewise.
4844
4845 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4846
4847         * cppinit.c: Revert -MD removal.
4848
4849 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4850
4851         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
4852         soft registers by default for 68HC12.
4853         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
4854         when compiling with -fomit-frame-pointer.
4855         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
4856         (expand_epilogue): Likewise.
4857         (m68hc11_gen_rotate): Use exg when rotating by 8.
4858
4859 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4860
4861         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
4862         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
4863         (splits): Remove unused add splits.
4864         ("*addhi3_68hc12"): Tune constraints.
4865         ("addhi_sp"): Try to use X instead of Y in all cases and if the
4866         constant fits in 8-bits and D is dead use abx/aby instructions.
4867         ("*addhi3"): Remove extern declaration of ix_reg.
4868         ("*subsi3"): Optimize and provide new split.
4869         ("subhi3"): Cleanup.
4870         ("*subhi3_sp"): Avoid saving X if we know it is dead.
4871         (arith splits): For 68hc12 save the address register on the stack
4872         and do the arithmetic operation with a pop.
4873
4874 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4875
4876         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
4877         allocating QImode in address registers.
4878         ("*movqi_m68hc11"): Likewise.
4879
4880 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
4881
4882         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
4883
4884 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4885
4886         * cppinit.c (print_help): Display -MD and -MMD.
4887         Don't display usage string.  Update assertion syntax and
4888         typo.
4889         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
4890         (cpp_handle_option): Update.
4891
4892 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
4893
4894         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
4895         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
4896         and define it so that regardless of target CPU size,
4897         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
4898         of "int" rather than "long."
4899
4900 2002-03-15  Richard Henderson  <rth@redhat.com>
4901
4902         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
4903         size as a tree.
4904
4905 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4906
4907         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
4908         ("tstqi" split): Avoid using memory for tstqi on address register.
4909         (splits): Remove constraints.
4910         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
4911         ("cmpdf", "cmpsf"): Remove since not used.
4912         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
4913         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
4914
4915 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4916
4917         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
4918         ("neghi2"): Tighten constraints.
4919         ("one_cmplsi2"): Optimize and simplify split.
4920         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
4921
4922 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4923
4924         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
4925         and split of AND operation to clear the upper bits.
4926         ("*logicalsi3_zextqi"): Likewise.
4927         ("*logicallhi3_zexthi_ashift8"): Likewise.
4928         ("*logicalsi3_silshr16"): Likewise.
4929         ("logicalsi3_silshl16"): Likewise.
4930         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
4931
4932 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4933
4934         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
4935         (m68hc11_indirect_p): New function.
4936         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
4937         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
4938         TARGET_M6812.
4939         (asm_print_register): Likewise.
4940         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
4941         (m68hc11_indirect_p): Declare.
4942         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
4943         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
4944         (TARGET_SWITCHES): New option -mrelax.
4945         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
4946         destination.
4947         ("iorsi3", "xorsi3"): Likewise.
4948         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
4949         ("*andhi3_mem"): New to handle destination in memory with bclr
4950         and a scratch register.
4951         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
4952         ("*andhi3_const"): New when operand2 is constant.
4953         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
4954         ("*andhi3_gen"): Cleanup of the old "andhi3".
4955         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
4956         ("xorqi3"): Update constraints.
4957
4958 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4959
4960         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
4961         for reg_equiv_memory_loc when the operand is a register that does
4962         not get a hard register (stack location).
4963         (tst_operand): After reload, accept all memory operand.
4964         (symbolic_memory_operand): Fix detection of symbolic references.
4965         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
4966         accept symbols and any constant.
4967
4968 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4969
4970         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
4971         note on the insn that sets the soft frame register.
4972         (must_parenthesize): ix and iy are also reserved names.
4973         (print_operand_address): One more place where parenthesis are required
4974         to avoid confusion with register names.
4975         (m68hc11_gen_movhi): Allow push of stack pointer.
4976         (m68hc11_check_z_replacement): Fix handling of parallel with a
4977         clobber.
4978         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
4979         the replacement register is.
4980         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
4981         and D8_REGS classes.
4982         (MODES_TIEABLE_P): All modes are tieable except QImode.
4983
4984 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4985
4986         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
4987         (___subdi3): Likewise.
4988         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
4989         (__map_data_section): Optimize 68hc11 case.
4990
4991 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4992
4993         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
4994         than a shift to avoid adding a register with itself.
4995         (m68hc11_memory_move_cost): Take into account NO_REGS.
4996         (m68hc11_register_move_cost): Update and use memory move cost
4997         for soft registers.
4998         (m68hc11_address_cost): Make cost of valid offset not 0 so that
4999         it gives more opportunities to cse to optimize.
5000         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
5001         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
5002
5003 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
5004
5005         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
5006         * c-common.def (CLEANUP_STMT): New tree node.
5007         * c-common.h (CLEANUP_DECL): New macro.
5008         (CLEANUP_EXPR): Likewise.
5009         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
5010         * expr.c (expand_expr): Tidy.
5011         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
5012         * tree-inline.c (initialize_inlined_parameters): Clean up
5013         new local variables.
5014
5015 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5016
5017         PR bootstrap/4128
5018         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
5019         before movrXX only, use reg_overlap_mentioned_p.
5020         Only special case NE if just one insn can be generated.
5021
5022 2002-03-15  Jason Merrill  <jason@redhat.com>
5023
5024         * varasm.c (assemble_variable): Call resolve_unique_section before
5025         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
5026         of error_mark_node.
5027
5028 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5029
5030         PR target/5170
5031         * arm.md (split pattern for thumb shiftable immediates): Add comment
5032         explaining non-obvious test.
5033
5034 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5035
5036         PR target/5712
5037         * arm.md (movaddr, movaddr_insn): Delete.
5038
5039 2002-03-15  Jason Merrill  <jason@redhat.com>
5040
5041         * toplev.c (wrapup_global_declarations): Clarify variable handling.
5042         -fkeep-static-consts doesn't apply to comdats.
5043
5044 2002-03-14  Richard Henderson  <rth@redhat.com>
5045
5046         * c-decl.c: Include c-pragma.h.
5047         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5048         (finish_function): Tidy.
5049         * c-pragma.c: Include c-common.h.
5050         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
5051         (handle_pragma_weak): Use them.
5052         (init_pragma): Register pending_weaks.
5053         * c-pragma.h (maybe_apply_pragma_weak): Declare.
5054         * print-tree.c (print_node): Print DECL_WEAK.
5055         * varasm.c (mark_weak_decls): Remove.
5056         (remove_from_pending_weak_list): Remove.
5057         (add_weak): Remove.
5058         (asm_emit_uninitialised): Call globalize_decl for weak commons.
5059         (weak_decls): Make a tree_list.
5060         (declare_weak): Cons weak_decls directly.
5061         (globalize_decl): Remove weak_decls elements directly.
5062         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
5063         symbols.  Don't pretend to handle aliases.
5064         (init_varasm_once): Update weak_decls registry.
5065         * Makefile.in: Update dependencies.
5066
5067 2002-03-14  Richard Henderson  <rth@redhat.com>
5068
5069         PR target/5312
5070         * config/ia64/ia64.c: Include tm_p.h last.
5071         (gen_nop_type): Remove duplicate definition.
5072         (cycle_end_fill_slots): Set sched_data for second L slot.
5073         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
5074         (nop_cycles_until): Fix typos.
5075
5076 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5077
5078         PR optimization/5891
5079         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
5080
5081 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
5082
5083         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
5084           descriptors correctly.
5085
5086 2002-03-14  Michael Meissner  <meissner@redhat.com>
5087
5088         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
5089         100, allowing MAX_UNROLLED_INSNS to be overridden.
5090
5091         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
5092         --param.
5093
5094         * unroll.c (params.h): Include.
5095         (MAX_UNROLLED_INSNS): Delete, now in params.h.
5096
5097         * doc/invoke.texi (--param max-unroll-insns): Document.
5098
5099         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
5100
5101 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5102
5103         * arm.md: Fix warnings about constraints in peepholes and splits.
5104
5105 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
5106
5107         * cpphash.h (struct lexer_state): Remove line_extension member.
5108         * cpplib.c (dequote_string, do_linemarker): New functions.
5109         (linemarker_dir): New data object.
5110         (DIRECTIVE_TABLE): No longer need to interpret #line in
5111         preprocessed source.  Delete obsolete comment about return
5112         values of handlers.
5113         (end_directive, directive_diagnostics, _cpp_handle_directive):
5114         Don't muck with line_extension.
5115         (directive_diagnostics): No need to issue warnings for
5116         linemarkers here.
5117         (_cpp_handle_directive): Issue warnings for linemarkers here,
5118         when appropriate.  Dispatch linemarkers to do_linemarker, not
5119         do_line.
5120         (do_line): Code to handle linemarkers split out to do_linemarker.
5121         Convert escape sequences in filename argument, both places.
5122
5123         * cppmacro.c (quote_string): Rename cpp_quote_string and
5124         export.  All callers changed.
5125         * cpplib.h (cpp_quote_string): Prototype.
5126         * cppmain.c (print_line): Call cpp_quote_string on to_file
5127         before printing it.
5128
5129         * doc/cpp.texi: Document that escapes are now interpreted in
5130         #line and in linemarkers, and that non-printing characters are
5131         converted to octal escapes when linemarkers are generated.
5132
5133 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
5134
5135         * emit-rtl.c (try_split): Use delete_insns.
5136         * recog.c (split_all_insns): Fix terminating condition.
5137
5138 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5139             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5140
5141         PR target/5828
5142         * arm.c (arm_output_epilogue): Fix floating-point register save
5143         adjustment when using a frame pointer.
5144
5145 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
5146
5147         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
5148         * config/mips/mips.c (compute_frame_size): Retrofit them here.
5149         (save_restore_insns, mips_expand_epilogue): And here.
5150         (build_mips16_call_stub): And here.
5151         (mips_function_value): Use the new macros to decide whether a single
5152         or complex float can be returned in floating-point registers.  Return
5153         a parallel rtx in the complex case.
5154
5155 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
5156
5157         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
5158         call after liveness analysis.
5159
5160         * recog.c (split_insn): Use delete_insn_and_edges.
5161
5162         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
5163         instructions to have branch prediction notes.
5164         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
5165
5166 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
5167
5168         * configure.in: Don't pass -Wno-long-long to a ADA compiler
5169         that doesn't support it.
5170         * configure: Regenerate.
5171
5172 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5173
5174         PR target/5626
5175         * config/sparc/sparc.md (normal_branch, inverted_branch,
5176         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5177         inverted_fp_branch): Adjust calls to output_cbranch.
5178         Set length attribute.
5179         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
5180         output_v9branch.  Set length attribute.
5181         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
5182         predicates.
5183         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
5184         (output_cbranch): Likewise.  Handle far branches.
5185         (output_v9branch): Handle far branches.
5186         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
5187         Adjust prototypes.
5188         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
5189         noov_compare64_op predicates.
5190
5191 2002-03-13  Jason Merrill  <jason@redhat.com>
5192
5193         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
5194         into the function and constify it.
5195         * gthr-dce.h, gthr-solaris.h: Likewise.
5196
5197 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
5198
5199         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
5200         * config/rs6000/rs6000.c (rs6000_va_arg): Use
5201         std_expand_builtin_va_arg if not ABI_V4.
5202
5203 2002-03-13  Jason Merrill  <jason@redhat.com>
5204
5205         * varasm.c (globalize_decl): New fn.
5206         (assemble_start_function): Use it.
5207         (asm_emit_uninitialized): Use it.
5208         (assemble_alias): Use it.
5209         (assemble_variable): Use it.
5210
5211 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
5212
5213         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
5214         2002-03-12 internal visibility change.
5215         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
5216         visibility into SYMBOL_REF_FLAG.
5217
5218 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
5219
5220         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
5221         VOIDmode operand.  Add compile-time optimization for constant results.
5222
5223 2002-03-12  Jason Merrill  <jason@redhat.com>
5224
5225         * c-typeck.c (convert_for_assignment): Don't allow conversions
5226         between pointers and references.  Only allow lvalues to convert to
5227         reference.
5228
5229 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
5230
5231         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
5232         before prologue, to avoid scheduling problems.
5233
5234 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5235
5236         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
5237         (ELIMINABLE_REGS): Add sfp->sp.
5238         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
5239
5240 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5241
5242         PR optimization/5892
5243         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
5244
5245 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5246
5247         * loop.c (basic_induction_var): Don't call convert_modes if mode
5248         classes are different.
5249
5250 2002-03-12  Richard Henderson  <rth@redhat.com>
5251
5252         PR optimization/5901
5253         * function.c (reposition_prologue_and_epilogue_notes): Position
5254         the markers after/before the last/first insn not deleted.
5255
5256 2002-03-12  Richard Henderson  <rth@redhat.com>
5257
5258         PR optimization/5878
5259         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
5260         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
5261         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5262
5263         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
5264         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
5265         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
5266
5267         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
5268         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
5269         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
5270         also.  Don't set it if not flag_pic.
5271         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
5272         to be INVALID_REGNUM when not used.
5273
5274 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
5275
5276         * expmed.c (store_bit_field): Reset alias set for memory.
5277         (extract_bit_field): Same.
5278
5279 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5280
5281         * c-common.c (c_tree_code_type, c_tree_code_length,
5282         c_tree_code_name, add_c_tree_codes): Delete.
5283         * c-common.h (add_c_tree_codes): Delete.
5284         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
5285         Define.
5286         * c-objc-common.c (c_objc_common_init): Don't call
5287         add_c_tree_codes, instead set lang_unsafe_for_reeval.
5288         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
5289         objc_tree_code_name, add_objc_tree_codes): Delete.
5290         (objc_init): Don't call add_objc_tree_codes.
5291         * objc/objc-lang.c (tree_code_type, tree_code_length,
5292         tree_code_name): Define.
5293         * toplev.c (lang_independent_init): Don't set
5294         tree_code_length[IDENTIFIER_NODE].
5295         * tree.c (tree_code_type, tree_code_length, tree_code_name):
5296         Delete definitions, moved to language front-ends.
5297         * tree.def (IDENTIFIER_NODE): Hardwire the length.
5298         * tree.h (tree_code_type, tree_code_length, tree_code_name):
5299         Const-ify.
5300         (tree_code_length): Change type to unsigned char.
5301
5302 2002-03-12  Richard Henderson  <rth@redhat.com>
5303
5304         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
5305         internal visibility change.
5306
5307 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5308
5309         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
5310         validize_mem() instead of change_address to avoid clobbering
5311         memory attributes.
5312
5313 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5314
5315         * c-lex.h (position_after_whitespace): Remove.
5316
5317 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
5318
5319         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
5320         (lex_string): Use unsigned char pointers.
5321
5322 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5323
5324         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
5325         is not a valid memory_operand.
5326
5327 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5328
5329         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
5330         * config/xtensa/lib1funcs.asm: Fix copyright to include
5331         special case for libgcc files.
5332         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
5333         (__divsi3): Likewise.
5334         (__umodsi3): Likewise.
5335         (__modsi3): Likewise.
5336         * config/xtensa/lib2funcs.S: Fix copyright to include
5337         special case for libgcc files.
5338
5339 2002-03-12  Tom Rix  <trix@redhat.com>
5340
5341         * collect2.c (resolve_lib_name): Move outside of
5342         OBJECT_FORMAT_COFF ifdef.
5343         (ignore_library): Same.
5344
5345 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5346
5347         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
5348
5349 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5350
5351         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
5352         to function_section before writing out the constant pool.
5353
5354 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
5355
5356         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
5357         zero_constant.
5358         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
5359
5360 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
5361
5362         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
5363         (adddi3): Likewise.
5364         (movdf): Likewise.
5365         (movdi): Likewise.
5366         (cmpsi splitter): Likewise.
5367         (modsi3): Fail if <= 0.
5368         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
5369         redundant test when HOST_BITS_PER_WIDE_INT != 32.
5370         (reg_or_sub_cint64_operand): Likewise.
5371         (num_insns_constant_wide): Optimize sign extension.
5372         (rs6000_legitimize_address): Likewise.
5373
5374 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5375
5376         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5377         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5378
5379 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5380
5381         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
5382         address calculation.
5383
5384 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5385
5386         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
5387         scratch register to DImode / TImode.
5388         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
5389         register used does not overlap the target.
5390
5391 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5392
5393         * Makefile.in (debug.o): Depend on debug.h.
5394         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
5395         * debug.c (do_nothing_debug_hooks): Likewise.
5396         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
5397         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
5398         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
5399         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
5400         * dwarfout.c (dwarf_debug_hooks): Likewise.
5401         * integrate.c (output_inline_function): Likewise.
5402         * objc/objc-act.c (synth_module_prologue): Likewise.
5403         * sdbout.c (sdb_debug_hooks): Likewise.
5404         * toplev.c (debug_hooks): Likewise.
5405         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5406
5407 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5408
5409         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
5410         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
5411         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
5412         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
5413         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
5414         * defaults.h (POINTER_SIZE): Define.
5415         * doc/tm.texi (POINTER_SIZE): Document default.
5416
5417 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5418
5419         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
5420
5421 2002-03-11  Richard Henderson  <rth@redhat.com>
5422
5423         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
5424         if rebuild_label_notes_after_reload.
5425
5426 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
5427
5428         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
5429         emit pic register load if "internal" visibility.
5430         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
5431         (cris_expand_builtin_va_arg): Do all computations on trees.
5432
5433 2002-03-11  Richard Henderson  <rth@redhat.com>
5434
5435         * rtlanal.c: Include recog.h.
5436         (keep_with_call_p): Fix thinko.
5437         * Makefile.in (rtlanal.o): Update dependencies.
5438
5439 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
5440
5441         * genflags.c (gen_insn): Use IS_VSPACE.
5442         * genoutput.c (output_insn_data): Likewise.
5443         (process_template): Likewise.
5444
5445 2002-03-11  Richard Henderson  <rth@redhat.com>
5446
5447         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
5448
5449 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5450
5451         * Makefile.in: Update.
5452         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
5453         Update documentation.
5454         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
5455         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
5456
5457 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
5458
5459         * Makefile.in: Give texi2pod its input file as a command line
5460         argument, not on stdin.
5461
5462 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
5463             Daniel Berlin  <dan@dberlin.org>
5464
5465         C++ alias analysis improvement.
5466         * alias.c (record_component_aliases): Record aliases for base
5467         classes too.
5468
5469 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5470
5471         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
5472
5473 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
5474
5475         * toplev.c (vms_fopen): Remove, not needed.
5476
5477         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
5478
5479         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
5480
5481         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
5482         for FP, already done later.
5483
5484         * toplev.c (debug_args): Add entry for VMS_DEBUG.
5485         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
5486
5487 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
5488
5489         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
5490         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
5491         LARGEST_EXPONENT_IS_NORMAL for the given mode.
5492         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
5493         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
5494         (ediv, emul, eldexp, esqrt): Likewise.
5495         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
5496         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
5497         (saturate): New function.
5498         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
5499         (make_nan): Use a saturation value instead of a NaN if
5500         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
5501         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
5502         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
5503         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
5504         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
5505         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
5506         !ROUND_TOWARDS_ZERO.
5507         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
5508         (ROUND_TOWARDS_ZERO): Document.
5509
5510 2002-03-11  Andreas Jaeger  <aj@suse.de>
5511
5512         * cfg.c (dump_flow_info): Remove unused variable.
5513
5514 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
5515
5516         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
5517         computations on trees.
5518
5519 2002-03-10  Richard Henderson  <rth@redhat.com>
5520
5521         PR 5693:
5522         * reload.c (copy_replacements_1): New.
5523         (copy_replacements): Use it to recurse through the rtx.
5524
5525 2002-03-10  Richard Henderson  <rth@redhat.com>
5526
5527         * loop.c (strength_reduce): Compute number of iterations as
5528         unsigned HOST_WIDE_INT.
5529
5530 2002-03-10  Richard Henderson  <rth@redhat.com>
5531
5532         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
5533         to move away from the end of the block.
5534
5535 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5536
5537         PR preprocessor/5899
5538         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
5539
5540 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5541
5542         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
5543
5544         * attribs.c (decl_attributes): Fix signed/unsigned warning.
5545
5546 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
5547
5548         * config/mmix/mmix.c: Improve comments.
5549         (mmix_target_asm_function_prologue): Drop variable
5550         empty_stack_frame.  Don't allocate unused slot above fp.
5551         (mmix_target_asm_function_epilogue): Mirror prologue changes.
5552         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
5553         brace in first column.
5554         (enum reg_class): Ditto.
5555         (FIRST_PARM_OFFSET): Now 0.
5556         (USER_LABEL_PREFIX): Remove #if 0:d definition.
5557
5558 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5559
5560         * combine.c (make_extraction): Fix error in last change.
5561
5562 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5563
5564         * c4x.c (c4x_fp_reglist): Const-ify.
5565         * cris.c (cris_print_operand): Likewise.
5566         * i386.c (ix86_va_arg): Likewise.
5567         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
5568         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
5569         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
5570         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
5571         * mcore.h (regno_reg_class): Likewise.
5572         * mips.c (gen_int_relational): Likewise.
5573         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
5574         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
5575         * pdp11.c (move_costs): Likewise.
5576         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
5577         * s390.c (s390_branch_condition_mnemonic, regclass_map):
5578         Likewise.
5579         * s390.h (regclass_map): Likewise.
5580         * sh.c (shift_amounts): Likewise.
5581         * sh.md (rotlsi3): Likewise.
5582
5583 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5584
5585         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
5586         (ne0+5): Use new clobber to generate proper shift pattern.
5587         Patch by Michael Matz <matz@kde.org>.
5588
5589 2002-03-09  Andreas Schwab  <schwab@suse.de>
5590
5591         * gcc.c (validate_all_switches): Also handle `%W{...}'.
5592
5593 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5594
5595         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
5596
5597 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
5598
5599         PR middle-end/5877
5600         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
5601         even for non-representable constants.
5602
5603 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5604
5605         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
5606         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
5607         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
5608         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
5609         (pop_function_context): Compute MAY_SHARE parameter for
5610         fixup_var_refs.
5611         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
5612         (gen_mem_addressof): Call fixup_var_refs with new parm.
5613
5614         * combine.c (make_extraction): Don't make extension of CONST_INT.
5615
5616 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5617
5618         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
5619         in o32 and o64 ABIs.
5620         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
5621         but getting fixed-size structs passed in registers regardless of
5622         padding in o32 and o64 ABIs.
5623
5624         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
5625         offset before loading address of argument passed by transparent
5626         reference.
5627
5628 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5629
5630         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
5631
5632 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5633
5634         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
5635         marker such that registers after it are saved.
5636
5637 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5638
5639         * sparc.c (arith_4096_operand): Fix error in last change.
5640
5641 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5642
5643         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
5644         defaults for MEABI.
5645
5646 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5647
5648         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
5649         vectors.
5650
5651 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5652
5653         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
5654
5655 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
5656
5657         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
5658         removed; fix return value.
5659         * combine.c (combine_instructions): Dirtify blocks where we failed to
5660         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
5661         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
5662
5663 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5664
5665         * gcse.c (insert_insn_end_bb): Fix typo in last change.
5666
5667 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
5668
5669         * recog.c (peephole2_optimize): Re-distribute EH edges.
5670
5671 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5672
5673         * expr.c (expand_expr): Use unsave lang hook.
5674         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
5675         (LANG_HOOKS_INITIALIZER): Update.
5676         * langhooks.h (struct lang_hooks): New hook unsave.
5677         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
5678         (unsave_expr_1): Remove unused lang_unsave_expr_now.
5679         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
5680         (unsave_expr_now): Remove.
5681         * tree.h (unsave_expr_now, lang_unsave,
5682         lang_unsave_expr_now): Remove.
5683         (lhd_unsave): New.
5684
5685 2002-03-08  Andreas Jaeger  <aj@suse.de>
5686
5687         * flow.c (propagate_block_delete_insn): Remove unused variable.
5688
5689 2002-03-08  Kazu Hirata  <kazu@hxi.com>
5690
5691         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
5692         insn length for memory load/store.
5693
5694 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5695
5696         * doc/install.texi (--with-libiconv-prefix): Document.
5697
5698 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
5699
5700         * doc/sourcebuild.texi: Fix typo.
5701
5702 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR c/3711
5705         * builtins.c (std_expand_builtin_va_arg): Do all computations on
5706         trees.
5707
5708 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5709
5710         * rtl.c (copy_most_rtx): Move from here ...
5711         * emit-rtl.c (copy_most_rtx): ... to here.
5712
5713 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5714
5715         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
5716         SUBTARGET_CPP_SIZE_SPEC.
5717         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
5718
5719         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
5720
5721 2002-03-07  Matt Hiller  <hiller@redhat.com>
5722
5723         * gensupport.c (first_dir_md_include): Renamed from include;
5724         change all references.
5725         (last_dir_md_include): Renamed from last_include; change all
5726         references.
5727         (init_md_reader): Unconditionally initialize base_dir whether or
5728         not filename is a relative path.
5729
5730 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
5731
5732         * config/fp-bit.c (_unord_f2): Compile it in even if
5733         US_SOFTWARE_GOFAST is enabled.
5734
5735         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
5736         NULL_RTX.  Set all HFmode operations as NULL_RTX.
5737         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
5738         NULL_RTX, try reversing the comparison and the operands.
5739
5740 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
5741
5742         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
5743         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
5744         and MATCH_OP_DUP.
5745
5746 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
5747
5748         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
5749
5750 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
5751
5752         * basic-block.h (fixup_abnormal_edges): Declare.
5753         * reload1.c (fixup_abnormal_edges): New function.
5754         * reg-stack.c (convert_regs): Use it.
5755
5756         * gcse.c (insert_insn_end_bb): Handle trapping insns.
5757
5758         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
5759
5760 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
5761
5762         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
5763         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
5764         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
5765         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
5766         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
5767         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
5768         unless x and y could be infinite.
5769         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
5770         Check that the common type of both arguments is a real, even for
5771         targets without unordered comparisons.  Allow an integer argument
5772         to be compared against a real.
5773         (expand_tree_builtin): Use expand_unordered_cmp.
5774         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
5775         * cse.c (fold_rtx): Likewise.  Fix indentation.
5776         * fold-const.c (fold_real_zero_addition_p): New.
5777         (fold): Use it, and the new HONOR_... macros.
5778         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
5779         * jump.c (reversed_comparison_code_parts): After searching for
5780         the true comparison mode, use HONOR_NANS to decide whether it
5781         can be safely reversed.
5782         (reverse_condition_maybe_unordered): Remove IEEE check.
5783         * simplify-rtx.c (simplify_binary_operation): Use the new macros
5784         to decide which simplifications are valid.  Allow the following
5785         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
5786         and (a - -b) to (a + b).
5787         (simplify_relational_operation): Use HONOR_NANS.
5788         * doc/tm.texi: Document the MODE_HAS_... macros.
5789
5790 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
5791
5792         * combine.c (simplify_comparison): If simplifying a logical shift
5793         right and compare with constant, force the comparison to unsigned.
5794
5795 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
5796
5797         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
5798
5799         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
5800         -mabi=no-altivec
5801         (alt_reg_names): Remove % for vrsave.
5802
5803 2002-03-06  Richard Henderson  <rth@redhat.com>
5804
5805         PR optimization/5844
5806         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
5807         if used indicates we've already emitted one copy of an operand.
5808         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
5809         (gen_split): Supply a non-null used.
5810
5811 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
5812
5813         * reload1.c (reload): Unshare all rtl after reload is done.
5814
5815         * simplify-rtx.c (simplify_plus_minus): Do not abort,
5816         but simply fail if the expression is too complex to simplify.
5817         (simplify_gen_binary): Handle simplify_plus_minus failures.
5818
5819 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
5820
5821         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
5822         consistently call delete_trivially_dead_insns after CSE and GCSE;
5823         fix DFI_life dumping; do jump threading after liveness; do crossjumping
5824         after liveness2; update comment in last crossjumping.
5825         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
5826
5827 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
5828
5829         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
5830         after completing fast dead code elimination.
5831
5832         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
5833         COMPARE operator.
5834
5835 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
5836
5837         * version.c:  Fix misplaced leading blanks on first line.
5838
5839 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
5840
5841         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
5842
5843 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
5844
5845         * cfgcleanup.c (mentions_nonequal_regs): New function.
5846         (thread_jump): Use it.
5847         * toplev.c (rest_of_compilation): Run jump threading after
5848         liveness.
5849
5850 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
5851
5852         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
5853         patch.
5854
5855 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
5856
5857         * predict.c (estimate_bb_frequencies): Do not reload the
5858         frequencies from notes.
5859
5860 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
5861
5862         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
5863         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
5864
5865         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
5866         delete_noop_moves): Return indeger.
5867         * flow.c (ndead): New variable.
5868         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
5869         BB argument; update callers.
5870         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
5871         (life_analysis): Do not call purge_all_dead_edges.
5872         (update_life_info): Return number of deleted insns; print statistics.
5873         (update_life_info_in_dirty_blocks): likewise.
5874         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
5875         return number of insns deleted.
5876
5877         * cse.c: Include timevar.h
5878         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
5879         iterate until stabilizes; print statistics; return number of killed
5880         insns.
5881         * Makefile.in: (cse.o): Add timevar.h dependency
5882         * rtl.h (delete_trivially_dead_insns): New.
5883         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
5884         * toplev.c (rest_of_compilation): Update callers.
5885
5886         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
5887         (try_optimize_cfg): Do not update liveness.
5888         (cleanup-cfg): Loop until try_optimize_cfg and dead code
5889         removal stabilizes; use delete_trivially_dead_insns.
5890
5891         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
5892
5893 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
5894
5895         * cppmain.c (setup_callbacks): Disable #pragma and #ident
5896         callbacks when processing assembly language.
5897
5898 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5899
5900         * pa.h (ASM_FILE_END): Define.
5901         * som.h (ASM_FILE_END): Delete.
5902
5903         * pa.c (function_arg): Don't pass floats in general registers in
5904         indirect calls if TARGET_ELF32.
5905
5906 2002-03-05  Richard Henderson  <rth@redhat.com>
5907
5908         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
5909
5910 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
5911
5912         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
5913
5914 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
5915
5916         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
5917         -r command line.  Don't hide any symbols if not building
5918         shared libgcc.
5919
5920 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
5921
5922         * cfg.c (dump_flow_info): Warn about profile mismatches.
5923         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
5924         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
5925
5926 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
5927
5928         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
5929         wide volatile memory by parts.
5930
5931 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
5932
5933         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
5934         is NULL.
5935
5936 2002-03-05  Richard Henderson  <rth@redhat.com>
5937
5938         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
5939
5940 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
5941
5942         * toplev.c (documented_lang_options): Document more
5943         language-specific options.
5944         * doc/invoke.texi (Warning Options): Correct documentation for
5945         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
5946         * c-decl.c (c_decode_option): Use a table to handle warning options.
5947
5948 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
5949
5950         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
5951         parameter to mmix_encode_section_info.
5952         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
5953         relocatably.  Always produce ELF, not mmo if linking relocatably.
5954         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
5955         first is non-zero, don't add symbol prefix.
5956         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
5957         prototype accordingly.
5958
5959 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
5960
5961         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
5962
5963 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
5964
5965         * configure.in: Increase required makeinfo version to 4.1.
5966         * configure: Regenerate.
5967
5968 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
5969
5970         * .cvsignore: Remove *.info* and genrtl*; these files are generated
5971         elsewhere now.
5972
5973 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5974
5975         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
5976         * doc/invoke.texi: Fix @math uses.
5977
5978 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
5979
5980         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
5981         removal
5982
5983 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
5984
5985         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
5986         (powerpc-*-eabisimaltivec*): Same.
5987
5988         * config/rs6000/t-ppcendian: New.
5989
5990 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5991
5992         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
5993         nonimmediate_src_operand and nonimmediate_lsrc_operand to
5994         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
5995
5996 2002-03-03  Richard Henderson  <rth@redhat.com>
5997
5998         * toplev.c (rest_of_decl_compilation): Revert last two changes.
5999
6000 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
6001
6002         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
6003         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
6004         tree.c, config/m68k/m68k.c:
6005         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
6006         REAL_ARITHMETIC blocks unconditional.  Delete some further
6007         #ifdef blocks predicated on REAL_ARITHMETIC.
6008         * flags.h, toplev.c: Delete remaining references to
6009         flag_pretend_float.
6010
6011         * doc/invoke.texi: Remove documentation of -fpretend-float.
6012         * doc/tm.texi: Describe the various REAL_* macros as provided by
6013         real.h, not by the target configuration files.
6014
6015         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
6016         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
6017         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
6018         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
6019         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
6020         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
6021         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
6022         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
6023         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6024         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
6025         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
6026         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6027         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
6028         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
6029         config/xtensa/xtensa.h:
6030         Do not define, undefine, or mention in comments any of
6031         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
6032         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
6033         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
6034         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
6035         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
6036         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
6037         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
6038         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
6039         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
6040
6041 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6042
6043         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
6044         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
6045         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
6046         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
6047         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
6048         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
6049         Delete.
6050         * defaults.h (BITS_PER_WORD): Define.
6051         * doc/tm.texi (BITS_PER_WORD): Document default value.
6052
6053         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
6054         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
6055         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
6056
6057 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6058
6059         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
6060         lieu of explicit sizeof/sizeof.
6061         * i386.c (override_options, ix86_init_mmx_sse_builtins,
6062         ix86_expand_builtin): Likewise.
6063         * mips.c (mips_add_gc_roots): Likewise.
6064         * mmix.c (mmix_output_condition): Likewise.
6065         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
6066         altivec_init_builtins): Likewise.
6067         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
6068         * cppexp.c (Nsuff, parse_number): Likewise.
6069         * cppinit.c (builtin_array_end): Likewise.
6070         * gcc.c (n_default_compilers, process_command): Likewise.
6071         * genpreds.c (output_predicate_decls): Likewise.
6072         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
6073         * lcm.c (N_ENTITIES): Likewise.
6074         * stor-layout.c (set_sizetype): Likewise.
6075
6076 2002-03-03  Richard Henderson  <rth@redhat.com>
6077
6078         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
6079         for types or labels.
6080
6081 2002-03-03  Richard Henderson  <rth@redhat.com>
6082
6083         * c-decl.c (start_decl): Initialized variables are not common.
6084
6085 2002-03-02  Per Bothner  <per@bothner.com>
6086
6087         * gcc.c (option_map):  Suport new --bootclasspath option.
6088         --CLASSPATH is now just an alias for --classpath.
6089
6090 2002-03-02  Richard Henderson  <rth@redhat.com>
6091
6092         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
6093         load if "internal" visibility.
6094         * doc/extend.texi: Document visibility meanings.
6095
6096 2002-03-02  Richard Henderson  <rth@redhat.com>
6097
6098         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
6099         to functions as well.
6100
6101 2002-03-02  Richard Henderson  <rth@redhat.com>
6102
6103         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
6104         (handle_visibility_attribute): Don't call assemble_visibility.
6105         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
6106         without asmspec.  Invoke assemble_alias when needed.
6107         * varasm.c (maybe_assemble_visibility): New.
6108         (assemble_start_function, assemble_variable, assemble_alias): Use it.
6109
6110 2002-03-02  Richard Henderson  <rth@redhat.com>
6111
6112         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
6113         invoke ENCODE_SECTION_INFO with first call flag.
6114
6115         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
6116         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
6117         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
6118         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
6119         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
6120         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
6121         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
6122         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
6123         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
6124         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
6125         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6126         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
6127         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
6128         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
6129         config/mcore/mcore-protos.h, config/mcore/mcore.c,
6130         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
6131         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
6132         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6133         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
6134         config/sh/sh.h, config/sparc/sparc.h,
6135         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
6136         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
6137         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
6138         FIRST argument.  As needed, examine it and do nothing.
6139
6140         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
6141         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
6142         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
6143
6144         * config/arm/t-pe (pe.o): Add dependencies.
6145
6146 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6147
6148         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
6149         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
6150         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
6151         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
6152         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
6153         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
6154         * defaults.h (BITS_PER_UNIT): Define.
6155         * doc/tm.texi (BITS_PER_UNIT): Document default value.
6156
6157 2002-03-02  Kazu Hirata  <kazu@hxi.com>
6158
6159         * config/h8300/h8300-protos.h: Add a prototype for
6160         compute_a_shift_length.
6161         * config/h8300/h8300.c (h8300_asm_insn_count): New.
6162         (compute_a_shift_length): Likewise.
6163         (h8300_adjust_insn_length): Do not adjust insn length of shift
6164         insns.
6165         * config/h8300/h8300.md (anonymous shift patterns): Use
6166         compute_a_shift_length.
6167
6168 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6169
6170         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
6171         trunc_int_for_mode.
6172
6173         * emit-rtl.c (offset_address): Call update_temp_slot_address.
6174
6175 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6176
6177         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
6178         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
6179         * flags.h (flag_zero_initialized_in_bss): Declare.
6180         * toplev.c (flag_zero_initialized_in_bss): New flag.
6181         (lang_independent_options): Add flag_zero_initialized_in_bss.
6182         * tree.c (initializer_zerop): New function.
6183         * tree.h (initializer_zerop): Declare.
6184         * varasm.c (assemble_variable): If we can emit bss, put zero
6185         initializers in the bss section.
6186
6187 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
6188
6189         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
6190         like more than one symbol per .weak directive.
6191
6192 2002-03-01  Richard Henderson  <rth@redhat.com>
6193
6194         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
6195         adjust argument_pointer by pretend_args_size.
6196         (ia64_va_start): Adjust va_start address by -pretend_args_size.
6197
6198 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6199
6200         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
6201
6202 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
6203
6204         * toplev.c (rest_of_compilation): Delete dead jumptables before
6205         loop.
6206         * flow.c (delete_dead_jumptables): Make global.
6207         * rtl.h (delete_dead_jumptables): Declare.
6208
6209 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
6210
6211         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
6212         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
6213         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
6214
6215 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6216
6217         * config/h8300/h8300-protos.h: Fix formatting.
6218         * config/h8300/h8300.c: Likewise.
6219         * config/h8300/h8300.h: Likewise.
6220
6221 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6222
6223         * config/h8300/h8300.c (print_operand): Support 16-bit
6224         constant addresses.
6225         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
6226
6227 2002-02-28  Richard Henderson  <rth@redhat.com>
6228
6229         * expmed.c (store_bit_field): Prevent generation of CONCATs;
6230         pun complex values as integers; use gen_lowpart instead of
6231         gen_rtx_SUBREG.
6232         (extract_bit_field): Likewise.
6233
6234 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
6235             David Edelsohn  <edelsohn@gnu.org>
6236
6237         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
6238         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
6239         (SUPPORTS_WEAK): Likewise.
6240         * output.h (add_weak): Add tree param.
6241         * varasm.c (add_weak): Likewise.  Save decl.
6242         (struct weak_syms): Add decl field.
6243         (mark_weak_decls): New function.
6244         (init_varasm_once): ggc_add_root mark_weak_decls.
6245         (assemble_start_function): Use ASM_WEAKEN_DECL.
6246         (assemble_variable): Likewise.
6247         (assemble_alias): Likewise.
6248         (declare_weak): Pass decl to add_weak.
6249         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
6250         (remove_from_pending_weak_list): Declare and define for
6251         ASM_WEAKEN_DECL.
6252         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
6253         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
6254         * defaults.h (SUPPORTS_WEAK): Likewise.
6255         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6256         .weak for code sym.  Do emit .size for descriptor sym.
6257         (ASM_DECLARE_FUNCTION_SIZE): Define.
6258         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
6259         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
6260         .lglobl unless TARGET_XCOFF.  Formatting fixes.
6261         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6262         .weak for code sym.
6263         (HANDLE_PRAGMA_WEAK): Remove.
6264         (ASM_WEAKEN_LABEL): Remove.
6265         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
6266
6267 2002-03-01  Jason Merrill  <jason@redhat.com>
6268
6269         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
6270         (TARGET_EXPR_CLEANUP): New macro.
6271
6272 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
6273
6274         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
6275         to take ptr_extend into account as third type of extension.
6276         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
6277         fields used by SUBREG_PROMOTED_UNSIGNED_P.
6278         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
6279         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
6280         * calls.c (precompute_arguments): Use new macro.
6281         (expand_call): Ditto.
6282         * combine.c (nonzero_bits): Ditto.
6283         (record_promoted_value): Ditto.
6284         * expr.c (store_expr): Ditto.
6285         (expand_expr): Ditto.
6286         * function.c (assign_parms): Ditto.
6287
6288 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
6289
6290         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
6291         override -shared and -shared-libgcc.
6292
6293 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
6294
6295         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
6296         of "ultrasparc".
6297         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
6298         to be broken.
6299
6300 2002-02-28  Richard Henderson  <rth@redhat.com>
6301
6302         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
6303         4 cycle latency from MM producers.
6304         (ia64_internal_sched_reorder): Likewise with pipeline flush.
6305
6306 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
6307
6308         * mklibgcc.in: Don't use GNU make extension.
6309
6310 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6311
6312         * c-parse.in (STATIC): New terminal.
6313         (scspec): New non-terminal.  Update productions accordingly.
6314         (program): Remove bogus ifc / end ifc.
6315         (array_declarator): Simplify production using STATIC.
6316
6317 2002-02-28  Jim Meyering  <meyering@lucent.com>
6318
6319         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
6320         \a still means TARGET_BELL.
6321
6322 2002-02-28  Richard Henderson  <rth@redhat.com>
6323
6324         * haifa-sched.c (sched_emit_insn): New.
6325         (schedule_block): Use last_scheduled_insn to track last insn.
6326         * sched-int.h (sched_emit_insn): Prototype.
6327         * config/ia64/ia64.c (last_issued): Remove.
6328         (ia64_variable_issue): Don't set it.
6329         (nop_cycles_until): Use sched_emit_insn.
6330
6331 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
6332
6333         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
6334         extended constants.
6335
6336 2002-02-28  Kazu Hirata  <kazu@hxi.com>
6337
6338         * config/h8300/h8300.c: Fix formatting.
6339         * config/h8300/h8300.h: Likewise.
6340
6341 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6342
6343         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
6344         which may overwrite the high byte of the frame pointer.
6345
6346 2002-02-28  Bo Thorsen  <bo@suse.de>
6347
6348         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
6349         (STARTFILE_SPEC): Add 64 bit files.
6350         (ENDFILE_SPEC): Likewise.
6351
6352 2002-02-28  Jason Merrill  <jason@redhat.com>
6353
6354         * c-decl.c (finish_function): Only warn about missing return
6355         statement with -Wreturn-type.
6356
6357 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6358
6359         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
6360
6361         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
6362         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
6363
6364 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6365
6366         * basic-block.h (BB_REACHABLE): Renumber.
6367         (BB_DIRTY, BB_NEW): New flags.
6368         (clear_bb_flags): Declare.
6369         (update_life_info_in_dirty_blocks): Declare.
6370         * cfg.c (clear_bb_flags): New function.
6371         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
6372         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
6373         reorder_insns, emit_insn_after): Mark block as dirty.
6374         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
6375         (update_life_info_in_dirty_blocks): New function.
6376         * recog.c (apply_change_group): Dirtify block.
6377
6378         * cse.c (cse_insn): Reorder emitting of jump insn to keep
6379         cfg consistent.
6380         * gcse.c (delete_null_pointer_checks): Likewise.
6381
6382         * toplev.c (dump_file_index): Move cse2 after bp,
6383         add DFI_null
6384         (dump_file_info): Similary.
6385         (rest_of_compilation): Avoid most of CFG rebuilds;
6386         do first if converision after null pointer checks, do cse2
6387         after branch prediction; avoid full liveness rebuild after
6388         initializing subregs.
6389         * invoke.texi (-d options): Document -du, renumber.
6390
6391         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
6392         (notice_new_block): Do not set BB_UPDATE_LIFE.
6393         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
6394          merge_blocks_move_successor_nojumps, merge_blocks,
6395          try_crossjump_to_edge): Likewise.
6396         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
6397         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
6398         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
6399         (merge_of_block): Do not use life_data_ok.
6400         (find_if_case_1): Do not use SET_UPDATE_LIFE.
6401         (if_convert): Use BB_DIRTY mechanizm to update life.
6402         * lcm.c (optimize_mode_switching): Update
6403         update_life_info_in_dirty_blocks
6404
6405 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6406
6407         * Makefile.in (integrate.o): Update.
6408         * c-decl.c (copy_lang_decl): Rename.
6409         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6410         * integrate.c: Include langhooks.h.
6411         (copy_decl_for_inlining): Update to use langhook.
6412         * langhooks-def.h (lhd_do_nothing_t,
6413         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
6414         (LANG_HOOKS_INITIALIZER): Update.
6415         * langhooks.c (lhd_do_nothing_t): New.
6416         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
6417         * tree.h (copy_lang_decl): Remove.
6418 objc:
6419         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6420
6421 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
6422
6423         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
6424         POST_DEC, and POST_MODIFY.
6425
6426 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6427
6428         * c-typeck.c (digest_init): Remove unused parameter; all
6429         callers changed.
6430
6431 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
6432
6433         * expmed.c (expand_shift): Correctly test for low part of a
6434         subreg.
6435
6436 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
6437
6438         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
6439         insn UIDs with insn addresses.
6440
6441 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6442
6443         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
6444         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
6445         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
6446         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
6447         gcc.c, toplev.c: Delete code implementing -traditional mode.
6448
6449         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
6450         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
6451         Document removal of -traditional mode for compilation, and
6452         remove documentation only relevant to that mode.
6453
6454         * config/nextstep.h, config/ptx4.h, config/svr4.h,
6455         config/convex/convex.h, config/d30v/d30v.h,
6456         config/i386/dgux.h, config/i386/osf1elf.h,
6457         config/i386/osfelf.h, config/i386/osfrose.h,
6458         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
6459         config/m68k/hp310.h, config/m88k/dgux.h,
6460         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
6461         config/m88k/m88k.h, config/m88k/openbsd.h,
6462         config/mips/abi64.h, config/mips/osfrose.h,
6463         config/mips/svr4-5.h, config/mips/svr4-t.h,
6464         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6465         config/stormy16/stormy16.h: Remove all references to
6466         -traditional from target specs.  Delete all mention of the
6467         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
6468         delete a couple of commented-out definitions of
6469         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
6470         to -traditional.
6471
6472         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
6473         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
6474
6475 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6476
6477         * mklibgcc.in: Don't use \n in a line subject to
6478         interpretation by echo.
6479
6480 2002-02-27  Graham Stott  <grahams@redhat.com>
6481
6482         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
6483         Constify NAME.
6484
6485         * loop.c (prescan_loop): Handle PARALLEL.
6486
6487         * unroll.c (loop_iterations): Return 0 if the add_val for
6488         a BIV is REG.
6489
6490         * final.c (output_operand_lossage): Constify PFX_STR.
6491
6492         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
6493
6494 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6495
6496         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
6497         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
6498
6499 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
6500
6501         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6502
6503 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6504
6505         * cpplex.c (_cpp_lex_token): Handle directives in macro
6506         arguments.
6507         * cpplib.c (_cpp_handle_directive): Save and restore state
6508         if parsing macro args when entering a directive.
6509         * cppmacro.c (collect_args): No need to handle directives
6510         in macro arguments.
6511         (enter_macro_context, replace_args): Use the original macro
6512         definition in case it was redefined whilst collecting arguments.
6513 doc:
6514         * cpp.texi: Update.
6515
6516 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
6517
6518         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
6519         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
6520         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
6521         method on AIX.
6522         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
6523         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
6524         (load_toc_v4_PIC_2): Same.
6525
6526 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
6527
6528         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
6529
6530 2002-02-26  Richard Henderson  <rth@redhat.com>
6531
6532         * config/alpha/alpha.md (ashldi_se): Re-enable.
6533
6534 2002-02-26  Richard Henderson  <rth@redhat.com>
6535
6536         * config/alpha/alpha.c (alpha_encode_section_info): Examine
6537         MODULE_LOCAL_P; improve commentary.
6538
6539 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
6540
6541         * doc/cpp.texi: Clarify documentation of relationship between
6542         #line and #include.
6543
6544 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6545
6546         * config/h8300/h8300-protos.h: Update the prototype for
6547         compute_logical_op_length.  Add the prototype for
6548         compute_logical_op_cc.
6549         * config/h8300/h8300.c (compute_logical_op_length): Figure out
6550         code from operands.
6551         (compute_logical_op_cc): New.
6552         * config/h8300/h8300.md: Combine all the logical op patterns
6553         in HImode and SImode.  Use compute_logical_op_cc.
6554
6555 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
6556
6557         * config/i386/i386.c (print_operand): Don't append ATT-style
6558         length suffixs to x87 opcodes when in Intel mode.
6559
6560 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
6561
6562         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
6563         (init_emit_once): Update calls.
6564         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
6565         (init_syntax_once): Prototype.
6566
6567 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6568
6569         * pa-linux.h (LIB_SPEC): Update definition.
6570         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6571
6572 2002-02-26  Richard Henderson  <rth@redhat.com>
6573
6574         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
6575         if we emitted a stop bit.
6576
6577 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6578
6579         * configure.in (libgcc_visibility): Substitute.
6580         * configure: Rebuilt.
6581         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
6582         defined symbols .hidden.
6583
6584 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6585
6586         * attribs.c (c_common_attribute_table): Add visibility.
6587         (handle_visibility_attribute): New function.
6588         * varasm.c (assemble_visibility): New function.
6589         * output.h (assemble_visibility): Add prototype.
6590         * tree.h (MODULE_LOCAL_P): Define.
6591         * crtstuff.c (__dso_handle): Use visibility attribute.
6592         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
6593         for MODULE_LOCAL_P symbols too.
6594         * config/ia64/ia64.c (ia64_encode_section_info): Handle
6595         MODULE_LOCAL_P symbols the same way as local symbols.
6596         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
6597         into .sdata/.sbss by the user.
6598         * doc/extend.texi (Function Attributes): Document visibility
6599         attribute.
6600
6601 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6602
6603         PR debug/5770
6604         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
6605         STRING_CST initializer spanning the whole variable without
6606         embedded zeros.
6607         If expand_expr returned MEM, don't use it.
6608
6609 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
6610
6611         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
6612         generate a die for the lexical block.
6613
6614 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6615
6616         * config/h8300/h8300-protos.h: Add a prototype for
6617         compute_logical_op_length.
6618         * config/h8300/h8300.c (compute_logical_op_length): New.
6619         * config/h8300/h8300.md (anonymous logical patterns): Use
6620         compute_logical_op_length for length.
6621
6622 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6623
6624         * dwarf2out.c (modified_type_die): Do not call type_main_variant
6625         for vectors.
6626         (gen_type_die): Same.
6627
6628         * attribs.c (handle_vector_size_attribute): Set debug information.
6629
6630 2002-02-26  Daniel Egger  <degger@fhm.edu>
6631
6632         * config/rs6000/rs6000.md: Swap define_insn attributes to
6633         fix incorrect generation of merge high instructions instead
6634         of merge low.
6635
6636 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6637
6638         * c-typeck.c (really_start_incremental_init): Use
6639         bitsize_zero_node for vectors.
6640
6641 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6642
6643         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
6644         ("*set_vrsave_internal"): Same.
6645
6646 2002-02-25  Richard Henderson  <rth@redhat.com>
6647
6648         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
6649         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
6650
6651 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
6652
6653         PR target/5755
6654         * config/i386/i386.c (ix86_return_pops_args): Only pop
6655         fake structure return argument if it was passed on the stack.
6656
6657 2002-02-25  Jason Merrill  <jason@redhat.com>
6658
6659         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
6660         RESULT_DECL.
6661
6662 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6663
6664         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
6665         link with shared_name only.
6666         * doc/invoke.texi (Link Options): Document new behavior.
6667
6668 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6669
6670         * c-typeck.c (push_init_level): Handle vectors.
6671
6672 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6673
6674         * config/sparc/sparc.c (const64_high_operand): Zero-extend
6675         operands of SPARC_SETHI_P.
6676         (input_operand): Likewise.
6677         (sparc_emit_set_const32): Likewise.
6678         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
6679         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
6680         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
6681         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
6682         (movdi_insn_sp64_vis): Likewise.
6683         (movdi split, movdf split): Use SETHI32.
6684         * doc/md.texi: Document SPARC constraints L, M and N.
6685
6686 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6687
6688         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
6689         ("*set_vrsave_internal"): use mfspr for Darwin.
6690
6691         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
6692         gen_get_vrsave_internal.
6693
6694 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6695
6696         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
6697
6698 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6699
6700         * cpplex.c (cpp_interpret_charconst): Get signedness or
6701         otherwise of wide character constants correct.
6702         * cppexp.c (lex): Get signedness of wide charconsts correct.
6703
6704 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6705
6706         * optabs.c (widen_operand): Only call convert_modes for
6707         promoted SUBREG if signedness matches.
6708         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
6709
6710 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6711
6712         * cpplib.c (glue_header_name): Use local buffer to build up
6713         header name.
6714
6715 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6716
6717         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
6718
6719 2002-02-23  Kazu Hirata  <kazu@hxi.com>
6720
6721         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
6722         H8/300[HS] separately.
6723         * config/h8300/h8300.md: Remove the early clobber constraint
6724         from bit field patterns.
6725
6726 2002-02-23  Kazu Hirata  <kazu@hxi.com>
6727
6728         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
6729         register_operand.
6730         (mulhisi3): Likewise.
6731         (umulqisi3): Likewise.
6732         (umulhisi3): Likewise.
6733
6734 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6735
6736         * cppinit.c (output_deps): Correct test for stdout output.
6737         (init_dependency_output): Cure warning.
6738
6739 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6740
6741         * expr.c (store_expr): When converting expression to promoted
6742         equivalent type, allow using SUBREG_REG of TARGET as the target
6743         of the expansion of EXP.
6744         * loop.c (basic_induction_var, case SUBREG): Always look inside.
6745         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
6746         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
6747         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
6748         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
6749
6750 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
6751
6752         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
6753         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
6754         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
6755
6756 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
6757
6758         PR optimization/5747
6759         * loop.c (scan_loop): Update reg info if move_movables created new
6760         pseudos.
6761
6762 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
6763
6764         * gcc.c (init_gcc_spec): Revert last change.
6765
6766 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
6767
6768         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
6769         gpc_reg_operand constraint.
6770
6771 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
6772
6773         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
6774         Simplify comparison of `low'.
6775         (add_operand): Fix formatting.
6776         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
6777         (mask_operand): Disallow mask to wrap in 64-bit mode.
6778         (rs6000_stack_info): Remove redundant test setting push_p.
6779         (output_toc): Fix formatting.
6780         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
6781         cc_reg_not_cr0_operand constraint.
6782         (booldi3, boolcdi3 splitters): Same.
6783
6784 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
6785
6786         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
6787
6788 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
6789
6790         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
6791         gcc invoked with -shared-libgcc.
6792
6793 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
6794
6795         PR c++/5748
6796         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
6797         decl if any of elements was TREE_USED.
6798
6799 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
6800
6801         * config/sparc/sol2.h: Don't include sys/mman.h.
6802         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
6803         (arith_4096_operand): Don't throw high bits away.
6804         (const64_operand): Take sign extension of CONST_INTs into account.
6805         (const64_high_operand, sparc_emit_set_const32): Likewise.
6806         (GEN_HIGHINT64): Likewise.
6807         (sparc_emit_set_const64_quick1): Likewise.
6808         (const64_is_2insns): Likewise.
6809         (print_operand): Use trunc_int_for_mode for sign extension.
6810         * config/sparc/sparc.h (SMALL_INT32): Likewise.
6811         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
6812         chars.  Assume CONST_INT is already properly sign-extended.
6813         (movdi split): Sign-extend each SImode part.
6814         (andsi3 split): Don't mask high bits off, so that result
6815         remains properly sign-extend.
6816         (iorsi3 split): Likewise.
6817         (xorsi3 split): Likewise.
6818
6819 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
6820
6821         * fold-const.c (fold): Fix typo in comments.
6822
6823 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
6824
6825         * Makefile.in (langhooks.o): Update dependencies.
6826
6827 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
6828
6829         * langhooks.c: Include flags.h.
6830
6831 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
6832
6833         * testsuite/gcc.dg/attr-alwaysinline.c: New.
6834
6835         * c-common.c (c_common_post_options): Set inline trees by
6836         default.
6837
6838         * doc/extend.texi (Function Attributes): Document always_inline
6839         attribute.
6840         Update documentation about inlining when not optimizing.
6841
6842         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
6843
6844         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
6845         unless DECL_ALWAYS_INLINE.
6846
6847         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
6848         unless DECL_ALWAYS_INLINE.
6849         (c_disregard_inline_limits): Disregard if always_inline set.
6850
6851         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
6852         Disregard if always_inline set.
6853         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
6854         unless DECL_ALWAYS_INLINE.
6855
6856         * attribs.c (handle_always_inline_attribute): New.
6857         (c_common_attribute_table): Add always_inline.
6858
6859         * config/rs6000/altivec.h: Add prototypes for builtins
6860         requiring the always_inline attribute.
6861
6862 2002-02-21  Eric Christopher  <echristo@redhat.com>
6863
6864         * expmed.c (store_bit_field): Try to simplify the subreg
6865         before generating a new one when when the mode size of
6866         value is less than maxmode.
6867
6868 2002-02-21  Richard Henderson  <rth@redhat.com>
6869
6870         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
6871         than gen_rtx_PLUS to form the sum.
6872         * explow.c (force_reg): Rearrange to not allocate new pseudo
6873         when force_operand returns a register.
6874         * expr.c (expand_assignment): Allow offset_rtx expansion to
6875         return a sum.  Do not force addresses into registers.
6876         (expand_expr): Likewise.
6877         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
6878         to canonicalize arithmetic that didn't simpify.
6879         (simplify_plus_minus): New argument force; update
6880         all callers.  Don't split CONST unless we can do something with it,
6881         and wouldn't lose the constness of the operands.
6882
6883         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
6884         that we generated earlier.
6885
6886 2002-02-21  Tom Tromey  <tromey@redhat.com>
6887
6888         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
6889         (output_line_info): Use constant `1', with a long explanatory
6890         comment.
6891         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
6892
6893 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
6894
6895         * jump.c (redirect_jump): If old label has no UID, don't try to
6896         delete it.
6897
6898 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
6899
6900         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
6901         If input is constant, do shifts at compile time.
6902
6903 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6904
6905         * doc/extend.texi: Fix some more overfull hboxes.
6906
6907 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
6908
6909         PR optimization/4994
6910         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
6911         register moves.
6912
6913 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
6914
6915         PR c++/4574
6916         * expr.h (expand_and): Add mode argument.
6917         * expmed.c (expand_and): Add mode argument.
6918         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
6919         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
6920         * except.c (expand_builtin_extract_return_addr): Likewise.
6921         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6922         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
6923         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
6924         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
6925         * config/c4x/c4x.md: Use GEN_INT (x) instead of
6926         gen_rtx (CONST_INT, VOIDmode, x).
6927
6928 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
6929
6930         PR c/4697:
6931         * stmt.c (warn_if_unused_value): Move side effects test once more.
6932
6933 2002-02-20  Torbjorn Granlund  <tege@swox.com>
6934
6935         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
6936         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
6937
6938 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
6939
6940         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
6941         SUBREG or ZERO_EXTEND.
6942
6943 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
6944
6945         * sh.h (current_function_anonymous_args): Remove.
6946         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
6947         of current_function_varargs and current_function_stdarg is set.
6948         * sh.c (sh_expand_prologue): Check current_function_varargs /
6949         current_function_stdarg / TARGET_SH5 instead of
6950         current_function_anonymous_args.
6951
6952         * sh64.h (TARGET_VERSION): Define.
6953
6954 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
6955
6956         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
6957         VRSAVE_REGNO on TARGET_ALTIVEC.
6958
6959 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
6960
6961         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
6962         bits of SImode const_int.
6963         (includes_rshift_p): Likewise.
6964         (print_operand): Call mask_operand and mask64_operand with correct
6965         mode.
6966         (rs6000_output_function_epilogue): Pad traceback table to word.
6967         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
6968         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
6969         mask64_operand with correct mode.
6970         (FUNCTION_ARG_REGNO_P): Correct parentheses.
6971
6972 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
6973
6974         PR debug/4461
6975         * varasm.c (get_pool_constant_mark): New.
6976         * rtl.h (get_pool_constant_mark): Add prototype.
6977         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
6978         be represented if it has not been output.
6979
6980 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
6981
6982         * combine.c (do_SUBST): Sanity check substitutions of
6983         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
6984         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
6985         CONST_INT into its operand.
6986         (known_cond): Likewise, for ZERO_EXTEND.
6987         * simplify-rtx.c (simplify_unary_operation): Fix condition to
6988         allow for simplification of wide modes.  Reject CONST_INTs in
6989         ZERO_EXTEND when their actual mode is not given.
6990
6991 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
6992
6993         * c-decl.c (pushdecl): If no global declaration is found for an
6994         extern declaration in block scope, try a limbo one.
6995
6996 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
6997
6998         PR c++/4401
6999         * c-common.c (pointer_int_sum): Moved from...
7000         * c-typeck.c (pointer_int_sum): ...here.
7001         * c-common.h (pointer_int_sum): Add prototype.
7002
7003 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7004
7005         PR c++/5713
7006         * c-decl.c (duplicate_decls): Return 0 if issued error about
7007         redeclaration.
7008
7009 2002-02-20  Roger Sayle  <roger@eyesopen.com>
7010             Jakub Jelinek  <jakub@redhat.com>
7011
7012         PR c/4389
7013         * tree.c (host_integerp): Ensure that the constant integer is
7014         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
7015         when pos is zero or non-zero respectively.  Clarify comment.
7016         * c-format.c (check_format_info_recurse): Fix host_integerp
7017         usage; the pos argument should be zero when assigning to a
7018         signed HOST_WIDE_INT.
7019
7020 2002-02-20  Richard Henderson  <rth@redhat.com>
7021
7022         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
7023         of the operand, rather than assuming TImode.
7024         (ix86_expand_binop_builtin): Cope with commutative patterns
7025         using nonimmediate_operand for both operands.
7026         (ix86_expand_timode_binop_builtin): Likewise.
7027         (ix86_expand_store_builtin): Validate operand 1.
7028         (ix86_expand_unop1_builtin): Likewise.
7029
7030 2002-02-20  Philip Blundell  <philb@gnu.org>
7031
7032         PR 5705
7033         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
7034
7035 2002-02-20  Richard Henderson  <rth@redhat.com>
7036
7037         PR c/5615
7038         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
7039
7040 2002-02-20  Tom Tromey  <tromey@redhat.com>
7041
7042         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7043         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7044         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7045         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7046         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
7047         unconditionally.
7048
7049 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
7050
7051         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
7052           for (const_int 0) in X not just INTVAL.
7053
7054 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7055
7056         * doc/extend.texi: Avoid or reduce overfull hboxes.
7057
7058 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
7059
7060         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
7061         operations if the field does not start at a mode boundary.
7062
7063 2001-02-20      Joel Sherrill <joel@OARcorp.com>
7064
7065         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
7066         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
7067         Also done for -Acpu and -Amachine.
7068
7069 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7070
7071         * cppinit.c (init_dependency_output): Take deps output file
7072         from -o if none given with -MF.  Suppress normal output.
7073         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
7074         * doc/cpp.texi, doc/invoke.texi: Update.
7075
7076 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7077
7078         * toplev.c (output_quoted_string): Write unprintable
7079         characters with octal escapes.
7080
7081 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7082
7083         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
7084         really_call_used[VRSAVE_REGNO] if not Altivec.
7085
7086 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
7087
7088         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
7089         MODE_MASK.
7090         (constant_pool_expr_1): Fix formatting.
7091         (rs6000_legitimize_reload_address): Likewise.
7092
7093 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7094
7095         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
7096         now that we have one.
7097
7098 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7099
7100         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
7101         end of first block of bitfields (which was only seven bits);
7102         rename dummy to unused_1; remove comment which is no longer true.
7103
7104 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7105
7106         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
7107
7108 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7109
7110         PR 5399
7111         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
7112         if generating PIC.
7113
7114         PR 5054
7115         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
7116         arm_is_longcall_p rather than inspecting call-type cookie
7117         directly.
7118         (call_value_insn) [TARGET_THUMB]: Likewise.
7119
7120 2002-02-19  Graham Stott  <grahams@redhat.com>
7121
7122         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
7123
7124 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7125
7126         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
7127         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
7128         (FP_SAVE_INLINE): Delete.
7129
7130         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
7131         * config/rs6000/eabi.asm: Remove ABI save restore routines.
7132         * config/rs6000/t-ppccomm: Build crtsavres.o.
7133         * config/rs6000/crtsavres.asm: New file.
7134
7135 2002-02-19  Philip Blundell  <philb@gnu.org>
7136
7137         * config/arm/arm.c (use_return_insn): Don't reject interrupt
7138         functions.
7139         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
7140         (output_return_instruction): Allow interrupt functions to return with
7141         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
7142         (arm_expand_prologue): Subtract 4 before stacking LR in an
7143         interrupt function.
7144
7145 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7146
7147         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
7148         decl, not just FUNCTION_DECL.
7149         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
7150         (arm_assemble_integer): Likewise.
7151         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
7152         marked local.
7153
7154 2002-02-19  matthew green  <mrg@eterna.com.au>
7155
7156         * config.gcc (sparc-*-netbsdelf*): Enable target.
7157         (sparc64-*-netbsd*): New target.
7158         * config/sparc/netbsd-elf.h: New file.
7159         * config/sparc/t-netbsd64: New file.
7160
7161 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7162
7163         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
7164
7165 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
7166
7167         * doc/invoke.texi: explicitly list the style guidelines that
7168         -Weffc++ checks for.
7169
7170 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
7171
7172         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
7173
7174 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7175
7176         PR other/5718
7177         * gcc.c (cpp_unique_options): Treat -o as indicating object file
7178         only if not -E.  If -E, pass -o through to the preprocessor.
7179
7180 2002-02-19  Kazu Hirata  <kazu@hxi.com>
7181
7182         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
7183         register number with an appropriate macro.
7184
7185 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7186
7187         * doc/rtl.texi (Constants): Close @code tag.
7188
7189 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
7190
7191         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
7192         ("mmx_uavgv4hi3"): Same.
7193         ("pmulhrwv4hi3"): Same.
7194
7195         * tree-inline.c (walk_tree): Handle vectors.
7196
7197         * c-common.c (constant_expression_warning): Handle vectors.
7198         (overflow_warning): Same.
7199
7200         * sched-deps.c (sched_analyze_2): Handle vectors.
7201
7202         * rtlanal.c (rtx_unstable_p): Handle vectors.
7203         (rtx_varies_p): Same.
7204         (count_occurrences): Same.
7205         (regs_set_between_p): Same.
7206         (modified_between_p): Same.
7207         (modified_in_p): Same.
7208         (volatile_insn_p): Same.
7209         (volatile_refs_p): Same.
7210         (side_effects_p): Same.
7211         (may_trap_p): Same.
7212         (inequality_comparisons_p): Same.
7213         (replace_regs): Same.
7214         (computed_jump_p_1): Same.
7215
7216         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
7217         argument.
7218         (inner_mode_array): New.
7219         (copy_rtx): Handle vectors.
7220         (copy_most_rtx): Same.
7221         (rtx_equal_p): Same.
7222         (get_mode_alignment): Adjust for vectors.
7223
7224         * resource.c (mark_referenced_resources): Handle vectors.
7225         (mark_set_resources): Same.
7226
7227         * reload1.c (eliminate_regs): Handle vectors.
7228         (elimination_effects): Same.
7229         (scan_paradoxical_subregs): Same.
7230
7231         * reload.c (subst_reg_equivs): Handle vectors.
7232
7233         * regrename.c (scan_rtx): Handle vectors.
7234
7235         * regclass.c (reg_scan_mark_refs): Handle vectors.
7236
7237         * recog.c (find_single_use_1): Handle vectors.
7238
7239         * local-alloc.c (equiv_init_varies_p): Handle vectors.
7240         (contains_replace_regs): Same.
7241         (memref_referenced_p): Same.
7242
7243         * integrate.c (copy_rtx_and_substitute): Handle vectors.
7244         (subst_constants): Same.
7245
7246         * genattrtab.c (attr_copy_rtx): Handle vectors.
7247         (encode_units_mask): Same.
7248         (clear_struct_flag): Same.
7249         (count_sub_rtxs): Same.
7250
7251         * gcse.c (want_to_gcse_p): Handle vectors.
7252         (oprs_unchanged_p): Same.
7253         (hash_expr_1): Same.
7254         (oprs_not_set_p): Same.
7255         (expr_killed_p): Same.
7256         (compute_transp): Same.
7257         (store_ops_ok): Same.
7258
7259         * function.c (purge_addressof_1): Do not allow paradoxical subregs
7260         of vectors.
7261         (fixup_var_refs_1): Same.
7262         (instantiate_virtual_regs_1): Same.
7263
7264         * fold-const.c (operand_equal_p): Handle vectors.
7265         (fold): Same.
7266         (rtl_expr_nonnegative_p): Same.
7267
7268         * flow.c (mark_used_regs): Handle vectors.
7269
7270         * df.c (df_uses_record): Handle vectors.
7271
7272         * cselib.c (cselib_subst_to_values): Handle vectors.
7273         (cselib_mem_conflict_p): Same.
7274         (hash_rtx): Same.
7275
7276         * cse.c (canon_reg): Handle vectors.
7277         (fold_rt): Same.
7278         (cse_process_notes): Same.
7279         (count_reg_usage): Same.
7280         (canon_hash): Same.
7281
7282         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
7283
7284         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
7285
7286         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
7287         (gen_rtx): Handle CONST_VECTOR.
7288         (gen_const_vector_0): New.
7289         (copy_rtx_if_shared): CONST_VECTORs can be shared.
7290         (reset_used_flags): Same.
7291         (copy_insn_1): Same.
7292         (initializer_constant_valid_p): Handle VECTOR_CST.
7293
7294         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
7295
7296         * doc/rtl.texi (Constants): Document const_vector.
7297         (CONST0_RTX): Update for vectors.
7298         (RTL sharing): Same.
7299
7300         * print-tree.c (print_node): Add case for VECTOR_CST.
7301
7302         * tree.h (TREE_VECTOR_CST_ELTS): New.
7303         (struct tree_vector): New.
7304         (union tree_node): Add vector node.
7305         (build_vector): Add prototype.
7306
7307         * tree.def (VECTOR_CST): New.
7308
7309         * tree.c (build_vector): New.
7310
7311         * expmed.c (make_tree): Handle CONST_VECTOR.
7312
7313         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
7314         (CONST_VECTOR_ELT): New.
7315         (CONST_VECTOR_NUNITS): New.
7316
7317         * machmode.h (GET_MODE_INNER): New.
7318         (DEF_MACHMODE): Accept 8th arg.
7319
7320         * machmode.def: Add 8th argument for vector inner mode.
7321         Add inner vector modes for vectors.
7322
7323         * rtl.def (VEC_CONST): Remove.
7324         (CONST_VECTOR): New.
7325
7326         * expr.c (clear_storage): Allow vectors.
7327         (is_zeros_p): Handle VECTOR_CST.
7328
7329         * varasm.c (output_constant_pool): Handle vectors.
7330         (rtx_const): Add veclo and vechi fields.
7331         (kind): Add RTX_VECTOR.
7332         (decode_rtx_const): Add case for vector.
7333
7334         * config/rs6000/rs6000-protos.h: Add zero_constant.
7335
7336         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
7337         constants.  Force easy vector constants into memory.
7338         (easy_vector_constant): New.
7339         (emit_easy_vector_constant): New.
7340         (rs6000_legitimize_reload_address): Do not generate bad reloads on
7341         darwin.
7342
7343         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
7344         instruction does.
7345         ("altivec_lvxl"): Same.
7346         (altivec_lvebx): Same.
7347         (altivec_lvehx): Same.
7348         (altivec_lvewx): Same.
7349         ("*movv4si_const0"): New.
7350         ("*movv4sf_const0"): New.
7351         ("*movv8hi_const0"): New.
7352         ("*movv16qi_const0"): New.
7353
7354 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7355
7356         * config/h8300/h8300.c (notice_update_cc): Use
7357         cc_status.value2.
7358
7359 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7360
7361         * config/h8300/h8300.md (divmod patterns): Change the
7362         constraints for operands[1] to register_operand.
7363
7364 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7365
7366         * config/h8300/h8300-protos.h: Remove the prototype for
7367         p_operand.
7368         * config/h8300/h8300.c (p_operand): Remove.
7369         * config/h8300/h8300.md: Replace p_operand with
7370         const_int_operand.
7371
7372 2002-02-18 Philip Blundell <pb@nexus.co.uk>
7373
7374         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
7375         comment.
7376         (output_return_instruction): Allow use of LDR to unstack
7377         return addresss even for interrupt handlers or when
7378         interworking.  If compiling for ARMv5, use interworking-safe
7379         return instructions by default.  Remove duplicated code and
7380         lengthy "strcat" sequences.
7381
7382 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7383
7384         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
7385         (LINK_EH_SPEC): Define.
7386         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
7387
7388 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7389
7390         * config/s390/s390.c (s390_emit_prologue): Do not set the
7391         frame_related flag for call-clobbered registers.
7392
7393 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7394
7395         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
7396         (construct_container): Fix handling of SSE operands.
7397         (ix86_expand_builtin): Fix handling of 64bit pointers.
7398         (mmx_maskmovq_rex): New pattern.
7399
7400 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7401
7402         * regrename.c (kill_set_value): Handle subregs properly.
7403
7404 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
7405
7406         * objc/objc-act.c (handle_impent): Remove leading '*'
7407         from objc_class_name.
7408
7409 2002-02-17  Richard Henderson  <rth@redhat.com>
7410
7411         * config/alpha/alpha.c (some_small_symbolic_operand,
7412         some_small_symbolic_operand_1, split_small_symbolic_operand,
7413         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
7414         Handle small SYMBOL_REFs anywhere, not just inside memories.
7415         * config/alpha/alpha-protos.h: Update.
7416         * config/alpha/alpha.h (PREDICATE_CODES): Update.
7417         * config/alpha/alpha.md (small symbolic operand splitter): Update.
7418
7419 2002-02-17  Roland McGrath  <roland@frob.com>
7420
7421         * config.gcc (powerpc-*-gnu-gnualtivec*,
7422         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
7423         * config/rs6000/gnu.h: New file.
7424         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
7425         Grok "gnu" in rs6000_abi_name.
7426         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
7427         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
7428         Grok -mcall-gnu analogous to -mcall-linux et al.
7429         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7430         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
7431         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
7432
7433 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
7434
7435         PR c/3444:
7436         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
7437         shortening.
7438
7439 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7440
7441         * config/cris/cris.h: Undefine STARTFILE_SPEC and
7442         ENDFILE_SPEC before (re)defining them.
7443
7444 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7445
7446         * config/h8300/h8300.c: Fix formatting.
7447         * config/h8300/h8300.h: Likewise.
7448
7449 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7450
7451         * doc/tm.texi: Explain why empty strings should not be
7452         marked for translation.
7453
7454 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7455
7456         * final.c (output_operand_lossage): Changed to accept
7457         printf style arguments. Change calls where necessary.
7458         * output.h (output_operand_lossage): Change declaration
7459         accordingly. Update copyright.
7460         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
7461         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
7462         Update copyright date where necessary.
7463
7464         * config/i386/i386.c (print_operand): Likewise. Remove use of
7465         sprintf.
7466
7467         * config/cris/cris.c (cris_operand_lossage): Likewise.
7468         Rename parameter so that exgettext recognizes it as
7469         translatable message.
7470         (LOSE_AND_RETURN): Rename parameter to msgid.
7471
7472 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7473
7474         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
7475         hard coded register number with an appropriate macro.
7476         (HARD_REGNO_MODE_OK): Likewise.
7477         (ARG_POINTER_REGNUM): Likewise.
7478         (STATIC_CHAIN_REGNUM): Likewise.
7479         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
7480         * config/h8300/h8300.md (define_constants): Define more
7481         register numbers.
7482
7483 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7484
7485         * config/i386/i386.h: Don't mark empty strings for translation.
7486
7487 2002-02-16  H.J. Lu <hjl@gnu.org>
7488
7489         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
7490
7491 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
7492
7493         * cppinit.c (merge_include_chains): Check for brack being
7494         NULL before attempting to merge it with qtail.
7495
7496 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
7497
7498         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
7499         DBX_DEBUG.
7500
7501 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7502
7503         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
7504
7505 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7506
7507         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
7508         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
7509         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
7510
7511 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7512
7513         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
7514         now only if !TARGET_FIX.
7515         (*movsi_nt_vms_fix): New pattern.
7516
7517 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
7518
7519         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
7520         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
7521         (alpha_sa_mask, alpha_sa_size): Reflect above change.
7522         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
7523         (alpha_start_function, alpha_expand_epilogue): Likewise.
7524         (unicosmk_gen_dsib): Likewise.
7525
7526 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7527
7528         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
7529
7530 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
7531
7532         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
7533         check_and_change_labels, s390_final_chunkify): Delete.
7534         (s390_split_branches, s390_chunkify_pool): New functions.
7535         (s390_function_prologue): Call them.
7536
7537         * config/s390/s390.h (S390_REL_MAX): Delete.
7538         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
7539
7540         * config/s390/s390.md (cjump, icjump, jump): Fix length
7541         attribute calculation.
7542
7543
7544 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
7545
7546         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
7547         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
7548
7549 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7550
7551         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
7552         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
7553         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
7554
7555 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7556
7557         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
7558
7559 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7560
7561         * reload.c (find_dummy_reload): Check that an output register
7562         is valid for its mode.
7563
7564 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
7565
7566         * combine.c (known_cond): After replacing the REG of a SUBREG, try
7567         to simplify it.
7568
7569         * function.c (assign_parms): Demote promoted argument passed by
7570         transparent reference.
7571
7572 2001-02-14      Joel Sherrill <joel@OARcorp.com>
7573
7574         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
7575         -Acpu() and -Amachine() to eliminate warnings.
7576
7577 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
7578
7579         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
7580
7581 2002-02-14  Kazu Hirata  <kazu@hxi.com>
7582
7583         * config/h8300/h8300-protos.h: Update the prototype for
7584         const_costs.
7585         * config/h8300/h8300.c (const_costs): Treat SET as a little
7586         more expensive operation.
7587         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
7588         reference to const_costs.
7589
7590 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
7591
7592         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
7593
7594 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
7595
7596         PR c/5503:
7597         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
7598         use arguments from newtype.
7599
7600 2002-02-13  Eric Christopher  <echristo@redhat.com>
7601
7602         * config/mips/mips.c (override_options): Add check for march/mipsX
7603         on the same command line. Fix error message in cpu processing.
7604         Remove architecture and ISA checks.
7605
7606 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7607
7608         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
7609
7610         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
7611
7612 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7613
7614         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
7615         alternatives.
7616         ("*movv8hi_internal1"): Same.
7617         ("*movv16qi_internal1"): Same.
7618         ("*movv4sf_internal1"): Same.
7619
7620         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
7621         not push_reload for altivec modes.
7622
7623 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
7624
7625         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
7626         all RTEMS targets including removal of #includes from config/*/rtems*.h
7627         file and adding them to tm_file setting. Added xm_defines=POSIX to
7628         many targets.
7629         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
7630         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
7631         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
7632         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
7633         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
7634         config/m68k/rtemself.h: Ditto.
7635         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
7636         config/mips/rtems64.h: Ditto.
7637         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
7638         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
7639         Ditto.
7640         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
7641         config/sparc/rtemself.h: Ditto.
7642         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
7643         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
7644         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
7645         more like arm-elf.
7646         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
7647         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
7648         target made more similar to i386-elf.
7649         * config/i386/t-rtems-i386: Added soft float support and multilibs.
7650         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
7651         be similar to config/m68k/t-m68kelf.
7652         * gthr-rtems.h: Encapsulate with extern "C" for C++.
7653
7654 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
7655
7656         * regmove.c (kill_value): Handle subregs.
7657
7658 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7659
7660         * i386.md (mul patterns): Allow memory operand to be first;
7661         add expanders where needed; fix constraints.
7662         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
7663         Allow memory operand to be the first.
7664
7665         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
7666         operands.
7667
7668 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7669
7670         PR c/5681:
7671         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
7672         GET_MODE (x).
7673
7674 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7675
7676         PR optimization/5547:
7677         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
7678         all valid IA-32 address modes involving non-scaled %ebx and
7679         GOT/GOTOFF as displacement.
7680
7681 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7682
7683         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
7684         after emitting ltorg insns.
7685
7686         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
7687         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
7688         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
7689         *abssf2): Fix "op_type" attribute.
7690
7691 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
7692
7693         * mkconfig.sh: Avoid using a subshell redirect.
7694         ($output.T): Change to $(output)T.
7695         (ENABLE_NLS): Remove unneeded undef.
7696
7697         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
7698         * config/alpha/x-vms (libsubdir): Define.
7699
7700         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
7701         register frame procedures. Optimize retrieving context.
7702
7703         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
7704         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
7705         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
7706
7707 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7708
7709         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
7710         Make same change as for find_base_value.
7711
7712 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7713
7714         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
7715         of QImode and SImode.
7716
7717 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7718
7719         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
7720         length computation of movsi.
7721         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
7722
7723 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7724
7725         * config/h8300/h8300.md (subqi3): Tighten the predicate for
7726         operands[2] to register_operand.
7727
7728 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
7729
7730         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
7731
7732 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
7733
7734         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
7735         for altivec_lvx* and altivec_stvx*.
7736         ("*movv4si_internal"): Add constraint for loading from GPRs.
7737         ("*movv8hi_internal1"): Same.
7738         ("*movv16qi_internal1"): Same.
7739         ("*movv4sf_internal1"): Same.
7740
7741         * config/rs6000/rs6000.c (altivec_register_operand): New.
7742
7743         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7744         altivec_register_operand.
7745
7746 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
7747
7748         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
7749         handle SYMBOL_REF.
7750
7751 2002-02-13  Stan Shebs  <shebs@apple.com>
7752
7753         * c-typeck.c (digest_init): Handle vectors.
7754         (really_start_incremental_init): Same.
7755         (pop_init_level): Same.
7756         (process_init_element): Same.
7757
7758         * varasm.c (output_constant): Same.
7759
7760         * expr.c (clear_storage): Same.
7761         (store_constructor): Same.
7762
7763 2002-02-12  Eric Christopher  <echristo@redhat.com>
7764
7765         * explow.c (hard_function_value): Add comment explaining
7766         signed/unsigned comparison.
7767
7768 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
7769
7770         * jump.c (never_reached_warning): Add finish argument.
7771         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
7772         real insn after end.
7773         * rtl.h (never_reached_warning): Adjust prototype.
7774         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
7775         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
7776         never_reached_warning.
7777
7778 2002-02-12  Graham Stott  <grahams@redhat.com>
7779
7780         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
7781
7782 2002-02-12  Kazu Hirata  <kazu@hxi.com>
7783
7784         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
7785         logical shifts on H8/300.
7786         (shift_alg_si): Improve several shifts on H8/300.
7787         (get_shift_alg): Likewise.
7788
7789 2002-02-12  Graham Stott  <grahams@redhat.com>
7790
7791         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
7792
7793 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7794
7795         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
7796         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
7797
7798 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
7799
7800         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
7801         non-CONST_INT through default_assemble_integer.
7802         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
7803         <case 8>: Abort for CONST_DOUBLE.
7804
7805 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7806
7807         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
7808         is specified.
7809         * config/pa/pa-linux.h (LIB_SPEC): Delete.
7810         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
7811
7812 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
7813
7814         * config/stormy16/stormy16.md (zero_extendqihi2): New.
7815
7816 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
7817
7818         * regrename.c (regrename_optimize): Don't accept a
7819         part-clobbered register if the replaced register is not part
7820         clobbered.
7821
7822         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
7823         take padding into account when computing the argument value.
7824
7825         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
7826
7827         * combine.c (try_combine): Apply substitutions in
7828         CALL_INSN_FUNCTION_USAGE too.
7829
7830 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
7831
7832         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
7833         __builtin_altivec_abs*.
7834         (bdesc_abs): New.
7835
7836         * config/rs6000/rs6000.h (rs6000_builtins): Add
7837         ALTIVEC_BUILTIN_ABS*.
7838
7839         * config/rs6000/altivec.h: Use const char for builtins expecting
7840         literals.
7841         (vec_abs): New versions for C and C++.
7842         (vec_abss): Same.
7843
7844 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7845
7846         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
7847         using Pmode.
7848
7849 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7850
7851         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
7852         constant definition from h8300.md.
7853         (FRAME_POINTER_REGNUM): Likewise.
7854         * config/h8300/h8300.md (define_constants): Add FP_REG.
7855
7856 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7857
7858         * config/h8300/h8300.c (print_operand): Remove redundant code.
7859
7860 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7861
7862         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
7863         * config/h8300/h8300.c (byte_reg): Make it static.
7864
7865 2002-02-10  Richard Henderson  <rth@redhat.com>
7866
7867         PR c/5623
7868         * c-typeck.c (incomplete_type_error): Handle flexible array members.
7869
7870 2002-02-10  Richard Henderson  <rth@redhat.com>
7871
7872         PR c++/5624
7873         * tree.c (append_random_chars): Don't abort if main_input_filename
7874         does not exist.
7875
7876 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
7877
7878         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
7879
7880 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7881
7882         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
7883         (pushhi1): Likewise.
7884
7885 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7886
7887         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
7888         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
7889
7890 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
7891
7892         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
7893         remove MASK_VIS.
7894         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
7895
7896 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7897
7898         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
7899         a half of an SImode register on H8/300.
7900
7901 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
7902
7903         * i386.md (movdi_2): Add missing '!'.
7904
7905 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7906
7907         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
7908         definitions.
7909
7910 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7911
7912         * config/h8300/h8300.md (length): Correct the distance valid
7913         for the short branch.
7914
7915 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7916
7917         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
7918
7919 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
7920
7921         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
7922         registers in SImode.
7923         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
7924         part-clobbered.
7925
7926         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
7927         patch.
7928
7929         Contribute sh64-elf.
7930         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
7931         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
7932         (sh_cannot_modify_jumps_p): New function.
7933         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
7934         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
7935         (sh_ms_bitfield_layout_p): New function.
7936         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
7937                     Zack Weinberg  <zack@codesourcery.com>
7938         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
7939         expand_simple_binop instead of expand_binop.
7940         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
7941         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
7942         use of .quad and .uaquad.
7943         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
7944         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
7945         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7946         * config/sh/sh.md (movdi_const, movdi_const_32bit,
7947         movdi_const_16bit): Make sure all CONSTs have modes.
7948         (sym2PIC): Ditto, but by adjusting all callers.
7949         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
7950         if the prologue calls the SHmedia argument decoder or register
7951         saver.
7952         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7953         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
7954         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
7955         (sh_expand_epilogue): Don't emit USE of return target register.
7956         (prepare_move_operands): Legitimize DImode PIC addresses.
7957         (sh_media_register_for_return): Skip tr0, used to initialize the
7958         PIC register.
7959         (sh_expand_prologue): Remove explicit USE of return register.
7960         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
7961         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
7962         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
7963         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
7964         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
7965         EXTRA_CONSTRAINT_T.
7966         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
7967         (MOVI_SHORI_BASE_OPERAND_P): New.
7968         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
7969         (EXTRA_CONSTRAINT_T): Define in terms of them.
7970         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
7971         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
7972         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
7973         alternatives supporting TARGET_REGS.
7974         (UNSPEC_GOTPLT): New constant.
7975         (movdi split): Move incrementing of LABEL_NUSES...
7976         (movdi_const, movdi_const_32bit): Here.  Use
7977         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
7978         (movdi_const_16bit): New.
7979         (call, call_value) [flag_pic]: Use GOTPLT.
7980         (call_pop, call_value_pop): New expands.
7981         (call_pop_compact, call_pop_rettramp): New insns.
7982         (call_value_pop_compact, call_value_pop_rettramp): New insns.
7983         (sibcall) [flag_pic]: Use GOT.
7984         (builtint_setjmp_receiver): Remove bogus, unused expand.
7985         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
7986         (*pt, *ptb, ptrel): New insns.
7987         (sym2GOT): Handle DImode GOT.
7988         (sym2GOTPLT, symGOTPLT2reg): New expands.
7989         (sym2PIC): New expand.
7990         (shcompact_return_tramp): Use GOTPLT to return trampoline.
7991         (shcompact_return_tramp_i): Use return register explicitly.
7992         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
7993         disable flag_reorder_blocks.
7994         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
7995         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
7996         clobbers, for clarity.
7997         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
7998         restoring of r0 in macl as MAYBE_DEAD.
7999         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
8000         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
8001         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
8002         alter_subreg all over.
8003         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
8004         reload, instead of emitting instructions that would require
8005         reloading.
8006         (casesi_load_media): Add missing modes.
8007         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
8008         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
8009         as used if the argument decoder is called.
8010         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8011         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
8012         Pmode, then extend it to DImode if necessary.
8013         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8014         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
8015         constants in FPU-enabled SHmedia, let them be loaded from memory.
8016         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8017         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
8018         Adjust whitespace in assembly output templates.
8019         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8020         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
8021         mode of if_then_else.
8022         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
8023         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
8024         sh.h.
8025         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
8026                     Joern Rennecke <amylaar@redhat.com>
8027         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
8028         (SUBTARGET_CPP_PTR_SPEC): New.
8029         (SUBTARGET_CPP_SPEC): Remove.
8030         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8031         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8032         Fix typo in previous checkin.
8033         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
8034         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
8035         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
8036                     Alexandre Oliva  <aoliva@redhat.com>
8037         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
8038         what single FP register can hold for SHmedia target.
8039         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8040                     Alexandre Oliva  <aoliva@redhat.com>
8041         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8042         Do not split into SUBREG.
8043         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
8044         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
8045         and added new functions as specified in SH5 ABI r9.
8046         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
8047         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
8048         8-byte boundary.
8049         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
8050         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
8051         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
8052         and consttable_window_ends.
8053         2001-06-03  Graham Stott  <grahams@redhat,com>
8054         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
8055         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
8056         * config/sh/sh.c (print_operand): Handle floating-point pair,
8057         vector and matrix registers.
8058         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
8059         vector modes into account.
8060         * config/sh/sh.md (movv2sf): Split move between registers into
8061         movdf.
8062         (movv4sf, movv16sf): Introduce insns that get split only after
8063         reload.
8064         * config/sh/shmedia.h: Fix Copyright dates.
8065         * config/sh/ushmedia.h: Likewise.  Move loop counter
8066         declarations into conditionals that uses them.
8067         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
8068         loop boundary.
8069         * config/sh/sshmedia.h: Fix Copyright dates.
8070         (sh_media_PUTCFG): Fix constraints.
8071         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
8072         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
8073         ptrmemfunc_vbit_in_delta for SH5.
8074         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
8075         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
8076         * invoke.texi: Likewise.
8077         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
8078         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
8079         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
8080         GCC_pop_shmedia_regs_nofpu): New global symbols.
8081         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
8082         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
8083         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
8084         compact function with nonlocal labels.
8085         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
8086         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
8087         (initial_elimination_offset): Account for their stack space.
8088         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
8089         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
8090         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
8091         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
8092         least one of the operands to be a register.
8093         (movv2sf): Likewise.  Renamed to movv2sf_i.
8094         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
8095         prepare_move_operands() before emitting SHmedia insns.
8096         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
8097         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
8098         Don't save nor initialize r12.  Don't mis-align the stack.
8099         Pad the code with a nop.
8100         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
8101         stack.
8102         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
8103         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
8104         [__SHMEDIA__]: Implement.
8105         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
8106         * config/sh/sh.md: Set latency of `pt' closer to reality.
8107         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
8108         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
8109         Set move, load and store type attributes.
8110         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
8111         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
8112         profiling.
8113         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
8114         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
8115         * config/sh/sh.c (sh_media_register_for_return): New function.
8116         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
8117         branch-target register.
8118         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
8119         * config/sh/sh.md (return_media_i): Use any call-clobbered
8120         branch-target register.
8121         (return_media): If r18 wasn't copied in the prologue, copy it
8122         here.
8123         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
8124         Clear class FP0_REGS.
8125         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
8126         from elf.h.
8127         2001-03-08  DJ Delorie  <dj@redhat.com>
8128         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
8129         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
8130         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
8131         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8132         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
8133         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
8134         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
8135         return value correctly for call_cookie.
8136         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
8137         * config/sh/crt1.asm (start): Modified so as to call
8138         ___setup_argv_and_call_main.
8139         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
8140         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
8141         SHmedia mode.
8142         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
8143         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
8144         (STRIP_NAME_ENCODING): Use it.
8145         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
8146         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
8147         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
8148         prepare_scc_operands().
8149         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
8150         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
8151         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
8152         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
8153         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8154         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
8155         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
8156         used in shcompact_incoming_args.
8157         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
8158         change.
8159         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
8160         mode.
8161         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
8162         Adjust accordingly.
8163         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8164         Simplify.  Adjust.  Add sanity check.
8165         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
8166         FPU_SINGLE_BIT.
8167         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
8168         TARGET_SHCOMPACT.
8169         (udivsi3, divsi3): Use them.
8170         (force_mode_for_call): New insn.
8171         (call, call_value, sibcall_value): Emit it before SHcompact
8172         calls.
8173         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8174         * config/sh/sh.md (call, call_value, sibcall): Make sure the
8175         call cookie is non-NULL before taking its value.
8176         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
8177         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
8178         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8179         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
8180         block.
8181         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
8182         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
8183         temporary for stack adjusts.  Use MACL and MACH to pass
8184         arguments to shcompact_incoming_args.
8185         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
8186         clobber r1.
8187         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
8188         (nested_trampoline): Load static chain address into r1.
8189         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
8190         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
8191         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
8192         fp_arith_reg_operand().
8193         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
8194         * config/sh/sh.md (casesi): Sign-extend the first two operands,
8195         and use signed compares for them.
8196         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
8197         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
8198         ones properly aligned.
8199         (find_barrier): Account for extra alignment needed for 8-byte wide
8200         constants.
8201         (machine_dependent_reorg): Require a label for the second 4-byte
8202         constant after an 8-byte one.
8203         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
8204         change.
8205         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8206         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
8207         last_float when switching float modes.
8208         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
8209         auto-increment for general-purpose registers.
8210         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
8211         result.
8212         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
8213         for stack adjust.
8214         * config/sh/sh.c (sh_builtin_saveregs): Support using all
8215         registers for varargs.
8216         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
8217         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
8218         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
8219         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
8220         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
8221         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
8222         call_cookie accordingly.
8223         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
8224         (SHCOMPACT_BYREF): Likewise.
8225         (SHCOMPACT_FORCE_ON_STACK): New macro.
8226         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
8227         (sh_builtin_saveregs): Likewise.
8228         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8229         shcompact_incoming_args): Use new shift values.  Support
8230         sequences of consecutive and non-consecutive pushes/pops.
8231         * config/sh/sh.md (return): Don't explicitly use PR_REG.
8232         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
8233         * config/sh/sh.h (TEXT_SECTION): Define.
8234         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
8235         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8236         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
8237         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
8238         return values on FPU-enabled SHmedia.
8239         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
8240         FPU-enabled SHmedia.
8241         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
8242         value is returned in a non-FP reg and is not returned by
8243         reference.
8244         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
8245         jump_ind.
8246         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
8247         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
8248         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
8249         quad-aligned to be passed by callee-copy reference.
8250         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
8251         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
8252         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
8253         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
8254         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
8255         copying low-numbered FP regs to r7 and r8.
8256         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
8257         FP regs to general-purpose regs only if the copy was passed on the
8258         stack.
8259         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
8260         copying FP reg to r9.
8261         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
8262         copy FP regs to general-purpose regs only in outgoing calls.
8263         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
8264         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
8265         HOST_WIDE_INT.
8266         * config/sh/sh.h (struct sh_args): Document all fields.
8267         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
8268         passed partially on the stack should not consider making
8269         sibcalls.
8270         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
8271         stack_regs only for incoming calls.  When passing FP args,
8272         make sure there are FP regs available before modifying
8273         call_cookie.
8274         (SHCOMPACT_BYREF): Pass double args in general-purpose
8275         registers by reference.
8276         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
8277         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
8278         attempt to generate sibcalls if the caller got any arguments
8279         by reference.
8280         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
8281         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
8282         to 8-byte boundaries.
8283         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
8284         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
8285         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
8286         stored in the stack.
8287         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
8288         for the offsets to have the ISA bit set.
8289         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
8290         invocation.  Use beq instead of bgt to mark end of sequence of
8291         loads.
8292         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
8293         bgt to mark end of sequence of stores.
8294         * config/sh/sh.c (arith_operand): Don't check whether
8295         CONST_OK_FOR_J for now.
8296         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
8297         instead of long for conversion.
8298         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
8299         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
8300         before passing it to fprintf.
8301         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
8302         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
8303         Call set_fpscr before reading/writing SR.
8304         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
8305         Call set_fpscr.
8306         * config/sh/lib1funcs.asm: Add `.align 2' directives before
8307         SHmedia code.
8308         (FMOVD_WORKS): Define on SH5 with FPU.
8309         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
8310         setting.
8311         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
8312         _fpscr_values.
8313         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
8314         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
8315         address.
8316         (ia_main_table): Ditto.
8317         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
8318         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8319         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
8320         the definitions from sh.h.
8321         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
8322         TARGET_SH5.
8323         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
8324         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
8325         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8326         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
8327         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
8328         Increment LABEL_NUSES.
8329
8330         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
8331         TARGET_SH5.
8332         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
8333         defined.
8334         * config/sh/elf.h (SIZE_TYPE): Likewise.
8335         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8336         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8337         shcompact_incoming_args): Load switch table addresses using
8338         datalabel.
8339         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8340         (NO_BUILTIN_SIZE_TYPE): Define.
8341         (SIZE_TYPE): Don't define.
8342         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8343         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
8344         definition of __SH5__=32 for -m5-compact-nofpu.
8345         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
8346         ADDR_DIFF_VEC.
8347         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
8348         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
8349         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
8350         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
8351         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
8352         (INSN_LENGTH_ALIGNMENT): Likewise.
8353         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8354         * config/sh/sh.md (call, call_value, sibcall): Simplify
8355         copying of non-branch-target register.
8356         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8357         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
8358         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
8359         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8360         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
8361         floating-point values as structs.
8362         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
8363         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
8364         general-purpose register.
8365         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
8366         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8367         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
8368         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
8369         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
8370         (ENCODE_SECTION_INFO): Enclose variables and constants in
8371         DATALABEL unspecs.
8372         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
8373         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
8374         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
8375         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
8376         only for LABEL_REFs.  For SYMBOL_REFs, prepend
8377         SH_DATALABEL_ENCODING to the symbol name.
8378         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
8379         convert_mode().
8380         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8381         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
8382         UNSPEC_DATALABEL.
8383         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
8384         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
8385         (DATALABEL_REF_P): Don't require CONST.
8386         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
8387         REL label.
8388         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
8389         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
8390         right.
8391         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8392         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
8393         Use shallow_copy_rtx and PUT_MODE to change the mode of
8394         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
8395         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
8396         on SHmedia using GENERAL_REGs.
8397         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8398         bltu_media_i): Fix reversion of conditions.
8399         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8400         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
8401         * config/sh/sh.c (output_far_jump): Save r13 in macl.
8402         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
8403         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
8404         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
8405         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
8406         (GCC_nested_trampoline): Likewise.
8407         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
8408         * config/sh/sh.c (gen_datalabel_ref): Define.
8409         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
8410         (INITIALIZE_TRAMPOLINE): Likewise.
8411         (TRAMPOLINE_ADJUST_ADDRESS): Define.
8412         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
8413         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
8414         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
8415         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
8416         (ic_invalidate): Adjust for SH5.
8417         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
8418         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
8419         _nested_trampoline.
8420         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
8421         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
8422         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
8423         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8424         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
8425         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
8426         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8427         * config/sh/sh.c (target_reg_operand): Match only target-branch
8428         registers and pseudos that aren't virtual registers.
8429         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8430         Copy operands that don't match target_reg_operand to pseudos.
8431         (call_media, call_value_media, sibcall_media): Use
8432         target_reg_operand instead of target_operand.
8433         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
8434         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
8435         * config/sh/sh.c (target_reg_operand): Match hardware registers
8436         other than branch-target registers.
8437         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
8438         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
8439         (fpscr_values) [SH5 == 32]: Define.
8440         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
8441         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8442         Handle function addresses coming in SUBREGs.
8443         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
8444         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8445         shcompact_return_trampoline): Use datalabel where appropriate.
8446         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
8447         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
8448         general-purpose register to copy one branch-target register to
8449         another.
8450         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8451         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
8452         SYMBOL_REFs with VOIDmode.
8453         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8454         bltu_media_i): New insns.
8455         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8456         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
8457         (INIT_CUMULATIVE_ARGS): Likewise.
8458         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
8459         * machmode.def (V16SFmode): New mode.
8460         * c-common.c (type_for_mode): Support V2SF and V16SF.
8461         * tree.c (build_common_tree_nodes_2): Likewise.
8462         * tree.h (tree_index): Likewise.
8463         * calls.c (emit_call_1): Take args_so_far.  Adjust all
8464         callers.  Introduce CALL_POPS_ARGS.
8465         * tm.texi (CALL_POPS_ARGS): Document.
8466         * config/sh/crt1.asm: Implement in SHmedia mode.
8467         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
8468         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
8469         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
8470         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
8471         Implement divsi and udivsi in SHmedia mode.  Introduce
8472         SHcompact trampolines.
8473         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
8474         only in SHmedia64.
8475         (regno_reg_class): Rewrite.
8476         (fp_reg_names): Remove.
8477         (sh_register_names, sh_additional_register_names): New.
8478         (print_operand): Added `u'.  Support SUBREGs in addresses.
8479         Add parentheses around shifted CONSTs.
8480         (output_file_start): Output .mode and .abi directives.
8481         (shiftcosts, addsubcosts, multcosts): Adjust.
8482         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
8483         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
8484         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
8485         bytes, not registers.  Take into account the need for the
8486         SHcompact incoming args trampoline.  Adjust all callers.
8487         (sh_expand_prologue): Take stack_regs into account.  Call
8488         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
8489         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
8490         stack aligned as per SH5 ABI.
8491         (sh_builtin_saveregs): Support SH5 ABI.
8492         (sh_build_va_list, sh_va_start): Likewise.
8493         (initial_elimination_offset): Take alignment into account.
8494         Compute location of PR according to the SH5 stack frame.
8495         (arith_reg_operand): Reject branch-target registers.
8496         (shmedia_6bit_operand): New.
8497         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
8498         (target_reg_operand): Match DImode only.  Accept SUBREGs.
8499         (target_operand): New.
8500         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
8501         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
8502         SIBCALL_REGS for SHmedia.
8503         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
8504         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
8505         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
8506         (TARGET_SWITCHES): New SH5 flags.
8507         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
8508         VALID_REGISTER_P to disable unsupported registers.
8509         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
8510         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
8511         (FUNCTION_ARG_PADDING): Define.
8512         (FASTEST_ALIGNMENT): Adjust.
8513         (SH_REGISTER_NAMES_INITIALIZER): New.
8514         (sh_register_names): Declare.
8515         (DEBUG_REGISTER_NAMES): Define.
8516         (REGISTER_NAMES): Define based on sh_register_names.
8517         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
8518         (sh_additional_register_names): Declare.
8519         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
8520         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
8521         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
8522         (REGISTER_NATURAL_MODE): Define.
8523         (FIRST_PSEUDO_REGISTER): Adjust.
8524         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
8525         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
8526         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
8527         (VECTOR_MODE_SUPPORTED_P): Define.
8528         (REG_CLASS_CONTENTS): Adjust.
8529         (SMALL_REGISTER_CLASSES): Adjust.
8530         (REG_ALLOC_ORDER): Adjust.
8531         (INDEX_REG_CLASS): Adjust.
8532         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
8533         (CONST_OK_FOR_LETTER_P): Adjust.
8534         (PREFERRED_RELOAD_CLASS): Adjust.
8535         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
8536         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
8537         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
8538         (FIRST_FP_PARM_REG): Adjust.
8539         (CALL_POPS_ARGS): Define.
8540         (FUNCTION_ARG_REGNO_P): Adjust.
8541         (struct sh_args): New fields.
8542         (GET_SH_ARG_CLASS): Adjust.
8543         (INIT_CUMULATIVE_ARGS): Adjust.
8544         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
8545         (FUNCTION_ARG_ADVANCE): Adjust.
8546         (FUNCTION_ARG): Adjust.
8547         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
8548         (FUNCTION_ARG_CALLEE_COPIES): Define.
8549         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
8550         (STRICT_ARGUMENT_NAMING): Define.
8551         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
8552         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
8553         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
8554         (SETUP_INCOMING_VARARGS): Adjust.
8555         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
8556         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
8557         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
8558         (SUBREG_OK_FOR_INDEX_P): Adjust.
8559         (EXTRA_CONSTRAINT_S): Update.
8560         (EXTRA_CONSTRAINT_T): New.
8561         (EXTRA_CONSTRAINT): Adjust.
8562         (GO_IF_LEGITIMATE_INDEX): Adjust.
8563         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
8564         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
8565         (MOVE_MAX): Adjust.
8566         (MAX_MOVE_MAX): Define.
8567         (Pmode): Adjust.
8568         (CONST_COSTS): Adjust.
8569         (REGISTER_MOVE_COST): Adjust.
8570         (BRANCH_COST): Adjust.
8571         (TEXT_SECTION_ASM_OP): Adjust.
8572         (DBX_REGISTER_NUMBER): Adjust.
8573         (ASM_OUTPUT_DOUBLE_INT): New.
8574         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
8575         (PREDICATE_CODES): Adjust.
8576         (PROMOTE_MODE): Adjust.
8577         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
8578         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
8579         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
8580         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
8581         (DR0_REG, DR2_REG, DR4_REG): Renumber.
8582         (TR0_REG, TR1_REG, TR2_REG): New.
8583         (XD0_REG): Renumber.
8584         (UNSPEC_COMPACT_ARGS): New.
8585         (type): Added pt and ptabs.
8586         (length): Default to 4 on SHmedia.  Default pt length to 12
8587         and     20 on SHmedia32 and SHmedia64, respectively.
8588         (pt): New function unit.
8589         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
8590         Add whitespace between operands of SHmedia instructions.
8591         (movdicc): Fix.
8592         (adddi3_media, addsi3_media): Adjust constraints.
8593         (subsi3) [SHmedia]: Force operand 1 into a register.
8594         (udivsi3_i1_media, udivsi3_i4_media): New.
8595         (udivsi3): Support SHmedia.
8596         (divsi3_i1_media, divsi3_i4_media): New.
8597         (divsi3): Support SHmedia.
8598         (anddi3, iordi3, xordi3): Adjust constraints.
8599         (zero_extendhidi2, zero_extendqidi2): New.
8600         (extendsidi2, extendhidi2, extendqidi2): New.
8601         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
8602         (pop_e, pop_fpul, pop_4): Likewise.
8603         (movsi_media): Support FP and BT registers.
8604         (movsi_media_nofpu): New.  Adjust splits to DImode.
8605         (lduw, ldub): Renamed to zero_extend* above.
8606         (movqi_media): Fix typo.
8607         (movdi_media): Support FP and BT registers.
8608         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
8609         (movdi_const_32bit): New.
8610         (shori_media): Require immediate operand.  Use `u' for output.
8611         (movdf_media, movsf_media): Simplified.
8612         (movdf_media_nofpu, movsf_media_nofpu): New.
8613         (movdf, movsf): Adjust
8614         (movv2sf, movv2sf, movv16sf): New.
8615         (beq_media, beq_media_i): Adjust constraints.  Don't use
8616         scratch BT register.
8617         (bne_media, bne_media_i): Likewise.
8618         (bgt_media, bgt_media_i): Likewise.
8619         (bge_media, bge_media_i): Likewise.
8620         (bgtu_media, bgtu_media_i): Likewise.
8621         (bgeu_media, bgeu_media_i): Likewise.
8622         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
8623         bunordered): Emit jump insn.  Force operands to registers when
8624         needed.
8625         (jump_media, jump): Simplify.
8626         (call_compact, call_compact_rettramp): New.
8627         (call_value_compact, call_value_compact_rettramp): New.
8628         (call_media, call_value_media): Simplify.
8629         (sibcall_compact, sibcall_media): New.
8630         (call, call_value): Adjust for SHmedia and SHcompact.
8631         (sibcall, sibcall_value, untyped_call): Likewise.
8632         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
8633         (indirect_jump): Adjust for SHmedia.
8634         (casesi_jump_media): New.
8635         (nop): Re-enable for SHmedia.
8636         (call_site): Restrict to SH1.
8637         (casesi): Adjust for SHmedia.
8638         (casesi_shift_media, casesi_load_media): New.
8639         (return): Explicitly use PR register.  Call return trampoline
8640         on SHcompact.
8641         (return_i): Explicitly use PR register.
8642         (shcompact_return_tramp, shcompact_return_tramp_i): New.
8643         (return_media): Adjust.
8644         (shcompact_incoming_args): New.
8645         (epilogue): Adjust.
8646         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8647         (movstrsi): Disable on SH5.
8648         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
8649         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
8650         (subsf3, subsf3_media): Likewise.
8651         (mulsf3, mulsf3_media, mac_media): Likewise.
8652         (divsf3, divsf3_media): Likewise.
8653         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
8654         (floatsisf2, fux_truncsfsi2): Likewise.
8655         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
8656         constraints.
8657         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
8658         (cmpunsf_media, cmpsf): Likewise.
8659         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
8660         (abssf2, abssf2_media): Likewise.
8661         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
8662         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
8663         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
8664         (floatsidf2, fix_truncdfsi2): Likewise.
8665         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
8666         constraints.
8667         (cmpeqdf_media, cmpgtdf_media): Likewise.
8668         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
8669         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
8670         (absdf2, absdf2_media): Likewise.
8671         (extendsfdf2, extendsfdf2_media): Likewise.
8672         (truncsfdf2, truncsfdf2_media): Likewise.
8673         * config/sh/sh64.h: New file.
8674         * config/sh/t-sh64: New file.
8675         * config/sh/shmedia.h: New file.
8676         * config/sh/ushmedia.h: New file.
8677         * config/sh/sshmedia.h: New file.
8678         * configure.in: Added sh64-*-elf.
8679         * configure: Rebuilt.
8680         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
8681         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
8682         (reg_class_from_letter): Use `b' for TARGET_REGS.
8683         (print_operand): Support `%M', `%m', `AND' and
8684         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
8685         (andcosts): Adjust for SHmedia.
8686         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
8687         Likewise.
8688         (target_reg_operand): New function.
8689         * config/sh/sh-protos.h (target_reg_operand): Declare.
8690         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
8691         FP registers on SH5.
8692         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
8693         on SH4.
8694         (TARGET_REGISTER_P): New macro.
8695         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
8696         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
8697         (EXTRA_CONSTRAINT_S): New macro.
8698         (EXTRA_CONSTRAINT): Adjust.
8699         (FLOAT_TYPE_SIZE): Define to 32.
8700         (Pmode): DImode on SHmedia.
8701         (CONST_COSTS): Adjust for SHmedia literals.
8702         (PREDICATE_CODES): Added target_reg_operand.
8703         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
8704         * config/sh/sh.md: Remove all attrs from SHmedia insns.
8705         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
8706         (cmpdi): Accept SHmedia.
8707         (movdicc_false, movdicc_true): New insns.
8708         (movdicc): New expand.
8709         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
8710         no_new_pseudos.
8711         (addsi3_media): Match `S' constraint.
8712         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
8713         (negdi2): Expand for SHmedia.
8714         (one_cmpldi2): New expand.
8715         (zero_extendsidi2): Change from expand to insn.
8716         (extendsidi2): Add constraints.
8717         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
8718         LD/ST address.  Fix SI immediate loading split.
8719         (movhi_media, movqi_media, lduw, ldub): New insns.
8720         (movhi, movqi): Accept SHmedia.
8721         (shori_media, movdi_media): Relax input constraints.  Split
8722         symbolic constants.
8723         (movdf_media, movsf_media): New insn.  New split to movdi.
8724         (movdf, movsf): Match on SHmedia.
8725         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
8726         bgeu_media): New insns and splits.  New insns with `_i' suffix.
8727         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
8728         (bunordered): New expand.
8729         (jump_compact): Renamed from `jump'.
8730         (jump_media): New insn.
8731         (jump): New expand.
8732         (call_media, call_value_media): New insns.
8733         (call, call_value): Adjust.
8734         (indirect_jump_compact): Renamed from `indirect_jump'.
8735         (indirect_jump_media): New insn.
8736         (indirect_jump): New expand.
8737         (untyped_call, return): Accept SHmedia.
8738         (return_media): New insn.
8739         (prologue, epilogue, blockage): Accept SHmedia.
8740         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8741         (sunordered): New expand.
8742         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
8743         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
8744         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
8745         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
8746         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
8747         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
8748         abssf2_media): New insns.
8749         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
8750         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
8751         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
8752         floatdidf2, floatsidf2_media, fix_truncdfdi2,
8753         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
8754         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
8755         absdf2_media): New insns.
8756         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
8757         (extendsfdf2_media, truncdfsf2_media): New insns.
8758         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
8759         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
8760         * config/sh/sh.h (CONST_OK_FOR_J): Document.
8761         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
8762         * config/sh/sh.md (adddi3): New expand.
8763         (adddi3_media, adddi3z_media): New insns.
8764         (adddi3_compact): Renamed from adddi3.
8765         (addsi3_media): Use add.l r63 to add constant zero.
8766         (subdi3): New expand.
8767         (subdi3_media): New insn.
8768         (subdi3_compact): Renamed from subdi3.
8769         (mulsidi3): New expand.
8770         (mulsidi3_media): New insn.
8771         (mulsidi3_compact): Renamed from mulsidi3.
8772         (umulsidi3): New expand.
8773         (umulsidi3_media): New insn.
8774         (umulsidi3_compact): Renamed from umulsidi3.
8775         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
8776         (ashlsi3, ashrsi3, lshrsi3): Use them.
8777         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
8778         (ashldi3, ashrdi3, lshrdi3): Use them.
8779         (zero_extendsidi2): New expand.
8780         (extendsidi2): New insn.
8781         (movsi_media): New insn.  Split to movdi to load constants.
8782         (movsi): Enable for shmedia.
8783         (movdi_media): New insn.  Use shori_media to load wide constants.
8784         (short_media): New insn.
8785         (movdi): Enable for shmedia.
8786         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
8787         * config/sh/sh.h (CPP_SPEC): Added `m5'.
8788         (SUBTARGET_CPP_SPEC): Added `!m5'.
8789         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
8790         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
8791         to all other SH variants.
8792         (TARGET_DEFAULT): Set to SH1_BIT.
8793         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
8794         (BITS_PER_WORD): Raise to 64 on shmedia.
8795         (MAX_BITS_PER_WORD): Change to 64.
8796         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
8797         (INT_TYPE_SIZE): Keep as 32.
8798         (UNITS_PER_WORD): Raise to 8 on shmedia.
8799         (MIN_UNITS_PER_WORD): Keep as 4.
8800         (POINTER_SIZE): Raise to 64 on shmedia.
8801         (CONST_OK_FOR_J): New macro.
8802         (CONST_OK_FOR_LETTER_P): Use it.
8803         (processor_type): Add PROCESSOR_SH5.
8804         * config/sh/sh.md: Conditionalize all expands, insns and
8805         splits to TARGET_SH1.
8806         (cpu): Added sh5.
8807         (addsi3_compact): Renamed from...
8808         (addsi3): Now an expand.
8809         (addsi3_media, subsi3_media): New insns.
8810         (subsi3): Don't negate constants with SHmedia.
8811
8812         * hooks.c: New file.
8813         * hooks.h: New file.
8814         * Makefile.in (HOOKS_H): New.
8815         (TARGET_DEF_H): Added $(HOOKS_H).
8816         (OBJS): Added hooks.o.
8817         (cfgcleanup.o, bb-reorder.o): Added target.h.
8818         (hooks.o): Added dependencies.
8819         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
8820         (TARGET_INITIALIZER): this.
8821         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
8822         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
8823         * bb-reorder.c: Include target.h.
8824         (reorder_basic_blocks): Skip if cannot modify jumps.
8825         * cfgcleanup.c: Include target.h.
8826         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
8827
8828 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
8829
8830         * config/mips/mips.md (casesi_internal, casesi_internal_di):
8831         Protect jump delay slot instructions with .set noreorder and
8832         .set nomacro.
8833
8834 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
8835
8836         * config/mips/mips.md (casesi_internal_di): Calculate
8837         the index into the target offset table correctly.
8838
8839 2002-02-08  Richard Henderson  <rth@redhat.com>
8840
8841         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
8842         * final.c (output_addr_const): Accept and discard SUBREG.
8843         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
8844         mark them unknown instead.
8845         (simplify_subtraction): Handle RTX_UNKNOWN.
8846         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
8847
8848 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
8849
8850         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
8851
8852 2002-02-08  Richard Henderson  <rth@redhat.com>
8853
8854         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
8855
8856 2002-02-08  Andreas Jaeger  <aj@suse.de>
8857
8858         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
8859         * config/i386/t-linux64: New file.
8860
8861 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
8862
8863         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
8864         * c-parse.in (compstmt): Clear last_expr_type.
8865
8866 2002-02-07  Richard Henderson  <rth@redhat.com>
8867
8868         * loop.c (strength_reduce): Sink final_value when not
8869         eliminating a biv.
8870
8871 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
8872
8873         * config/sparc/freebsd.h: Fix mismatched spec {.
8874
8875 2002-02-07  Richard Henderson  <rth@redhat.com>
8876
8877         * cfgrtl.c: Include recog.h and insn-config.h.
8878         (keep_with_call_p): Fix general_operand invocation.
8879         * Makefile.in (cfgrtl.o): Update dependencies.
8880
8881 2002-02-07  Kazu Hirata  <kazu@hxi.com>
8882
8883         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
8884         comment.  Accept HImode only if TARGET_H8300.
8885
8886 2002-02-07  Eric Christopher  <echristo@redhat.com>
8887
8888         * config/mips/crtn.asm: Cleanup #ifdefs.
8889
8890 2002-02-07  Eric Christopher  <echristo@redhat.com>
8891
8892         * config/mips/crti.asm: Add changes for mips16. mips16 uses
8893         register 7 as RA instead of $31.
8894         * config/mips/crtn.asm: Ditto.
8895         * config/mips/mips.c (mips_move_2words): Add case for
8896         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
8897         (compute_frame_size): Fix typo.
8898         (save_restore_insns): Ditto.  Make documentation about using
8899         register $7 as return register more precise.
8900         (mips_expand_epilogue): Fix comment. Add code to work around not
8901         being able to add to the stack pointer directly.
8902         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
8903         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
8904         epilogue.
8905
8906 2002-02-07  Tom Rix  <trix@redhat.com>
8907
8908         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
8909         immediates in ldu and stdu DS opcode field.
8910         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
8911         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
8912         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
8913
8914 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
8915
8916         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
8917         offset for stack bias.
8918
8919 2002-02-07  H.J. Lu <hjl@gnu.org>
8920
8921         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
8922
8923 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
8924
8925         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
8926
8927 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
8928
8929         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
8930         * i386.c (x86_order_regs_for_local_alloc): New global function.
8931         * i386.h (REG_ALLOC_ORDER): CLeanup.
8932         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
8933
8934 2002-02-07  Richard Henderson  <rth@redhat.com>
8935
8936         PR optimization/2463
8937         * alias.c (find_base_value): Recall base values for fixed hard regs.
8938         * loop.c (loop_regs_update): Don't use single_set on non-insns.
8939
8940 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
8941
8942         * config/mips/mips.md (define_delay) [mips16]: Adjust required
8943         length.
8944
8945 2002-02-06  Richard Henderson  <rth@redhat.com>
8946
8947         PR c/5609
8948         * stmt.c (resolve_operand_name_1): Take more care with mixed
8949         named and unnamed operands.
8950
8951 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
8952             Jan Hubicka  <jh@suse.cz>
8953
8954         * loop.c (remove_constant_addition): Avoid clobbering a shared
8955         CONST expression.
8956
8957 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8958
8959         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
8960         * config/s390/t-linux64: New file.
8961         * config/s390/libgcc-glibc.ver: New file.
8962
8963 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8964
8965         * config/s390/linux64.h: Delete file.
8966         * config/s390/s390x.h: New file.
8967         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
8968         as target header file.
8969         * config/s390/linux.h (TARGET_VERSION): Define depending on
8970         DEFAULT_TARGET_64BIT.
8971         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
8972         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
8973         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
8974         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
8975         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
8976         (EXTRA_SPEC): New define.
8977         * config/s390/s390.h (TARGET_VERSION): Define depending on
8978         DEFAULT_TARGET_64BIT.
8979         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
8980
8981 2002-02-06  Jason Merrill  <jason@redhat.com>
8982
8983         * c-decl.c (finish_function): Warn about a non-void function with
8984         no return statement and no abnormal exit.
8985         (current_function_returns_abnormally): New variable.
8986         (start_function): Clear it.
8987         (struct c_language_function): Add returns_abnormally.
8988         (push_c_function_context): Save it.
8989         (pop_c_function_context): Restore it.
8990         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
8991         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
8992         an explicit return type.
8993         * c-tree.h: Declare current_function_returns_abnormally.
8994         (C_FUNCTION_IMPLICIT_INT): New macro.
8995         * c-typeck.c (build_function_call): Set it.
8996         (c_expand_return): Set current_function_returns_value even if the
8997         value is erroneous.
8998
8999 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9000
9001         PR c/5420:
9002         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
9003         unsafe for reevaluation.
9004
9005 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9006
9007         PR c/5482:
9008         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
9009         EXPR_STMT, but COMPOUND_STMT, recurse into it.
9010
9011 2002-02-06  Richard Henderson  <rth@redhat.com>
9012
9013         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
9014         be a general_operand.  Dest for function value must be a pseudo.
9015
9016 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
9017
9018         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
9019         as SYMBOL_REFs from the constant pool.
9020
9021 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
9022
9023         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
9024         passed by invisible reference.
9025
9026 2002-02-05  Richard Henderson  <rth@redhat.com>
9027
9028         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
9029
9030 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
9031
9032         Implement using "base addresses" in insn operands as default.
9033         * config/mmix/mmix.c (mmix_conditional_register_usage): if
9034         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
9035         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
9036         used to read the rtx value.
9037         (mmix_target_asm_function_epilogue): Fix spacing.
9038         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
9039         (mmix_legitimate_address): Ditto.
9040         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
9041         should be loaded with a GETA insn.  Don't allocate needless extra
9042         char for nul termination and fix misleading comment.
9043         (mmix_print_operand_address): Handle constants if
9044         TARGET_BASE_ADDRESSES.
9045         (mmix_output_register_setting): Use base addressing if
9046         TARGET_BASE_ADDRESSES and the number of insns is 3.
9047         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
9048         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
9049         to use R as constraint, add LDA to match s.
9050         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
9051         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
9052         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
9053         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
9054         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
9055         order with other fixed registers.
9056         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
9057         other parameter/call-clobbered registers.
9058         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
9059         -mbase-addresses, -mno-base-addresses.
9060         (MMIX Options): Ditto.
9061
9062 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9063
9064         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
9065
9066 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
9067
9068         * config/rs6000/altivec.h: Change elem to _S_elem.
9069
9070 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9071
9072         * config/netbsd.h (WCHAR_TYPE): Define.
9073         (WCHAR_TYPE_SIZE): Ditto.
9074         (WINT_TYPE): Ditto.
9075         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
9076         (WCHAR_UNSIGNED): Ditto.
9077         (WCHAR_TYPE_SIZE): Ditto.
9078         (WINT_TYPE): Ditto.
9079         * config/arm/netbsd.h: Likewise.
9080         * config/i386/netbsd-elf.h: Likewise.
9081         * config/i386/netbsd.h: Likewise.
9082         * config/m68k/netbsd-elf.h: Likewise.
9083         * config/m68k/netbsd.h: Likewise.
9084         * config/ns32k/netbsd.h: Likewise.
9085         * config/sparc/netbsd.h: Likewise.
9086         * config/vax/netbsd.: Likewise.
9087
9088 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
9089
9090         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
9091         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
9092         (TARGET_INITIALIZER): this.
9093         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
9094         (BITFIELD_NBYTES_LIMITED): Markup fix.
9095         * tree.h (default_ms_bitfield_layout_p): Declare.
9096         (record_layout_info): Added prev_field.
9097         * tree.c (default_ms_bitfield_layout_p): New fn.
9098         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
9099         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
9100         * stor-layout.c: Include target.h.
9101         (start_record_layout): Initialize prev_field.
9102         (place_field): Handle MS bit-field layout, and disregard
9103         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
9104         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
9105         * Makefile.in (stor-layout.o): Adjust dependencies.
9106
9107 2002-02-05  Jason Merrill  <jason@redhat.com>
9108
9109         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
9110
9111 2002-02-05  Andreas Jaeger  <aj@suse.de>
9112
9113         * crtstuff.c: Fix comments.
9114
9115 2002-02-05  Richard Henderson  <rth@redhat.com>
9116
9117         PR fortran/3393
9118         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
9119         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
9120
9121         PR fortran/3392
9122         * config/mips/mips.c (function_arg): Handle TImode.
9123         (function_arg_advance): Likewise.
9124
9125 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9126
9127         * config/rs6000/altivec.h (vec_step_help): Rename to
9128         __vec_step_help.
9129
9130 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9131
9132         * config/rs6000/altivec.h: Fix typos.
9133
9134 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9135
9136         * config/arm/netbsd.h: Correct a comment.
9137
9138 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9139
9140         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
9141         building void typed builtins.
9142
9143         * config/rs6000/altivec.h (vec_ld*): Fix typos.
9144         (vec_step): Implement for C++.
9145
9146 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9147
9148         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
9149
9150 2002-02-04  Richard Henderson  <rth@redhat.com>
9151
9152         * combine.c (nonzero_bits): Re-introduce special case for
9153         sp/fp/ap wrt REGNO_POINTER_ALIGN.
9154
9155 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9156
9157         * doc/extend.texi: Warn about unsupported usage of altivec
9158         builtins.
9159
9160         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
9161         (altivec_predicate_*): New.
9162
9163         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
9164         Add C++ version of vec_*() functions.
9165
9166         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
9167         (bdesc_2arg): Remove altivec predicates.
9168         (altivec_expand_builtin): Handle predicates.
9169         (altivec_init_builtins): Handle predicates.
9170         (altivec_expand_predicate_builtin): New.
9171
9172 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9173
9174         * pa.c (DO_FRAME_NOTES): Move forward.
9175         (store_reg): Revise handling of frame notes.
9176         (load_reg): Likewise.
9177         (set_reg_plus_d): Likewise.
9178         (hppa_expand_prologue): Likewise.
9179         (hppa_expand_epilogue): Likewise.
9180
9181 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9182
9183         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
9184
9185 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9186
9187         PR c/4475, c++/3780:
9188         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
9189         * c-common.h (SWITCH_TYPE): Define.
9190         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
9191         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
9192         Rename spareness variable to sparseness.
9193         (expand_end_case_type): Renamed from expand_end_case, use orig_type
9194         if non-NULL instead of TREE_TYPE (orig_index).
9195         * tree.h (expand_end_case_type): Renamed from expand_end_case.
9196         (expand_end_case): Define using expand_end_case_type.
9197         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
9198         to expand_end_case_type.
9199         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
9200
9201 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9202
9203         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
9204         (BIGGEST_ALIGNMENT): Change to 128.
9205
9206 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9207
9208         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
9209
9210 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9211
9212         * pa.md (call_internal_reg_64bit): Remove unused variable.
9213
9214 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
9215
9216         * config/arm/arm.h (machine_function): Add uses_anonymous_args
9217         field.
9218         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
9219         * config/arm/arm.c (current_function_anonymous_args): Delete,
9220         replace uses with cfun->machine->uses_anonymous_args.
9221         (arm_reorg): Do not reset uses_anonymous_args.
9222
9223         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
9224         any geenral register.
9225
9226 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
9227
9228         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
9229         the entry block.
9230
9231 2002-02-04  Richard Henderson  <rth@redhat.com>
9232
9233         * combine.c (force_to_mode): Remove STACK_BIAS code.
9234         (nonzero_bits): Likewise.  Replace sp/fp special case with
9235         REGNO_POINTER_ALIGN.
9236
9237         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
9238         (HARD_FRAME_POINTER_REGNUM): New.
9239         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
9240         (FIXED_REGS, CALL_USED_REGS): Update.
9241         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
9242         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
9243         (HARD_REGNO_NREGS): Update for SFP.
9244         (STACK_POINTER_OFFSET): Include bias here ...
9245         (FIRST_PARM_OFFSET): ... not here.
9246         (STACK_BIAS): Remove.
9247         (INIT_EXPANDERS): New.
9248         (STARTING_FRAME_OFFSET): Do not include bias.
9249         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
9250         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
9251         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
9252         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
9253         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
9254         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
9255         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
9256         (MUST_SAVE_REGISTER): Likewise.
9257         (sparc_flat_function_prologue): Likewise.
9258         (sparc_flat_function_epilogue): Likewise.
9259         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
9260         (sparc_init_modes): SFP is GENERAL_REGS.
9261         (sparc_builtin_saveregs): SFP does not have bias applied.
9262
9263 2002-02-04  Richard Henderson  <rth@redhat.com>
9264
9265         * config/alpha/alpha.c (current_function_is_thunk): Don't check
9266         current_function_is_thunk.
9267         (alpha_sa_mask): Distinguish between current_function_is_thunk
9268         called from ASM_OUTPUT_MI_THUNK and not.
9269         (alpha_does_function_need_gp): Thunks always need gp.
9270         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9271         (alpha_output_mi_thunk_osf): New.
9272         * config/alpha/alpha-protos.h: Update.
9273         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
9274
9275 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
9276
9277         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
9278         function types, not when they're taken away.
9279
9280 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
9281
9282         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
9283         CODE_LABEL and jump table when replacing a table jump with a
9284         simple jump.
9285
9286 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9287
9288         * config/s390/s390-protos.h (legitimize_la_operand,
9289         s390_secondary_input_reload_class, s390_plus_operand,
9290         s390_expand_plus_operand): Add prototypes.
9291
9292         config/s390/s390.c (s390_secondary_input_reload_class,
9293         s390_plus_operand, s390_expand_plus_operand): New functions.
9294
9295         (struct s390_address): New member 'pointer'.
9296         (s390_decompose_address): Compute it.
9297         (legitimate_la_operand_p): Use it.
9298         (legitimize_la_operand): New function.
9299         (movti, movdi, movdf splitters): Call it.
9300
9301         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
9302         (PREDICATE_CODES): Add s390_plus_operand.
9303
9304         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
9305         (la_ccclobber): Allow GENERAL_REGS as output operand.
9306
9307         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
9308         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
9309         (*la_64, *la_31, reload_indi, reload_insi): ... these.
9310
9311 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9312
9313         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
9314         register names for regular asm () construct.
9315
9316 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9317
9318         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
9319         registers.
9320
9321 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9322
9323         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
9324         pat for recog.
9325
9326 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
9327
9328         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
9329         constant pool to be identical by string address and index.
9330
9331 2002-02-04  Anthony Green  <green@redhat.com>
9332
9333         * output.h (SECTION_OVERRIDE): Define.
9334         * varasm.c (named_section): Obey SECTION_OVERRIDE.
9335
9336 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9337
9338         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
9339         by existing arm*-*-netbsd* (a.out) target.
9340         (ns32k-*-netbsdelf*): Likewise.
9341         (sparc-*-netbsdelf*): Likewise.
9342         (vax-*-netbsdelf*): Likewise.
9343
9344 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
9345
9346         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
9347         headers and libobjc headers.
9348
9349 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
9350
9351         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
9352         (_mingw.h): Remove duplicate include.
9353
9354 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9355
9356         * config.gcc: Set cpu_type to m68k for 68010, as well.
9357         (m68010-*-netbsdelf*): New...
9358         (m68k*-*-netbsdelf*): ...targets.
9359         * config/m68k/netbsd-elf.h: New file.
9360
9361 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9362
9363         * config/h8300/h8300.c (hand_list): Move inside function_arg.
9364
9365 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9366
9367         * config/h8300/h8300.c (h8_push_ops): Move inside
9368         h8300_init_once.
9369         (h8_pop_ops): Likewise.
9370         (h8_move_ops): Likewise.
9371
9372 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9373
9374         * config/h8300/h8300.c (os_task): Make it static.
9375         (monitor): Likewise.
9376         (pragma_saveall): Likewise.
9377
9378 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
9379
9380         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
9381         constant is a valid sign-extension for Pmode.
9382
9383 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9384
9385         * config/h8300/h8300.c: Fix formatting.
9386
9387 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9388
9389         * config/h8300/h8300.md: Fix formatting.
9390
9391 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9392
9393         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
9394         predicates of operands[1].  Split the patterns for each
9395         processor variant.
9396
9397 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9398
9399         * config/h8300/h8300.md (xor patterns): Tighten the predicates
9400         of operands[1] to register_operand.
9401
9402 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9403
9404         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
9405         * cpphash.c (_cpp_init_hashtable): Similarly.
9406         * cppinit.c (cpp_create_reader): Default the signed_char flag.
9407         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
9408         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
9409         (cpp_handle_option): Handle the new options.
9410         * cpplex.c (cpp_interpret_charconst): Use new flag.
9411         * cpplib.h (struct cpp_options): New member signed_char.
9412         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
9413         (cpp_options): Handle -fsigned-char and -funsigned-char.
9414         (static_specs): Remove signed_char_spec.
9415         (do_spec1): Don't handle %c.
9416         * system.h: Poison SIGNED_CHAR_SPEC.
9417         * tradcif.y (yylex): Use flag_signed_char.
9418         * tradcpp.h (flag_signed_char): New.
9419         * tradcpp.c (flag_signed_char): New.
9420         (main): Handle new command-line options.
9421         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
9422 config:
9423         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
9424         * avr/avr.h: Remove old comments.
9425         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
9426         (CC1_SPEC): Pass -fsigned-char if -mic*.
9427         (SIGNED_CHAR_SPEC): Remove.
9428 doc:
9429         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
9430
9431 2002-02-01  Eric Christopher  <echristo@redhat.com>
9432
9433         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
9434         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
9435         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
9436         (ASM_OUTPUT_REG_POP): Ditto.
9437
9438 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9439
9440         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
9441         patch.
9442
9443 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9444
9445         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
9446
9447 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9448
9449         PR c/5304:
9450         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
9451         unconditionally.
9452
9453 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9454
9455         * cfganal.c: Include tm_p.h.
9456         (keep_with_call_p): Fix the test that determines if a register holds
9457         the return value of a call.
9458
9459 2002-02-01  DJ Delorie  <dj@redhat.com>
9460
9461         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
9462         we are given conflicting registers, switch to the other one we
9463         had allocated for us.
9464         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
9465         as TImode so we know when the "other" register is available.
9466
9467 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
9468
9469         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
9470         sparc/sparc_bi.h.
9471
9472 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9473
9474         * cfganal.c (keep_with_call_p): New function.
9475         (flow_call_edges_add): Prevent splitting a block between a call and
9476         a single-set instruction that should be kept in the same block.
9477
9478 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9479
9480         * doc/install.texi (avr): Update outdated URL.
9481
9482 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
9483
9484         * config/stormy16/stormy16.md (pushqi): New.
9485         (popqi): New.
9486         (pushhi): New.
9487         (pophi): New.
9488         (movhi): Remove stack operands.
9489         (movqi): Likewise.
9490         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
9491         nonimmediate_nonstack_operand.
9492         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
9493         New.
9494         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
9495         New.
9496
9497 2002-01-31  Jason Merrill  <jason@redhat.com>
9498
9499         * Makefile.in (c-parse.c): Handle .output file.
9500         * objc/Make-lang.in (objc-parse.c): Likewise.
9501
9502 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
9503
9504         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
9505         the -me[lb] option is given.  Don't output the default flag
9506         twice.
9507
9508 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
9509
9510         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
9511         the primary source file; this has not been done yet.
9512         * c-decl.c (c_expand_body): Reset input_filename from
9513         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
9514
9515 2002-01-31  Kazu Hirata  <kazu@hxi.com>
9516
9517         * rtlanal.c (subreg_regno_offset): Do not use
9518         SUBREG_REGNO_OFFSET.
9519         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
9520         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
9521
9522 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9523
9524         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
9525         version rather than GNATS version in --version output.
9526
9527 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
9528
9529         * ifcvt.c (noce_process_if_block): Make a copy of the destination
9530         when copying back from a temporary.
9531
9532 2002-01-30  Richard Henderson  <rth@redhat.com>
9533
9534         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
9535         and new_dest are the same.
9536
9537 2002-01-30  Richard Henderson  <rth@redhat.com>
9538
9539         PR opt/5076
9540         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
9541         * rtl.c (note_insn_name): Update.
9542         * emit-rtl.c (remove_unnecessary_notes): Kill it.
9543         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
9544         to perform loop rotation.
9545         (expand_exit_loop_top_cond): New.
9546         * tree.h (expand_exit_loop_top_cond): Declare it.
9547         * c-semantics.c (genrtl_while_stmt): Use it.
9548         (genrtl_for_stmt): Likewise.
9549
9550 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
9551
9552         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
9553         arguments to 64-bit boundaries on 64-bit ABIs.
9554
9555 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
9556
9557         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
9558
9559 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9560
9561         * c-decl.c (grokdeclarator): Handle type being a typedef for an
9562         invalid type.
9563
9564 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
9565
9566         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
9567         * config/sparc/sparc_bi.h: Remove file.
9568         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
9569
9570 2002-01-30  Richard Henderson  <rth@redhat.com>
9571
9572         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
9573
9574 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
9575
9576         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
9577
9578 2002-01-30  Jason Merrill  <jason@redhat.com>
9579
9580         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
9581         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
9582         (reg_save): Use DW_CFA_offset_extended_sf instead.
9583
9584         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
9585
9586 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9587
9588         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
9589         in cselib_lookup.
9590
9591 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
9592
9593         * rs6000.md ("*call_value_local32"): Remove constraints.
9594         ("*call_value_local64"): Same.
9595         ("*call_value_indirect_nonlocal_aix32"): Same.
9596         ("*call_value_nonlocal_aix32"): Same.
9597         ("*call_value_indirect_nonlocal_aix64"): Same.
9598         ("*call_value_nonlocal_aix64"): Same.
9599         ("*call_value_nonlocal_sysv"): Same.
9600
9601 2002-01-29  Richard Henderson  <rth@redhat.com>
9602
9603         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
9604
9605 2002-01-29  Richard Henderson  <rth@redhat.com>
9606
9607         * expr.c (force_operand): Ignore flag_pic for detecting pic
9608         address loads.
9609         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
9610         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
9611         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
9612         instead of open-coded loop.
9613         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
9614         be fixed when in use.
9615
9616 2002-01-29  Richard Henderson  <rth@redhat.com>
9617
9618         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
9619         * sched-rgn.c (propagate_deps): Update them.
9620         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
9621         clobbers list when either gets too long.
9622
9623 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9624
9625         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
9626         and INDEX_REGS the same as GENERAL_REGS.
9627         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9628
9629 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9630
9631         * tree.c (build_nonstandard_integer_type): Correct prototype.
9632
9633 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
9634
9635         * config/s390/s390.md (movstrsico, movstrdix_64,
9636         movstrsix_31): Remove, replace by ...
9637         (movstrdi_short, movstrsi_short, movstrdi_long,
9638         movstrsi_long): ... these.  New.
9639         (movstrdi, movstrsi): Adapt.
9640
9641         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
9642         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
9643         Remove unnecessary CC clobber.
9644         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
9645         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
9646
9647         (divmoddi4): Don't partially initialize TImode register.
9648
9649 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
9650
9651         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
9652
9653 2002-01-29  Richard Henderson  <rth@redhat.com>
9654
9655         * flow.c (print_rtl_and_abort): Remove.
9656         (print_rtl_and_abort_fcn): Remove.
9657         (verify_local_live_at_start): Use dump_bb instead.
9658         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
9659         (verify_wide_reg_1): Return 2 on mode test failure.
9660
9661 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9662
9663         PR c/3325, c/3326, c/2511, c/3347
9664         * c-decl.c (enum_decl_context): Remove BITFIELD.
9665         (grokdeclarator): Take bitfield width as an input.
9666         Ensure bitfields are given the correct type.  Perform
9667         bitfield width validation with build_bitfield_integer_type
9668         rather than waiting for finish_struct.
9669         (grok_typename, grok_typename_in_parm_context, start_decl,
9670         push_parmdecl, grokfield, start_function): Update calls to
9671         grokdeclarator.
9672         (build_bitfield_integer_type): New function.
9673         (finish_struct): Move bitfield validation to grokdeclarator
9674         and build_bitfield_integer_type.
9675         * tree.c (build_nonstandard_integer_type): New function.
9676         * tree.h (build_nonstandard_integer_type): New prototype.
9677 objc:
9678         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
9679
9680 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9681
9682         PR other/1502:
9683         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
9684         don't ignore unrecognized -W* options.
9685         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
9686         * cpplib.h (cpp_handle_option): Adjust prototype.
9687         * c-decl.c (c_decode_options): Pass 0 as last argument to
9688         cpp_handle_option.
9689
9690         PR c/2896:
9691         * gcc.c (cpp_unique_options): Split from cpp_options.
9692         (cpp_options): Source cpp_unique_options.
9693         (default_compilers): Use cpp_unique_options instead of cpp_options
9694         when used together with cc1_options.
9695         (static_specs): Add cpp_unique_options.
9696         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
9697         when used together with cc1_options.
9698
9699 2002-01-29  Kazu Hirata  <kazu@hxi.com>
9700
9701         * config/h8300/h8300-protos.h: Update the prototype of
9702         output_a_shift.
9703         * config/h8300/h8300.c (output_a_shift): Remove an unused
9704         argument 'insn'.  Remove redundant code.
9705         * config/h8300/h8300.md: Adust to the new prototype of
9706         output_a_shift.
9707
9708 2002-01-29  Kazu Hirata  <kazu@hxi.com>
9709
9710         * config/h8300/h8300-protos.h: Update the prototypes of
9711         emit_a_rotate and expand_a_rotate.
9712         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
9713         first argument to 'enum rtx_code'.
9714         (expand_a_rotate): Likewise.
9715
9716 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9717
9718         * config/h8300/h8300-protos.h: Update the prototype of
9719         output_simode_bld.
9720         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
9721         'log2'.
9722         * config/h8300/h8300.md: Adjust to the new prototype.
9723
9724 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9725
9726         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
9727         redundant code.
9728
9729 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9730
9731         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
9732         is a fixed register before returning pic_offset_table_rtx.
9733         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
9734         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
9735
9736 2002-01-28  Jason Merrill  <jason@redhat.com>
9737
9738         * dwarf2.h: Sync with src version.
9739
9740 2002-01-28  Paul Koning  <pkoning@equallogic.com>
9741
9742         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
9743         BT_FN_VOID_PTR_VAR.
9744         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
9745         * doc/extend.texi (__builtin_prefetch): Update documentation:
9746         first argument is now const void ptr.
9747
9748 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9749
9750         * config/h8300/h8300-protos.h: Remove an unused prototype.
9751
9752 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
9753
9754         * toplev.c (lang_independent_init): Round up identifier size.
9755
9756 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
9757
9758         * config.gcc: Revert previous change.
9759
9760 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
9761
9762         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
9763
9764 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
9765
9766         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
9767         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
9768         other non-elf netbsd config frags.
9769         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
9770         collect2 will does that.
9771         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
9772         shared-lib frobbing will work.
9773
9774 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9775
9776         * config/h8300/h8300.h: Fix formatting.
9777         * config/h8300/h8300.md: Likewise.
9778
9779 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
9780
9781         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
9782         the old, removed AAA_standards fix.
9783         * fixinc/fixincl.x: Rebuilt.
9784
9785 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
9786
9787         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
9788         atexit call in crtbegin, hooked in after call to frame_dummy;
9789         register EH before registering __fini__start.
9790
9791 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
9792
9793         * config/rs6000/altivec.h: Remove spurious semicolons.
9794
9795 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9796
9797         * config/h8300/h8300.md: Replace dead bit extraction patterns
9798         with ones that work.
9799
9800 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9801
9802         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
9803         if not STRICT_ALIGNMENT.
9804         * rtl.h (MEM_ALIGN): Likewise.
9805
9806 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9807
9808         * doc/invoke.texi (-fdump-translation-unit): Revert this
9809         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9810
9811 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9812
9813         * config/h8300/h8300.md (define_constants): New.
9814         (anonymous patterns) Use defined constants appropriately.
9815
9816 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9817
9818         * config/h8300/h8300.c (function_arg): Remove redundant code.
9819
9820 2002-01-26  Richard Henderson  <rth@redhat.com>
9821
9822         * sched-deps.c (reg_pending_uses_head): New.
9823         (reg_pending_barrier): Rename from reg_pending_sets_all.
9824         (find_insn_list): Don't mark inline.
9825         (find_insn_mem_list): Remove.
9826         (add_dependence_list, add_dependence_list_and_free): New.
9827         (flush_pending_lists): Replace only_write param with separate
9828         for_read and for_write parameters.  Update all callers.  Use
9829         add_dependence_list_and_free.
9830         (sched_analyze_1): Do not add reg dependencies here; just set
9831         the pending bits.  Use add_dependence_list.
9832         (sched_analyze_2): Likewise.
9833         (sched_analyze_insn): Replace schedule_barrier_found with
9834         reg_pending_barrier.  Add all dependencies for pending reg
9835         uses, sets, and clobbers.
9836         (sched_analyze): Don't add reg dependencies for calls, just
9837         set pending bits.  Use regs_invalidated_by_call.  Treat
9838         sched_before_next_call as a normal list, not a fake insn.
9839         (init_deps): No funny init for sched_before_next_call.
9840         (free_deps): Free pending mems lists.  Don't zero reg_last.
9841         (init_deps_global): Init reg_pending_uses.
9842         (finish_deps_global): Free it.
9843         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
9844         (find_insn_mem_list): Remove.
9845         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
9846         (propagate_deps): Use them.  Zero temp mem lists.
9847
9848 2002-01-26  Richard Henderson  <rth@redhat.com>
9849
9850         * Makefile.in (CRTSTUFF_CFLAGS): New.
9851         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
9852         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
9853         crtstuff.c instead of alpha assembly version.
9854         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
9855         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
9856         not FORCE_{INIT,FINI}_SECTION_ALIGN.
9857         (__do_global_dtors_aux): Mark used.
9858         (frame_dummy, __do_global_ctors_aux): Mark used.
9859         (fini_dummy, init_dummy): Remove.
9860
9861         * config/alpha/crtbegin.asm: Remove file.
9862         * config/alpha/crtend.asm: Remove file.
9863         * config/alpha/t-crtbe: Remove file.
9864         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
9865         (LINK_EH_SPEC): New.
9866
9867         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
9868         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
9869         calling constructors.
9870         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
9871
9872         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
9873         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
9874         CRT_END_INIT_DUMMY hack.
9875         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
9876         FORCE_{INIT,FINI}_SECTION_ALIGN.
9877
9878         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
9879         FORCE_{INIT,FINI}_SECTION_ALIGN.
9880
9881         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
9882         invocation sequence.
9883         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
9884
9885         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
9886         (FORCE_CODE_SECTION_ALIGN): New.
9887
9888 2002-01-26  Richard Henderson  <rth@redhat.com>
9889
9890         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
9891
9892 2002-01-26  Richard Henderson  <rth@redhat.com>
9893
9894         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
9895         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
9896
9897 2002-01-26  Kazu Hirata  <kazu@hxi.com>
9898
9899         * config/h8300/h8300.md: Remove bit extraction patterns that
9900         cannot be triggered.
9901         Restrict each bit extraction pattern to a variant on which the
9902         pattern is tested.
9903
9904 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
9905
9906         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
9907
9908 2002-01-26  Kazu Hirata  <kazu@hxi.com>
9909
9910         * config/h8300/h8300.md: Remove bit test patterns that cannot
9911         be triggered.
9912         Restrict each bit test pattern to a variant on which the
9913         pattern is tested.
9914
9915 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9916
9917         * builtins.c (expand_builtin_strncat): Remove redundant check for
9918         INTEGER_CST.
9919
9920 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
9921
9922         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
9923         default setting.
9924         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
9925         existing setting.
9926
9927 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
9928
9929         * dbxout.c (dbxout_init): Use assemble_name rather than just
9930         stripping off the first character.
9931         (dbxout_source_file): Likewise.
9932
9933 2002-01-25  DJ Delorie  <dj@redhat.com>
9934
9935         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
9936         using rtx_equal_p, not by comparing pointers.
9937
9938 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
9939
9940         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
9941         for PIC_OFFSET_TABLE_REGNUM.
9942         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
9943
9944 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
9945
9946         * config.gcc (x86_64-*-freebsd*): New target.
9947         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
9948         value.
9949         (i[34567]86-*-freebsd*): Don't include svr4.h.
9950         * config/i386/freebsd64.h: New file.
9951
9952 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
9953
9954         * config/alpha/x-vms (version): Make static.
9955
9956         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
9957         in previous checkin.
9958
9959         * Makefile.in (install-headers-cp): New target.
9960         * config.gcc (alpha-dec-*vms*): Install headers with
9961         install-headers-cp
9962
9963 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
9964
9965         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
9966         avoid it's copies.
9967
9968 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9969
9970         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
9971         of compare_tree_int.
9972         (expand_builtin_strncat): Likewise.
9973         * c-decl.c (finish_struct): Use tree_low_cst.
9974         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
9975         * tree.c (compare_tree_int): Likewise.
9976
9977 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
9978
9979         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
9980         adjustments even if they are implemented by more than two insns.
9981
9982 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
9983
9984         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
9985         * df.h (struct ref): Kill B.
9986         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
9987
9988         * basic-block.h (PROP_EQUAL_NOTES): New flag.
9989         * flow.c (propagate_one_insn): Use it.
9990         (mark_used_regs): Handle NIL.
9991
9992 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
9993
9994         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
9995         to help folding.
9996
9997 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
9998
9999         * rs6000.md (prefetch): Make address V4SI mode so that the address
10000         is restricted to legitimate form for instruction.
10001
10002 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
10003
10004         * doc/install.texi (xtensa-*-elf): New target.
10005         (xtensa-*-linux*): New target.
10006         * doc/contrib.texi: Add myself.
10007
10008 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
10009
10010         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
10011         purpose register to hold an SImode (or smaller) value.
10012
10013 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
10014
10015         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
10016         registry only.
10017         * crtstuff.c: Likewise.
10018
10019 2002-01-25  Kazu Hirata  <kazu@hxi.com>
10020
10021         * config/h8300/h8300.md (negation patterns): Tighten
10022         predicates to register_operand.
10023
10024 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
10025
10026         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
10027         mode, not Pmode.
10028
10029         * builtins.c (expand_builtin_prefetch): Same.
10030
10031 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10032
10033         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
10034         modes.
10035
10036 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10037
10038         * config/h8300/h8300.c (print_operand): Remove support for
10039         operand character 'A'.
10040         * config/h8300/h8300.md (three anonymous patterns): Replace
10041         operand character 'A' with either 'T' or 'S'.
10042
10043 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10044
10045         * config/h8300/h8300.c (print_operand): Remove support for
10046         operand character 'U'.
10047
10048 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
10049
10050         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
10051
10052 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
10053
10054         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
10055         values to be assigned to the stack pointer.
10056
10057 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10058
10059         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
10060         to const_double needs to be done right for big-endian systems.
10061
10062 2002-01-24  Jason Merrill  <jason@redhat.com>
10063
10064         PR c++/2432
10065         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
10066         to can_throw_internal.
10067
10068 2002-01-23  Richard Henderson  <rth@redhat.com>
10069
10070         * fold-const.c (fold): Change UINT_MAX test to check vs precision
10071         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
10072
10073 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10074
10075         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
10076         (symGOT2reg): Use them, then set as GOT value as unchanging.
10077         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
10078         as a temporary, if possible.
10079         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
10080         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
10081
10082 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10083
10084         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
10085         accept to accept 0x80 as operands[2].
10086
10087 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10088
10089         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
10090
10091 2002-01-23  Richard Henderson  <rth@redhat.com>
10092
10093         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
10094
10095 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
10096
10097         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
10098         (parmlist_or_identifiers_1): Verify that only a parmlist follows
10099         an attribute.
10100
10101 2002-01-23  Richard Henderson  <rth@redhat.com>
10102
10103         * expr.c (move_by_pieces_1): Extend size before negation.
10104
10105         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
10106         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
10107         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
10108         * config/m68k/t-m68kelf: Likewise.
10109
10110 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
10111
10112         * config/xtensa/elf.h: New file.
10113         * config/xtensa/lib1funcs.asm: New file.
10114         * config/xtensa/lib2funcs.S: New file.
10115         * config/xtensa/linux.h: New file.
10116         * config/xtensa/t-xtensa: New file.
10117         * config/xtensa/xtensa-config.h: New file.
10118         * config/xtensa/xtensa-protos.h: New file.
10119         * config/xtensa/xtensa.c: New file.
10120         * config/xtensa/xtensa.h: New file.
10121         * config/xtensa/xtensa.md: New file.
10122         * config.gcc (xtensa-*-elf*): New target.
10123         (xtensa-*-linux*): New target.
10124         * cse.c (canon_hash): Compare rtx pointers instead of register
10125         numbers.  This is required for the Xtensa port.
10126         * integrate.c (copy_insn_list): Handle case where the static
10127         chain is in memory and the memory address has to be copied to
10128         a register.
10129         * doc/invoke.texi (Option Summary): Add Xtensa options.
10130         (Xtensa Options): New node.
10131         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
10132
10133 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10134
10135         * diagnostic.c (internal_error): Do ICE suppression only
10136         when ENABLE_CHECKING is not defined.
10137
10138         * c-typeck.c (require_complete_type): Return error_mark_node
10139         if type is error_mark_node.
10140
10141 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
10142
10143         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
10144         -Os and issue a warning.
10145
10146 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10147
10148         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
10149         current (lack of) need for host configuration by hand.
10150
10151         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
10152         references.  Documentation of some target macros moved from
10153         hostconfig.texi to tm.texi.
10154
10155 2002-01-23  Will Cohen  <wcohen@redhat.com>
10156
10157         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
10158         defined.
10159
10160 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10161
10162         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
10163         operand[3].
10164
10165 2002-01-23  Jason Merrill  <jason@redhat.com>
10166
10167         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
10168
10169         * function.c (assign_parms): Don't put args of inline functions
10170         into registers when not optimizing.
10171
10172 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
10173
10174         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
10175         (prologue_use): New pattern.
10176         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
10177         preference to gen_rtx_USE.
10178         (thumb_expand_prologue): Use gen_prologue_use in preference to
10179         gen_rtx_USE.
10180         (thumb_expand_epilogue): Use gen_prologue_use in preference to
10181         gen_rtx_USE.
10182
10183 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
10184
10185         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
10186
10187 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10188
10189         PR c/3504
10190         * doc/extend.texi: Correct documentation of __alignof__.
10191
10192 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
10193
10194         * params.h: Rename arguments of DEFPARAM so that it will be
10195         recognized as a translation keyword.
10196
10197 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10198
10199         * extend.texi: Document altivec functions.
10200         Fix N-bit adjectives in X86 builtin documentation.
10201
10202 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10203
10204         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
10205         auto_inc_dec values.
10206
10207 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
10208
10209         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
10210         after backslash.
10211         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
10212
10213 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10214
10215         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
10216
10217 2002-01-22  Richard Henderson  <rth@redhat.com>
10218
10219         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
10220         copy_insn not copy_rtx.
10221
10222 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
10223
10224         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
10225         "nonzero" as that might add "1" bits.  Ensure "constop" is
10226         properly sign extened.
10227         (force_to_mode): Tweak for sign extended constop.
10228
10229 2002-01-22  Richard Henderson  <rth@redhat.com>
10230
10231         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
10232         for_each_rtx instead of assuming we're already looking at the MEM.
10233         (split_small_symbolic_mem_operand): Likewise.
10234         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10235         * config/alpha/alpha.md (small symbolic memory splitters): Update.
10236
10237 2002-01-22  Richard Henderson  <rth@redhat.com>
10238
10239         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
10240         sequence number for the literal.
10241         (divmoddi_internal_er): Likewise.
10242
10243 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10244
10245         PR java/4972
10246         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
10247         in LIBICONV variable.
10248         * configure: Regenerated.
10249
10250 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
10251
10252         * dependence.c (build_def_use): Remove array_idx.
10253
10254         * dwarfout.c (last_filename): Remove.
10255         (output_compile_unit_die): Remove last_filename.
10256
10257 2002-01-22  Roger Sayle  <roger@eyesopen.com>
10258             Richard Henderson  <rth@redhat.com>
10259
10260         PR opt/3640
10261         * fold-const.c (fold): Optimize unsigned comparisons against
10262         UINT_MAX (and similar unsigned constants).
10263
10264 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
10265
10266         * Makefile.in (loop.o): Depend on OPTABS_H.
10267         * loop.c (emit_prefetch_instructions): Check the prefetch operand
10268         against the predicate.
10269
10270         PR target/5379
10271         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
10272         for the address operand.
10273
10274 2002-01-22  Richard Henderson  <rth@redhat.com>
10275
10276         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
10277
10278 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10279
10280         PR other/5450
10281         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
10282         preprocessor flags.
10283
10284 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
10285
10286         * config.gcc (x86_64-*-netbsd*): New target.
10287         * config/i386/netbsd64.h: New file.
10288
10289 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10290
10291         * regrename.c (kill_value): Fix typo.
10292
10293 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10294
10295         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
10296
10297         * config/rs6000/rs6000.h: Same.
10298
10299         * function.c (instantiate_virtual_regs): Remove
10300         STARTING_FRAME_PHASE.
10301         (assign_stack_local_1): Same.
10302         Calculate frame phase.
10303
10304 2002-01-22  Nick Clifton  <nickc@redhat.com>
10305
10306         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
10307         variable declaration to outer scope in order to simplify
10308         future extensions.
10309         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
10310         arm_hard_regno_mode_ok.
10311         * config/arm/arm-protos.h: Add a prototype for
10312         arm_hard_regno_mode_ok.
10313         * config/arm/arm.c (soft_df_operand): Remove now redundant
10314         check for DImode values using IP_REGNUM.
10315         (nonimmediate_soft_df_operand): Remove now redundant check for
10316         DImode values using IP_REGNUM.
10317         (arm_hard_regno_mode_ok): New function. New check: make sure
10318         that DImode values are not stored in IP_REGNUM.
10319
10320         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
10321         note with a USE.
10322         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
10323
10324 2002-01-22  Jason Merrill  <jason@redhat.com>
10325
10326         * c-semantics.c (genrtl_compound_stmt): Only check nesting
10327         consistency if this COMPOUND_STMT is scoped.
10328
10329 2002-01-22  Kazu Hirata  <kazu@hxi.com>
10330
10331         * predict.c: Fix formatting.
10332         * print-tree.c: Likewise.
10333         * protoize.c: Likewise.
10334         * real.h: Likewise.
10335         * rtl.h: Likewise.
10336         * sbitmap.h: Likewise.
10337         * scan.c: Likewise.
10338         * sched-deps.c: Likewise.
10339         * sched-vis.c: Likewise.
10340         * sdbout.c: Likewise.
10341         * sibcall.c: Likewise.
10342         * ssa.c: Likewise.
10343         * ssa-ccp.c: Likewise.
10344         * ssa-dce.c: Likewise.
10345         * stmt.c: Likewise.
10346         * stor-layout.c: Likewise.
10347         * system.h: Likewise.
10348
10349 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10350
10351         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
10352         if fits in bounds of base type.
10353
10354         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
10355         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
10356         (add_bound_info, default): If can't find a context, make a
10357         SAVE_EXPR.
10358         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
10359
10360 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
10361
10362         * c-typeck.c (parser_build_binary_op): If result from
10363         build_binary_op is ERROR_MARK just return error_mark_node without
10364         further processing.
10365
10366 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
10367
10368         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
10369         Split a.out-specific bits into...
10370         * config/netbsd-aout.h: ...this.
10371         * config/netbsd-elf.h: New file.
10372         * config/alpha/netbsd-elf.h: Remove.
10373         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
10374         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
10375         (STARTFILE_SPEC): Remove redundant definition.
10376         (ENDFILE_SPEC): Likewise.
10377         (LINK_SPEC): Likewise.
10378         (CPP_SPEC): Likewise.
10379         (ASM_SPEC): Likewise.
10380         (LIB_SPEC): Likewise.
10381         (SWITCH_TAKES_ARG): Likewise.
10382         (TARGET_MEM_FUNCTIONS): Likewise.
10383         (CPP_PREDEFINES): Redefine.
10384         (ASM_FINAL_SPEC): Remove redefinition.
10385         (ASM_COMMENT_START): Redefine.
10386         (FUNCTION_PROFILER): Define.
10387         (TARGET_VERSION): Redefine.
10388         Comment and formatting cleanup.
10389         * config/i386/netbsd.h: Include <netbsd-aout.h>.
10390         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
10391         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
10392         big- or little-endian.
10393         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
10394         * config.gcc (*-*-netbsd*): Add definitions common to all
10395         NetBSD configs.
10396         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
10397         gnu_ld definitions.  Add netbsd-elf.h to and remove
10398         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
10399         tmake_file, and don't lose previous tmake_file contents.
10400         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
10401         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
10402         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
10403         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
10404         (mipsel-*-netbsd*): Rename this to...
10405         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
10406         mips/little.h to tm_file for mips*el-*.
10407         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
10408         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
10409         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
10410
10411 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10412
10413         * pa-protos.h (reg_before_reload_operand): New function prototype.
10414         * pa.c (reg_before_reload_operand): New function implementation.
10415         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
10416         contraints to "*m".
10417
10418 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10419
10420         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
10421
10422 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10423
10424         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
10425         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
10426         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
10427         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
10428         (ENDFILE_SPEC): Undefine.
10429         (STARTFILE_SPEC): Redefine for PA.
10430
10431 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10432
10433         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
10434
10435 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
10436
10437         * config.gcc: Add entries to supported PowerPC --with-cpu
10438         types.
10439
10440 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
10441
10442         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
10443         true for 64-bit mode only SSE registers in 32-bit mode.
10444
10445 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10446
10447         * unwind-dw2.c: Fix formatting.
10448         * unwind-dw2-fde.c: Likewise.
10449         * unwind-dw2-fde.h: Likewise.
10450         * unwind-pe.h: Likewise.
10451         * varasm.c: Likewise.
10452         * varray.h: Likewise.
10453
10454 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
10455
10456         Remove workaround for register stack overwrite bug in mmix.
10457         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
10458         support for TARGET_REG_STACK_FILL_BUG.
10459         * config/mmix/mmix.h: Remove member has_call_without_parameters.
10460         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
10461         Delete.
10462         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
10463         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
10464         -mno-reg-stack-fill-bug-workaround.
10465         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
10466         machine member has_call_without_parameters.
10467         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
10468         -mreg-stack-fill-bug-workaround and
10469         -mno-reg-stack-fill-bug-workaround.
10470         (MMIX Options): Ditto.
10471
10472 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10473
10474         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
10475         as appropriate.
10476         Remove redundant code.
10477
10478 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10479
10480         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
10481         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10482         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10483         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
10484         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
10485         out target macro definitions and non-target-specific comments
10486         mostly taken from old versions of the manual.
10487
10488 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10489
10490         * config/h8300/h8300.h: Fix comment formatting.
10491         * config/ia64/aix.h: Likewise.
10492         * config/ia64/ia64-protos.h: Likewise.
10493         * config/ia64/ia64.c: Likewise.
10494         * config/ia64/ia64.h: Likewise.
10495         * config/ia64/ia64intrin.h: Likewise.
10496         * config/ia64/linux.h: Likewise.
10497         * config/ia64/unwind-aix.c: Likewise.
10498         * config/ia64/unwind-ia64.c: Likewise.
10499
10500 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10501
10502         * config/h8300/h8300.c: Revise comments about shift code.
10503
10504 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10505
10506         * config/h8300/h8300.c (function_arg): Update a comment.
10507
10508 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10509
10510         * config/h8300/h8300.md: Update the comments at the beginning
10511         of the file.
10512
10513 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10514
10515         * config/i370/i370.c: Fix comment formatting.
10516         * config/i370/i370.h: Likewise.
10517         * config/i370/i370.md: Likewise.
10518         * config/i370/linux.h: Likewise.
10519
10520 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10521
10522         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
10523
10524         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
10525         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
10526         in incomplete case.
10527
10528 2002-01-20  Graham Stott  <grahams@redhat.com>
10529
10530         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
10531
10532 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10533
10534         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
10535
10536 2002-01-19  Tom Rix  <trix@redhat.com>
10537
10538         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
10539
10540 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
10541
10542         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
10543
10544         * function.c (assign_stack_local_1): Adjust x_frame_offset with
10545         STARTING_FRAME_PHASE.
10546         (STARTING_FRAME_PHASE): New.
10547         (instantiate_virtual_regs): Check saneness of
10548         STARTING_FRAME_PHASE.
10549
10550         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
10551
10552 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
10553
10554         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
10555
10556 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10557
10558         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
10559         be used for bootstrapping GCC 3.0.
10560
10561 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10562
10563         * config/h8300/h8300.md: Fix an insn length.
10564
10565 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10566
10567         * bitmap.h: Fix comment formatting.
10568         * combine.c: Likewise.
10569         * cppfiles.c: Likewise.
10570         * c-pragma.h: Likewise.
10571         * c-typeck.c: Likewise.
10572         * df.c: Likewise.
10573         * dwarf2out.c: Likewise.
10574         * function.c: Likewise.
10575         * gcc.c: Likewise.
10576         * genattrtab.c: Likewise.
10577         * gthr-win32.h: Likewise.
10578         * haifa-sched.c: Likewise.
10579         * predict.c: Likewise.
10580         * rtlanal.c: Likewise.
10581         * rtl.h: Likewise.
10582         * unwind-dw2-fde.h: Likewise.
10583         * unwind-pe.h: Likewise.
10584         * vmsdbgout.c: Likewise.
10585
10586 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10587
10588         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
10589         if type_required and passed decl.
10590
10591 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
10592
10593         * config.gcc (cpu_type): Include altivec.h in powerpc
10594         extra_headers.
10595         Same for darwin.
10596
10597         * config/rs6000/altivec.h: New.
10598
10599 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
10600
10601         * doc/install.texi (*-ibm-aix*): Update assembler and exception
10602         handling information.
10603         * doc/trouble.texi (Interoperation): Add libstdc++ information
10604         for AIX.
10605         (Misunderstandings): Add template instantiation and static template
10606         member information for AIX.
10607
10608 2002-01-17  Jason Merrill  <jason@redhat.com>
10609
10610         * dbxout.c (dbxout_type): Support const and volatile.
10611
10612         * except.c (add_partial_entry): Remove backwards compatibility code.
10613         (end_protect_partials): Likewise.
10614
10615 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
10616
10617         * config/ia64/ia64.md (prologue_use): New.
10618         * config/ia64/ia64.c (ia64_expand_prologue): Use
10619         gen_prologue_use instead of gen_rtx_USE.
10620         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
10621         as CODE_FOR_pred_rel_mutex.
10622         (ia64_sched_reorder2): Likewise.
10623
10624 2002-01-16  Eric Christopher  <echristo@redhat.com>
10625
10626         * config/mips/r3900.h: Reformat.
10627         (SUBTARGET_CPP_SIZE_SPEC): Remove.
10628         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
10629         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
10630         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
10631         * config/mips/t-elf: Remove mips3 multilib.
10632
10633 2002-01-16  H.J. Lu <hjl@gnu.org>
10634
10635         * config/mips/linux.h: Include "mips/abi64.h".
10636
10637 2002-01-16  H.J. Lu <hjl@gnu.org>
10638
10639         * config/mips/t-linux: New.
10640
10641         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
10642
10643         * config/mips/linux.h: Don't include "gofast.h".
10644         (INIT_SUBTARGET_OPTABS): Removed.
10645
10646 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10647
10648         * config/h8300/h8300-protos.h: Replace emit_a_shift with
10649         output_a_shift.
10650         * config/h8300/h8300.c: Likewise.
10651         * config/h8300/h8300.md: Likewise.
10652
10653 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10654
10655         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
10656         spaces after an opcode name.
10657         (pushqi1_h8300hs): Likewise.
10658         (pushhi1_h8300hs): Likewise.
10659
10660 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10661
10662         * doc/extend.texi: Replace "option" with "attribute"
10663         appropriately.
10664
10665 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10666
10667         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
10668         (and:DI () (const_int -8)).
10669         (split_small_symbolic_mem_operand): Split
10670         (mem (and:DI () (const_int -8)).
10671
10672 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10673
10674         PR target/5309:
10675         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
10676         same way as TYPE_IMUL.
10677         (ultrasparc_sched_reorder): Likewise.
10678         * config/sparc/sparc.md (type): Add comment to update
10679         ultrasparc_sched_reorder when making changes.
10680
10681 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10682
10683         * doc/invoke.texi: Change the dump file name of block
10684         reordering pass from 28.bbro to 29.bbro.
10685         Mention -dk option.
10686
10687 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10688
10689         * i386.md (minsf splitter): Fix pasto.
10690
10691 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
10692
10693         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
10694         to frame pointer initialisation instruction.
10695         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
10696         initialisation instruction.
10697         (soft_df_operand): Do not accept the IP register.
10698         (nonimmediate_soft_df_operand): Do not accept the IP register.
10699
10700 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10701
10702         PR target/5357:
10703         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
10704         MASK_V8 being both set.
10705
10706 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
10707
10708         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
10709         insn for GOT register; add REG_MAYBE_DEAD notes instead.
10710         config/s390/s390.md (call, call_value): Add GOT register to
10711         CALL_INSN_FUNCTION_USAGE where needed.
10712         (call_exp, call_value_exp): New.
10713
10714 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
10715
10716         * config/arm/arm.c: General formatting tidy up.
10717
10718 2002-01-16  Graham Stott  <grahams@redhat.com>
10719
10720         * calls.c (try_to_integrate): Use "(size_t)" intermediate
10721         cast and when casting an integer literal to "rtx" pointer.
10722         (expand_call): Likewise.
10723         * flow.c (try_pre_increment): Likewise.
10724         (find_use_as_address): Likewise.
10725         * integrate.c (expand_iline_function): Likewise.
10726         * regmove.c (try_auto_increment): Likewise.
10727
10728 2002-01-16  Graham Stott  <grahams@redhat.com>
10729
10730         * sched-rgn.c (passed): Use sbitmap_free.
10731         (header): Likewise.
10732         (inner): Likewise.
10733         (in_queue): Likewise.
10734         (in_stack): Likewise.
10735
10736 2002-01-15  Eric Christopher  <echristo@redhat.com>
10737
10738         * flow.c (propagate_one_insn): Change to use fatal_insn.
10739
10740 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10741
10742         * expmed.c (extract_fixed_bit_field): Remove unused code.
10743         * system.h: Poison SLOW_ZERO_EXTEND.
10744         * doc/tm.texi: Remove.
10745         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
10746         * config/arm/arm.h: Likewise.
10747         * config/avr/avr.h: Likewise.
10748         * config/clipper/clipper.h: Likewise.
10749         * config/convex/convex.h: Likewise.
10750         * config/d30v/d30v.h: Likewise.
10751         * config/dsp16xx/dsp16xx.h: Likewise.
10752         * config/elxsi/elxsi.h: Likewise.
10753         * config/fr30/fr30.h: Likewise.
10754         * config/h8300/h8300.h: Likewise.
10755         * config/i370/i370.h: Likewise.
10756         * config/i386/i386.h: Likewise.
10757         * config/m68k/m68k.h: Likewise.
10758         * config/mips/mips.h: Likewise.
10759         * config/ns32k/ns32k.h: Likewise.
10760         * config/pdp11/pdp11.h: Likewise.
10761         * config/pj/pj.h: Likewise.
10762         * config/s390/s390.h: Likewise.
10763         * config/sh/sh.h: Likewise.
10764         * config/stormy16/stormy16.h: Likewise.
10765         * config/v850/v850.h: Likewise.
10766         * config/vax/vax.h: Likewise.
10767         * config/we32k/we32k.h: Likewise.
10768
10769 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
10770
10771         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
10772         (altivec_lvsl): Change constraint to b.
10773         (altivec_lvsr): Same.
10774         (altivec_lvebx): Same.
10775         (altivec_lvehx): Same.
10776         (altivec_lvewx): Same.
10777         (altivec_lvxl): Same.
10778         (altivec_lvx): Same.
10779         (altivec_stvx): Add parallel.
10780         (altivec_stvxl): Same.
10781         (altivec_stvehx): Same.
10782         (altivec_stvebx): Same.
10783         (altivec_stvebx): Same.
10784
10785 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
10786
10787         * config.gcc: Change altivec.h to altivec-defs.h.
10788
10789         * config/rs6000/altivec.h: Delete.
10790
10791         * config/rs6000/altivec-defs.h: Add.
10792
10793 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10794
10795         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
10796         and UMOD modes.
10797
10798         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
10799         less than or equal to eight bytes.
10800
10801         * vax.md (andsi3): Remove constraints and change SET destination
10802         operand type to nonimmediate_operand.
10803         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
10804         when it is a CONST_INT.
10805
10806 2002-01-15  Jason Merrill  <jason@redhat.com>
10807
10808         * c-common.def (FILE_STMT): New code.
10809         * c-common.c (statement_code_p): It's a statement.
10810         * c-common.h (stmt_tree_s): Add x_last_filename.
10811         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
10812         (last_expr_filename): New macro.
10813         * c-semantics.c (begin_stmt_tree): Initialize it.
10814         (add_stmt): If the filename changed, also insert a
10815         FILE_STMT.
10816         (expand_stmt): Handle seeing one.
10817
10818 2002-01-15  Eric Christopher  <echristo@redhat.com>
10819
10820         * flow.c (propagate_one_insn): Add error message and print out
10821         insn for debugging.
10822
10823 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
10824
10825         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
10826         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
10827         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
10828         TRAMPOLINE_ALIGNMENT.
10829         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
10830         to be in bits.
10831         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
10832         PCC_BITFIELD_TYPE_MATTERS.
10833         * config/interix.h (STDC_VALUE): Remove.  Use
10834         STDC_0_IN_SYSTEM_HEADERS.
10835         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
10836         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
10837         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
10838
10839 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10840
10841         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
10842         not work on this platform currently.
10843
10844 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
10845
10846         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
10847         readonly_warning in _().
10848
10849 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
10850
10851         * gcc.c (delete_if_ordinary): Backout previous change.
10852
10853 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10854
10855         * config/h8300/h8300.c (print_operand): Remove support for
10856         unused operand characters.
10857
10858         * read-rtl.c: Fix formatting.
10859         * real.c: Likewise.
10860         * recog.c: Likewise.
10861         * regclass.c: Likewise.
10862         * regmove.c: Likewise.
10863         * reg-stack.c: Likewise.
10864         * reload1.c: Likewise.
10865         * rtlanal.c: Likewise.
10866
10867 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10868
10869         * config/i386/i386.c: Fix formatting.
10870
10871 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
10872
10873         * c-typeck.c (process_init_element): Don't save_expr
10874         COMPOUND_LITERAL_EXPR if just its initializer will be used.
10875
10876 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
10877
10878         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
10879         emit optional traceback table if optimize_size or TARGET_ELF.
10880         * config/rs6000/rs6000.md (prefetch): New.
10881
10882 2002-01-15  Andreas Jaeger  <aj@suse.de>
10883
10884         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
10885
10886 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10887
10888         * mips-tfile.c: Fix formatting.
10889
10890 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
10891
10892         * unroll.c (final_reg_note_copy): Fix previous commit.
10893
10894 2002-01-14  Kazu Hirata  <kazu@hxi.com>
10895
10896         * config/h8300/h8300-protos.h: Remove the prototype for
10897         eq_operator.
10898         * config/h8300/h8300.c (eq_operator): Remove.
10899
10900 2002-01-14  Richard Henderson  <rth@redhat.com>
10901
10902         * config/i386/i386.md (prefetch): Tidy.
10903         (prefetch_3dnow): Fix locality operand.
10904
10905 2002-01-14  Richard Henderson  <rth@redhat.com>
10906
10907         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
10908         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
10909
10910 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
10911
10912         * reload1.c (reload_combine): Pass reg_sum replacement through
10913         copy_rtx in loop performing multiple changes.
10914
10915 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
10916
10917         * except.c (remove_unreachable_regions): New.
10918         (free_eh_status): Clear exception_handler_labels.
10919         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
10920         (find_exception_handler_labels): Don't add the same label more than
10921         once.
10922         (remove_exception_handler_label): Don't die if
10923         find_exception_handler_labels hasn't been called for the current
10924         function yet.
10925
10926 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
10927
10928         * toplev.c (rest_of_compilation): Rebuild jump labels after
10929         gcse.
10930
10931 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
10932
10933         * doc/extend.texi: Move documentation of X86 built-in functions
10934         here.
10935         * doc/invoke.texi: From here.
10936         * doc/sourcebuild.texi: Document location of documentation for
10937         machine built-in functions.
10938
10939 2002-01-13  Christopher Faylor  <cgf@redhat.com>
10940
10941         * cppfiles.c (TEST_THRESHOLD): New macro.
10942         (SHOULD_MMAP): Ditto.
10943         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
10944         be used.
10945
10946 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
10947
10948         * unroll.c (final_reg_note_copy): Properly handle
10949         REG_LABEL
10950         (unroll_loops): Fix LOOP_CONDITION heuristics.
10951
10952 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
10953
10954         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
10955         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
10956
10957 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10958
10959         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
10960         threaded loop.
10961
10962 2002-01-14  Tom Rix  <trix@redhat.com>
10963
10964         * config/rs6000/rs6000.md: Fix typo with sradi.
10965
10966 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
10967
10968         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
10969         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
10970         (clrstrdi, clrstrsi): Adapt callers.
10971
10972         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
10973
10974         (movti splitter): Never use register 0 as base register.
10975
10976 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10977
10978         * combine.c (simplify_shift_const): Always generate new rtx
10979         for shift expression instead of reusing given expression.
10980
10981 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10982
10983         * config/alpha/alpha.c (alpha_expand_mov): Don't call
10984         alpha_legitimize_address unless mode is Pmode.
10985
10986 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
10987
10988         * doc/md.texi (Modifiers): Document the '*' constraint for the
10989         user.
10990
10991         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
10992         * doc/extend.texi (Function Attributes): 'interrupt' is valid
10993         for xstormy16 too.
10994
10995 2002-01-13  Richard Henderson  <rth@redhat.com>
10996
10997         * reload.c (find_reloads): Use a hard reg destination as reload reg
10998         for an input reload of the source.
10999
11000 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11001
11002         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
11003         more generic.
11004
11005 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
11006
11007         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11008         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11009
11010         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
11011
11012 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11013
11014         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
11015
11016 2002-01-12  Tom Rix  <trix@redhat.com>
11017
11018         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
11019         TARGET_POWERPC64.
11020
11021 2002-01-12  Richard Henderson  <rth@redhat.com>
11022
11023         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
11024
11025         * doc/invoke.texi: Update Alpha options.
11026
11027         * doc/invoke.texi: Update i386 built-in function lists.
11028
11029 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11030
11031         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
11032         referencing outside.
11033
11034 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11035
11036         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
11037         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
11038         offsets, and change line folding.
11039         * optabs.c (expand_binop): Remove warnings.
11040         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
11041
11042 2002-01-12  Graham Stott <grahams@redhat.com>
11043
11044         * attribs.c (handle_deprecated_attribute): constify WHAT.
11045         * diagnostic.c (warn_deprecated_use): Add braces, fixes
11046         dangling else warning and constify WHAT.
11047         * except.h (struct function, struct inline_remap): Move
11048         struct tag forward defs before all prototypes.
11049         (duplicate_eh_regions): Whitespace.
11050
11051 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
11052
11053         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11054         MODE_BASE_REG_CLASS.
11055         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
11056
11057 2002-01-12  Richard Henderson  <rth@redhat.com>
11058
11059         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
11060         (ix86_expand_vector_move): New.
11061         (bdesc_2arg): Remove andps, andnps, orps, xorps.
11062         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
11063         Remove old prefetch builtins.  Special case the logicals removed above.
11064         (ix86_expand_builtin): Likewise.
11065         (safe_vector_operand): Use V4SFmode, not TImode.
11066         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
11067         (ix86_expand_timode_binop_builtin): New.
11068         * config/i386/i386-protos.h: Update.
11069         * config/i386/i386.h (enum ix86_builtins): Update.
11070         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
11071         Use ix86_expand_vector_move in vector move expanders.
11072         (movti_internal, movti_rex64): Add xorps alternative.
11073         (sse_clrv4sf): Rename and adjust from sse_clrti.
11074         (prefetch): Don't work so hard.
11075         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
11076         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
11077         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
11078
11079 2002-01-11  Richard Henderson  <rth@redhat.com>
11080
11081         * config/i386/mmintrin.h: New file.
11082         * config/i386/xmmintrin.h: New file.
11083         * config.gcc (i?86-*-*): Add extra_headers.
11084         * simplify-rtx.c (simplify_unary_operation): Handle saturating
11085         truncation codes.
11086         (simplify_binary_operation): Handle saturating arithmetic codes.
11087         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
11088         not the lowpart subreg.
11089         (ix86_expand_builtin): Return a TImode dummy register instead of 0
11090         on error.
11091         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
11092
11093 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11094
11095         * conflict.c (conflict_graph_compute): Free regsets when finished.
11096         * ssa.c (compute_coalesced_reg_partition): Likewise.
11097
11098 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11099
11100         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
11101         every where we allocate a register.
11102
11103 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11104
11105         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
11106         * lcm.c (compute_earliest, compute_farthest): Likewise.
11107
11108 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11109
11110         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
11111
11112 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11113
11114         * doc/rtl.texi (Insns): Fix 2 typos.
11115
11116 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
11117
11118         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
11119         options.  Use @table @gcctabopt for MMIX options.  Add index
11120         entries for MMIX options.  Start new paragraph with first
11121         heading of the machine-dependent options.
11122
11123 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11124
11125         PR other/5299
11126         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
11127         * combine.c (force_to_mode): Same.
11128         * reload1.c (clear_reload_reg_in_use): Same.
11129
11130 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
11131
11132         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
11133         and 'subtargets'.
11134
11135 2002-01-11  Andreas Jaeger  <aj@suse.de>,
11136             Brad Lucier <lucier@math.purdue.edu>
11137
11138         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
11139         mcpu.
11140
11141 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
11142
11143         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
11144         Protect with IN_LIBGCC.
11145         (LINK_EH_SPEC): Add required trailing space.
11146
11147 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11148
11149         * c-tree.h: Move function declarations so that they are listed
11150         under the filename which contains them.
11151         (check_identifier, finish_decl_top_level,
11152         lookup_name_current_level_global, shadow_record_fields): Remove.
11153
11154 2002-01-11  Andreas Jaeger  <aj@suse.de>
11155
11156         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
11157         march.
11158
11159 2002-01-10  Richard Henderson  <rth@redhat.com>
11160
11161         * config/alpha/alpha.c (print_operand): Add 'J'.
11162         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
11163         new operand with the sequence number for the lituse.  When splitting
11164         the insns, use gen_movdi_er_high_g and generate a sequence number.
11165         (gen_movdi_er_high_g): Print the sequence number if non-zero.
11166
11167 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
11168
11169         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
11170         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
11171         stvxl.
11172         (altivec_expand_builtin): Same.
11173         (altivec_expand_stv_builtin): New.
11174
11175         * config/rs6000/rs6000.h (rs6000_builtins): Same.
11176
11177         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
11178         ("altivec_lvehx"): New.
11179         ("altivec_lvewx"): New.
11180         ("altivec_lvxl"): New.
11181         ("altivec_lvx"): New.
11182         ("altivec_stvx"): New.
11183         ("altivec_stvebx"): New.
11184         ("altivec_stvehx"): New.
11185         ("altivec_stvewx"): New.
11186         ("altivec_stvxl"): New.
11187
11188 2002-01-10  Richard Henderson  <rth@redhat.com>
11189
11190         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
11191         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
11192         care not to delete instructions twice.
11193
11194 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11195
11196         * toplev.c: Don't declare environ (it's not used anywhere).
11197         * configure.in: Don't check for declaration of environ.
11198         * config/i386/xm-mingw32.h: Don't #define environ.
11199         * config.in, configure: Regenerate.
11200
11201 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11202
11203         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
11204         * configure: Regenerate.
11205
11206         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
11207         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
11208         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
11209         alpha/xm-vms.h.
11210         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
11211         LIMITS_H_TEST here, not in m68k/x-next.
11212         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
11213         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
11214
11215         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
11216         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
11217         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
11218
11219         * config/i386/x-djgpp: Renamed i386/t-djgpp.
11220         * config/m88k/x-dolph: Renamed m88k/t-dolph.
11221         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
11222         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
11223         replacement of quadlib.asm with quadlib.c.
11224
11225         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
11226         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
11227         config/rs6000/xm-beos.h: Delete file.
11228
11229         * config.gcc: Update to match above changes.
11230
11231 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11232
11233         * config/h8300/h8300.h: Fix comment typos.
11234         * config/h8300/h8300.md: Likewise.
11235         * config/h8300/lib1funcs.asm: Likewise.
11236
11237 2002-01-10  Dale Johannesen  <dalej@apple.com>
11238
11239         PR optimization/5269
11240         * unroll.c (precondition_loop_p): Make *increment be the correct
11241         sign when n_iterations known, to avoid confusing caller.
11242
11243 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11244
11245         * doc/extend.texi (deprecated): Fix a typo.
11246
11247 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
11248
11249         * basic-block.h (update_br_prob_note): Declare.
11250         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
11251         (try_forward_edges): Care negative frequencies and update note.
11252         (outgoing_edges_match): Tweek conditional merging heuristics.
11253         (try_crossjump_to_edge): use update_br_prob_note.
11254         * cfglayout.c (fixup_reorder_chain): Likewise.
11255         * cfrtl.c (update_br_prob_note): New.
11256         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
11257
11258         * i386.c (ix86_decompose_address): Return -1 if address contains
11259         shift.
11260         (legitimate_address_p): Require ix86_decompose_address to return 1.
11261
11262         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
11263         (cprop_insn): Likewise.
11264
11265 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11266
11267         * toplev.c: Fix formatting.
11268         * tree.c: Likewise.
11269         * tree-dump.c: Likewise.
11270         * unroll.c: Likewise.
11271         * unwind-dw2.c: Likewise.
11272         * unwind-dw2-fde.c: Likewise.
11273         * unwind-dw2-fde-glibc.c: Likewise.
11274         * unwind-sjlj.c: Likewise.
11275
11276 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11277
11278         * doc/invoke.texi: Document PDP-11 options.
11279
11280 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11281
11282         * config/h8300/h8300.h: Fix formatting.
11283
11284 2002-01-10  Ira Ruben   <ira@apple.com>
11285
11286         Add __attribute__ ((deprecated)).
11287         * extend.texi: Document __attribute__ ((deprecated)).
11288         * invoke.texi: Document -Wno-deprecated-declarations.
11289         * testsuite/g++.dg/other/deprecated.C: New C++ test.
11290         * testsuite/gcc.dg/deprecated.c: New C test.
11291         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
11292         (c_common_attribute_table): Add "deprecated" entry.
11293         (handle_deprecated_attribute): New function.
11294         * c-decl.c (deprecated_states): New enum.
11295         deprecated_state: State of "deprecated" handling.
11296         (start_decl): Set deprecated_state based on attributes.
11297         (grokdeclarator): Test for deprecated uses, propagate attribute.
11298         * c-typeck.c (build_component_ref): Test for deprecated fields.
11299         (build_external_ref): Test for deprecated primaries.
11300         * diagnostic.c (warn_deprecated_use) New function to issue
11301         warnings about __attribute__ ((depricated)) references.
11302         * flags.h (warn_deprecated_decl): Extern declared for
11303         -W[no-]deprecated-declarations option.
11304         * print-tree.c (print_node): Show deprecated flag status.
11305         * toplev.c (warn_deprecated_decl): Defined.
11306         (W_options): Added "deprecated-declaration".
11307         * toplev.h (warn_deprecated_use): Extern declared.
11308         * tree.h (struct tree_common): Define deprecated_flag.
11309         (TREE_DEPRECATED): New macro to access flag.
11310         * cp/call.c (build_call): Test for deprecated calls.
11311         * cp/class.c (add_implicitly_declared_members): Set global
11312         flag to tell grokdeclarator to not issue deprecated warnings.
11313         * cp/cp-tree.h: Add extern for adding_implicit_members.
11314         * cp/decl.c (deprecated_states): New enum.
11315         (start_decl): Set deprecated_state based on attributes.
11316         (grokdeclarator): Test for deprecated uses, propagate attribute.
11317         * cp/lex.c (do_identifier): Test for deprecated primaries.
11318         * cp/typeck.c (build_component_ref): Test for deprecated fields.
11319
11320 2002-01-10  Ira Ruben   <ira@apple.com>
11321
11322         Fix to assign attributes to inline member functions.
11323         * cp/decl.c (start_method): Handle attrlist.
11324
11325 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11326
11327         * combine.c (expand_field_assignment): Use subreg_lsb().
11328
11329 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
11330
11331         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
11332         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
11333         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
11334         Recurse for any operand of AND as long as constant is non-zero.
11335
11336 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11337
11338         * config/h8300/h8300.md: Remove constraints from expanders.
11339
11340 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11341
11342         * varasm.c: Fix formatting.
11343         * varray.c: Likewise.
11344         * vmsdbgout.c: Likewise.
11345         * xcoffout.c: Likewise.
11346
11347 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11348
11349         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
11350         update edge probabilities to match.
11351
11352 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11353
11354         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
11355         dependencies.
11356         * doc/languages.texi, doc/sourcebuild.texi: New files.
11357         * doc/configfiles.texi: Make a subsubsection.  Update.
11358         * doc/configterms.texi: Add @node.  Remove warning that this isn't
11359         instructions for building GCC.
11360         * doc/makefile.texi: Make a subsection.
11361         * doc/gccint.texi: Update.
11362
11363 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
11364
11365         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
11366
11367 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11368
11369         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
11370
11371 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
11372
11373         * optabs.c (expand_fix): Look for wider integer modes first.
11374
11375         * i386.md (mov?f): Avoid the fake const double trick for medium
11376         memory model.
11377         (min?f*/max?f*): Prohibit memory operands for i387 variant.
11378         (fop_df_4): Disable for SSE compilation.
11379
11380 2002-01-10  Graham Stott  <grahams@redhat.com>
11381
11382         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
11383         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
11384
11385 2002-01-10  Richard Henderson  <rth@redhat.com>
11386
11387         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
11388
11389 2002-01-10  Richard Henderson  <rth@redhat.com>
11390
11391         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
11392         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
11393
11394 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11395
11396         * combine.c (can_combine_p): Fix a comment typo.
11397
11398 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
11399
11400         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
11401         empty list correctly.  Change loop index $t to $f for
11402         consistency with rest of Makefile.
11403
11404 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
11405
11406         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
11407         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11408
11409         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
11410         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
11411         (altivec_init_builtins): Same.
11412         (altivec_expand_unop_builtin): Return NULL_RTX on error.
11413         (altivec_expand_binop_builtin): Same.
11414         (altivec_expand_ternop_builtin): Same.
11415         (bdesc_dst): New.
11416
11417         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
11418         ("altivec_vctuxs"): Fix typo.
11419         ("altivec_vnmsubfp"): Same.
11420         ("altivec_dssall"): New.
11421         ("altivec_mfvscr"): New.
11422         ("altivec_dss"): New.
11423         ("altivec_lvsl"): New.
11424         ("altivec_lvsr"): New.
11425         ("altivec_dstt"): New.
11426         ("altivec_dstst"): New.
11427         ("altivec_dststt"): New.
11428         ("altivec_dst"): New.
11429
11430         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
11431         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11432
11433 2002-01-09  Richard Henderson  <rth@redhat.com>
11434
11435         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
11436
11437 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
11438
11439         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
11440         function.
11441         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
11442         prototype.
11443         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
11444
11445 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11446
11447         * read-rtl.c: Fix formatting.
11448         * real.c: Likewise.
11449         * regclass.c: Likewise.
11450         * regrename.c: Likewise.
11451         * reg-stack.c: Likewise.
11452         * reload1.c: Likewise.
11453         * reload.c: Likewise.
11454         * rtl.c: Likewise.
11455
11456 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11457
11458         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
11459         to extract items in the expr_list chain.
11460
11461 2002-01-09  Richard Henderson  <rth@redhat.com>
11462
11463         * config/vax/vax.c (vax_rtx_cost): Never abort.
11464
11465         * config/vax/vax.h (REAL_ARITHMETIC): Define.
11466
11467 2002-01-09  Jan Hubicka  <jh@suse.cz>
11468
11469         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
11470
11471 2002-01-09  Richard Henderson  <rth@redhat.com>
11472
11473         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
11474         Unify code from various alternatives.
11475
11476 2002-01-09  Richard Henderson  <rth@redhat.com>
11477
11478         * regrename.c (copy_value): Ignore the copy if the source register
11479         is present in the value chain with a narrower mode.
11480
11481 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11482
11483         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
11484         for the c4x target. Also improve layout.
11485
11486 2002-01-09  Richard Henderson  <rth@redhat.com>
11487
11488         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
11489         * config/m32r/m32r.md (and ior xor splitters): Swap operands
11490         to match insn patterns.
11491
11492 2002-01-09  Richard Henderson  <rth@redhat.com>
11493
11494         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
11495         (copyprop_hardreg_forward_1): Likewise.
11496
11497 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11498
11499         * pa.md (decrement_and_branch_until_zero): Change predicate for
11500         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
11501
11502 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11503
11504         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
11505         gets undefined. For Darwin.
11506
11507 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11508
11509         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
11510
11511 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11512
11513         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
11514
11515 2002-01-08  Richard Henderson  <rth@redhat.com>
11516
11517         * regrename.c (copy_value): Ignore overlapping copies.
11518
11519 2002-01-08  Richard Henderson  <rth@redhat.com>
11520
11521         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
11522         as needed to avoid shared structure.
11523
11524 2002-01-08  Kazu Hirata  <kazu@hxi.com>
11525
11526         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
11527         H8/300H and H8/S.
11528
11529 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11530
11531         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
11532         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
11533         documentation of obsolete macros.
11534         * system.h: Poison these macros.
11535         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
11536         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
11537         config/c4x/c4x.h, config/clipper/clipper.h,
11538         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
11539         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
11540         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
11541         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
11542         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11543         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
11544         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
11545         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
11546         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
11547         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
11548         config/sparc/sparc.h, config/stormy16/stormy16.h,
11549         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
11550         definitions and commented out definitions of obsolete macros.
11551         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
11552         of MAX_INT_TYPE_SIZE.
11553
11554 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11555
11556         * config/s390/s390.c (s390_preferred_reload_class): Never
11557         return ADDR_REGS if it isn't a subset of the given class.
11558         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
11559         FP_REGS, but all superclasses as well.
11560
11561         * config/s390/s390.c (s390_function_profiler): Fix thinko.
11562
11563         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
11564         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
11565         must not be a const_int.
11566
11567 2002-01-08  Richard Henderson  <rth@redhat.com>
11568
11569         * Makefile.in (toplev.o): Depend on options.h.
11570         (gcc.o): Depend on specs.h.
11571
11572 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
11573
11574         * expr.c (store_expr): Convert VOIDmode constants back to target's
11575         mode.
11576
11577 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11578
11579         * doc/invoke.texi: Markup gcc as @command.  Refer to
11580         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
11581         of http://gcc.gnu.org/thanks.html.
11582
11583 2002-01-08  Dale Johannesen  <dalej@apple.com>
11584
11585         * config/rs6000/rs6000.md: Add missing int register
11586         target case to movdf_low.
11587
11588 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
11589
11590         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
11591         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
11592         (cppinit.o): Depend on except.h.
11593         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
11594         s-specs): New rules.
11595
11596         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
11597         Don't create specs.h/options.h/gencheck.h here.  Remove
11598         unnecessary variable settings from last argument of AC_OUTPUT.
11599         * config.in, configure: Regenerate.
11600         * intl.c: Hardcode package name as "gcc".
11601
11602         * cppinit.c: Include except.h.
11603         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
11604         appropriate.
11605         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
11606         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
11607         (!)USING_SJLJ_EXCEPTIONS.
11608         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
11609
11610 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11611
11612         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
11613         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
11614         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
11615         documentation of obsolete macros.
11616         * system.h: Poison these macros.
11617         * config/d30v/d30v.h, config/ns32k/encore.h,
11618         config/stormy16/stormy16.h: Remove definitions and commented out
11619         definitions of obsolete macros.
11620
11621 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
11622
11623         * objc/objc-act.c (handle_class_ref): Mark the declaration of
11624         %sobjc_class_ref_%s as used - to prevent unwanted compiler
11625         warnings.
11626
11627 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11628
11629         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
11630         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
11631         to insn adjusting stack/frame pointer.
11632         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
11633         accept operands that cause the insn to be non-splittable.
11634
11635 2002-01-08  Graham Stott  <grahams@redhat.com>
11636
11637         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
11638         (C_TYPE_FIELDS_VOLATILE): Likewise.
11639         (C_TYPE_BEING_DEFINED): Likewise.
11640         (C_IS_RESERVED_WORD): Likewise.
11641         (C_TYPE_VARIABLE_SIZE): Likewise.
11642         (C_DECL_VARIABLE_SIZE): Likewise.
11643         (C_MISSING_PROTOTYPE_WARNED): Likewise.
11644         (C_SET_EXP_ORIGINAL_CODE): Likewise.
11645         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
11646         parenthesis.
11647         (C_DECL_ANTICIPATED): Likewise.
11648         (c_build_type_variant): Add parenthesis.
11649
11650 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11651
11652         * gcc.c (option_map): Remove --version.
11653         (process_command): Handle -fversion following the GNU Coding
11654         Standards.  Partially addresses PR other/704.
11655
11656 2002-01-08  Graham Stott  <grahams@redhat.com>
11657
11658         * combine.c (combine_instructions): Fix typo.
11659
11660 2002-01-08  Graham Stott  <grahams@redhat.com>
11661
11662         * debug.h: Use "tree" and "rtx" throughout.
11663
11664         * debug.c: Likewise.
11665
11666 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
11667
11668         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
11669         constant pool, use the pool's version of the symbol instead.
11670
11671 2002-01-07  Richard Henderson  <rth@redhat.com>
11672
11673         * regrename.c (find_oldest_value_reg): Ignore the value chain if
11674         the original register was copied in a mode with a fewer number of
11675         hard registers than the desired mode.
11676         (copyprop_hardreg_forward_1): Likewise.
11677         (debug_value_data): Fix loop test.
11678         * toplev.c (parse_options_and_default_flags): Reenable
11679         -fcprop-registers at -O1.
11680
11681 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11682
11683         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
11684         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
11685
11686         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
11687         predicates.
11688
11689         * config/rs6000/rs6000.md: Add altivec predicate patterns.
11690
11691 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11692
11693         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
11694         (pa_output_function_prologue): Output local label at the beginning of
11695         the prologue when profiling.
11696         (hppa_profile_hook): Use the local label rather than the function label.
11697         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
11698
11699 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11700
11701         * config/rs6000/rs6000.c (print_operand): Remove extra space.
11702         (altivec_expand_unop_builtin): Fix thinko.
11703         (altivec_expand_binop_builtin): Same.
11704         (altivec_expand_ternop_builtin): Same.
11705         (altivec_expand_builtin): Same.
11706
11707 2002-01-07  Richard Henderson  <rth@redhat.com>
11708
11709         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
11710
11711 2002-01-07  Jason Merrill  <jason@redhat.com>
11712
11713         * unwind-dw2.c (execute_cfa_program): Use < again.
11714
11715 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
11716
11717         * predict.c (combine_predictions_for_insn): Avoid division by zero.
11718
11719 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
11720
11721         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
11722         Don't allow -1 - x -> ~x simplifications in the first pass.
11723
11724 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11725
11726         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
11727         arguments.
11728         (altivec_expand_binop_builtin): Same.
11729         (altivec_expand_unop_builtin): Same.
11730         (print_operand): Fix typo.
11731         (bdesc_1arg): Add vupk* variants.
11732
11733         * rs6000.h (rs6000_builtins): Add vupk* enums.
11734
11735         * rs6000.md: Add altivec_vupk* variants.
11736
11737 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
11738
11739         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
11740         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
11741         and last update dates.
11742
11743 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
11744
11745         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
11746
11747 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11748
11749         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
11750         * config/avr/avr.h (CPP_SPEC): Likewise.
11751         (LINK_SPEC): Likewise.
11752         (CRT_BINUTILS_SPECS): Likewise.
11753         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
11754         * doc/invoke.texi (AVR Options): Document them.
11755
11756 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
11757
11758         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
11759         LABEL_NUSES.
11760
11761 2002-01-07  Graham Stott  <grahams@redhat.com>
11762
11763         * config/i386/i386.h: Update copyright date.
11764         (HALF_PIC_PTR): Add parenthesis.
11765         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
11766         (CONSTANT_ALIGNMENT): Add parenthesis.
11767         (DATA_ALIGNMENT): Likewise.
11768         (LOCAL_ALIGNMENT): Likewise.
11769         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
11770         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
11771         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
11772         (HARD_REGNO_NREGS): Add paranethesis.
11773         (VALID_SSE_REG_MODE): Whitespace.
11774         (VALID_MMX_REG_MODE): Whitespace.
11775         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
11776         (ix86_hard_regno_mode_ok): Add parenthesis.
11777         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
11778         (RETURN_IN_MEMORY): Whitespace.
11779         (N_REG_CLASSES): Add parenthesis.
11780         (INTEGER_CLASS_P): Add parenthesis and wrap.
11781         (FLOAT_CLASS_P): Likewise.
11782         (SSE_CLASS_P): Likewise.
11783         (MMX_CLASS_P): Likewise.
11784         (MAYBE_INTEGER_CLASS_P): Likewise.
11785         (MAYBE_FLOAT_CLASS_P): Likewise.
11786         (MAYBE_SSE_CLASS_P): Likewise.
11787         (MAYBE_MMX_CLASS_P): Likewise.
11788         (Q_CLASS_P): Likewise.
11789         (GENERAL_REGNO_P): Uppercase macro parameter.
11790         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
11791         (FP_REGNO_P): Likewise.
11792         (ANY_FP_REGNO_P): Uppercase macro parameter.
11793         (SSE_REGNO_P): Likewise.
11794         (SSE_REGNO): Likewise.
11795         (SSE_REG_P): Likewise.
11796         (SSE_FLOAT_MODE_P): Likewise.
11797         (MMX_REGNO_P): Likewise.
11798         (MMX_REG_P):Likewise.
11799         (STACK_REG_P): Likewise.
11800         (NON_STACK_REG_P): Likewise.
11801         (STACK_TOP_P): Likewise.
11802         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
11803         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
11804         (SECONDARY_MEMORY_NEEDED): Likewise.
11805         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
11806         (MD_ASM_CLOBBERS): Whitespace and wrap.
11807         (MUST_PASS_IN_STACK): Whitespace and wrap.
11808         (RETURN_POPS_ARGS): Add parenthesis.
11809         (INIT_CUMULATIVE_ARGS): Likewise.
11810         (FUNCTION_ARG): Likewise.
11811         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
11812         (SETUP_INCOMING_VARARGS): Likewise.
11813         (BUILD_VA_LIST_TYPE):  Add parenthesis.
11814         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
11815         parenthsis.
11816         (EXPAND_BUILTIN_VA_ARG): Likewise.
11817         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
11818         (INITIALIZE_TRAMPOLINE): Add parenthesis.
11819         (INITIAL_ELIMINATION_OFFSET): Likewise.
11820         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
11821         (REGNO_OK_FOR_BASE_P): Likewise.
11822         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
11823         (REGNO_OK_FOR_DIREG_P): Likewise.
11824         (REG_OK_FOR_INDEX_P): Whitespace.
11825         (REG_OK_FOR_BASE_P): Whitespace.
11826         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
11827         parenthesis.
11828         (FIND_BASE_TERM): Fix typo.
11829         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
11830         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
11831         (SYMBOLIC_CONST; Whitespace.
11832         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
11833         (ENCODE_SECTION_INFO): Whitespace.
11834         (FINALIZE_PIC): Remove do { ... } while (0).
11835         (PROMOTE_MODE): Wrap in do { ... } while (0).
11836         (CONST_COSTS): Whitespace.
11837         (RTX_COSTS): Add paramethesis, whitespace and wrap.
11838         (REGISTER_MOVE_COST): Add parenthesis.
11839         (MEMORY_MOVE_COST): Likewise.
11840         (EXTRA_CC_MODES): Whitespace.
11841         (SELECT_CC_MODE): Add parenthesis and whitespace.
11842         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
11843         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
11844         (ASM_OUTPUT_LABEL): Add paramethesis.
11845         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
11846         (ASM_OUTPUT_REG_POP): Likewise.
11847         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
11848         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11849
11850         * config/i386/i386.c: Update copyright.
11851         (CHECK_STACK_LIMIT): Add parenthesis.
11852         (AT_BP): Uppercase macro parameter.
11853         (x86_64_int_parameter_registers): Constify.
11854         (x86_64_int_return_registers): Likewise.
11855         (ix86_compare_op0): Use rtx.
11856         (construct_container): Constify INTREG parameter.
11857         (function_arg): Use rtx.
11858
11859         * diagnostic.h: Update copyright date.
11860         (output_buffer_state): Add parenthesis.
11861         (output_buffer_format_args): Likewise.
11862
11863         * combine.c (combine_instructions): Replace XEXP (links, 0)
11864         with link.
11865
11866 2002-01-06  H.J. Lu <hjl@gnu.org>
11867
11868         * cfgcleanup.c (thread_jump): Fix 2 typos.
11869
11870 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
11871
11872         * config.gcc: Add support for --enable-altivec.
11873
11874 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11875
11876         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
11877
11878 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
11879
11880         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
11881         __objc_class_name_*.
11882
11883 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11884
11885         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
11886
11887 2002-01-06  Richard Henderson  <rth@redhat.com>
11888
11889         * reorg.c (emit_delay_sequence): Remove death notes, not merely
11890         nop them out.  Increment label reference count for REG_LABEL.
11891         (fill_slots_from_thread): Frob label reference count around
11892         delete_related_insns.
11893
11894 2002-01-05  Richard Henderson  <rth@redhat.com>
11895
11896         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
11897         jump threading.
11898
11899 2002-01-05  Richard Henderson  <rth@redhat.com>
11900
11901         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
11902         * integrate.c (output_inline_function): Likewise.
11903         * toplev.c (rest_of_compilation): Do it here instead.  Move call
11904         to remove_unnecessary_notes after emitting abstract instance.
11905         Force an emitted nested function to have its parent emited as well.
11906         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
11907         for null.
11908         (rtl_for_decl_location): Do not look at reload data structures
11909         before reload has run.
11910
11911 2002-01-05  Kazu Hirata  <kazu@hxi.com>
11912
11913         * cse.c: Fix formatting.
11914         * dwarf2asm.c: Likewise.
11915         * dwarf2out.c: Likewise.
11916         * explow.c: Likewise.
11917         * expmed.c: Likewise.
11918         * function.c: Likewise.
11919         * gcov.c: Likewise.
11920         * gencheck.c: Likewise.
11921         * genrecog.c: Likewise.
11922         * ggc-common.c: Likewise.
11923         * ggc-page.c: Likewise.
11924         * global.c: Likewise.
11925
11926 2002-01-05  Kazu Hirata  <kazu@hxi.com>
11927
11928         * combine.c: Fix formatting.
11929
11930 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
11931
11932         PR middle-end/1557
11933         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
11934
11935 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
11936
11937         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
11938         as 1 for __powerpc64__ as well.
11939
11940         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
11941
11942         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
11943         return it.
11944
11945 2002-01-05  Daniel Berlin  <dan@dberlin.org>
11946
11947         * lcm.c: Revert change, due to performance regression it causes on
11948         SPEC because it's slightly more conservative (sigh, I hate
11949         edge-based LCM).
11950
11951 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
11952
11953         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
11954
11955 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
11956
11957         * doc/cppinternals.texi: Update.
11958
11959 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
11960
11961         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
11962         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
11963         negatives.
11964         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
11965         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
11966         kludge for pre-october-14th mmix versions to handle new-found bug
11967         with PUSHJ/PUSHGO and the register stack.
11968         * config/mmix/mmix.h (struct machine_function): Rename member
11969         has_call_value_without_parameters to has_call_without_parameters.
11970         All referers changed.
11971         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
11972         TARGET_MASK_BRANCH_PREDICT): New macros.
11973         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
11974         -mno-reg-stack-fill-bug-workaround.
11975         * config/mmix/mmix.md ("call"): Set struct machine member
11976         has_call_without_parameters.
11977
11978 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
11979
11980         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
11981
11982 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
11983
11984         * cfgcleanup.c: Include tm_p.h
11985         (mark_effect): Fix handling of hard register; fix handling of SET
11986
11987 2002-01-04  Kazu Hirata  <kazu@hxi.com>
11988
11989         * config/h8300/h8300.md (anonymous patterns): Check that
11990         operands are registers before using REGNO on them.
11991
11992 2002-01-03  Roland McGrath  <roland@frob.com>
11993
11994         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
11995
11996 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
11997
11998         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
11999         * c-common.h (genrtl_expr_stmt_value): Likewise.
12000         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
12001         (expand_expr_stmt_value): Add maybe_last argument.
12002         Don't warn about statement with no effect if it is the last statement
12003         in expression statement.
12004         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
12005         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
12006         expand_expr_stmt_value.
12007         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
12008         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
12009         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
12010         as maybe_last to expand_expr_stmt_value.
12011
12012 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
12013
12014         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
12015         be passed in, do not build it.
12016         (c_begin_if_stmt): New function.
12017         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12018         * c-common.h (c_expand_start_cond): Update prototype.
12019         (c_begin_if_stmt): Prototype new function.
12020         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12021         * c-parse.in (if_prefix): Use c_begin_if_stmt,
12022         c_begin_while_stmt and c_finish_while_stmt_cond.
12023
12024 2002-01-04  William Cohen  <wcohen@redhat.com>
12025
12026         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
12027         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12028         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12029         * config/pa/som.h (ASM_FILE_START): Likewise.
12030
12031 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
12032
12033         * lcm.c: Include df.h.
12034         Add available_transfer_function prototype.
12035         (compute_available): Rework to use iterative dataflow framework.
12036         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
12037         with bb_info in df.h
12038         (available_transfer_function): New function.
12039
12040         * Makefile.in (lcm.o): add df.h to dependencies.
12041
12042 2002-01-04  Richard Henderson  <rth@redhat.com>
12043
12044         * config/alpha/alpha.c (some_operand): Accept HIGH.
12045         (input_operand): Likewise; accept simple references to globals.
12046         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
12047         (alpha_const_double_ok_for_letter_p): Likewise.
12048         (alpha_extra_constraint): Likewise.
12049         (alpha_preferred_reload_class): Likewise.  Do not force
12050         symbolic constants to memory.
12051         (alpha_legitimate_address_p): Accept simple references
12052         to small_symbolic_operand.
12053         (alpha_legitimize_address): New arg scratch.  Be prepared to be
12054         called when no_new_pseudos.  Emit simple symbolic references.
12055         Split integers into low, high, and rest.
12056         (alpha_expand_mov): Use alpha_legitimize_address.
12057         (some_small_symbolic_mem_operand): New.
12058         (split_small_symbolic_mem_operand): New.
12059         * config/alpha/alpha-protos.h: Update.
12060         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
12061         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
12062         (EXTRA_CONSTRAINT): Likewise.
12063         (PREFERRED_RELOAD_CLASS): Likewise.
12064         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
12065         (PREDICATE_CODES): Update.
12066         * config/alpha/alpha.md: New post-reload splitters to convert
12067         simplfied symbolic operands to the form that references $29.
12068         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
12069         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
12070
12071 2002-01-03  Richard Henderson  <rth@redhat.com>
12072
12073         * local-alloc.c (function_invariant_p): Update commentary.
12074
12075 2002-01-04  H.J. Lu <hjl@gnu.org>
12076
12077         * toplev.c (rest_of_compilation): Fix a typo when calling
12078         cleanup_cfg.
12079
12080 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12081
12082         * c-common.c: Fix formatting.
12083         * diagnostic.c: Likewise.
12084         * doloop.c: Likewise.
12085         * dwarf2out.c: Likewise.
12086
12087 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12088
12089         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
12090         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
12091
12092 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12093
12094         * cpperror.c: Update comments and copyright.
12095         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
12096         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
12097
12098 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12099
12100         * collect2.c (main): Use strcmp when testing for "-shared".
12101
12102 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12103
12104         * cppmacro.c: Don't include intl.h.  Update comments.
12105         (new_number_token): Allocate enough buffer for 64-bit unsigned
12106         integers; update prototype.
12107         * cppmain.c: Update comments.
12108
12109 2002-01-03  William Cohen  <wcohen@redhat.com>
12110
12111         * function.h (struct function): Add profile.
12112         (current_function_profile): New.
12113         doc/extend.texi: Update documentation.
12114         * final.c (final_start_function): Use current_function_profile
12115         instead of profile_flag.
12116         (profile_after_prologue): Likewise.
12117         * function.c (expand_function_start): Likewise.
12118         (expand_function_start): Likewise.
12119         * config/alpha/alpha.c (direct_call_operand):
12120         (alpha_does_function_need_gp): Likewise.
12121         (alpha_expand_prologue): Likewise.
12122         * config/arm/arm.c (arm_expand_prologue): Likewise.
12123         thumb_expand_prologue: Likewise.
12124         * config/d30v/d30v.c (d30v_stack_info): Likewise.
12125         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
12126         (fr30_expand_prologue): Likewise.
12127         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
12128         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
12129         * config/i386/i386.h (FINALIZE_PIC): Likewise.
12130         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
12131         * config/i960/i960.c (i960_output_function_prologue): Likewise.
12132         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
12133         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
12134         (m32r_expand_prologue): Likewise.
12135         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
12136         (m88k_expand_prologue): Likewise.
12137         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
12138         * config/mips/mips.c (compute_frame_size): Likewise.
12139         (mips_expand_prologue): Likewise.
12140         (mips_can_use_return_insn): Likewise.
12141         * config/pa/elf.h (ASM_FILE_START): Likewise.
12142         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12143         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12144         * config/pa/som.h (ASM_FILE_START): Likewise.
12145         * config/romp/romp.c (romp_using_r14): Likewise.
12146         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
12147         (rs6000_stack_info): Likewise.
12148         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12149         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
12150         * config/v850/v850.c (compute_register_save_size): Likewise.
12151
12152 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
12153
12154         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
12155         gen_lowpart_common fails, use gen_lowpart_SUBREG.
12156
12157 2002-01-03  Turly O'Connor  <turly@apple.com>
12158
12159         * darwin.c (machopic_output_possible_stub_label): Don't generate
12160         stub routines for pseudo-stubs which we've just defined.
12161
12162 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12163
12164         * builtins.c: Fix formatting.
12165         * c-typeck.c: Likewise.
12166         * combine.c: Likewise.
12167         * expr.c: Likewise.
12168         * loop.c: Likewise.
12169
12170 2002-01-03  Andreas Schwab  <schwab@suse.de>
12171
12172         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
12173         and return true if _cpp_push_next_buffer pushed a new include
12174         file.
12175         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
12176         _cpp_pop_file_buffer did not push a new file.
12177         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
12178
12179 2002-01-02  Eric Christopher  <echristo@redhat.com>
12180
12181         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
12182         FIND_REG_INC_NOTE call. Update copyright.
12183         * loop.c (canonicalize_condition): Ditto.
12184         * reorg.c (delete_scheduled_jump): Ditto.
12185
12186 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12187
12188         * gcse.c: Fix formatting.
12189
12190 2002-01-03  Graham Stott  <grahams@redhat.com>
12191
12192         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
12193         forward defs for struct tags rtx_def, union_tree, rtvec_def
12194         also output corresponding typedefs for rtx, tree, and rtvec.
12195
12196         * system.h: Move forward defs for struct tags rtx_def, union_tree,
12197         rtvec_def along with corresponding typedefs for rtx, tree, and
12198         rtvec to config.h, hconfig.h, tconfig.h.
12199
12200 2002-01-03  Graham Stott  <grahams@redhat.com>
12201
12202         * tree.h: Update copyright date.
12203         (IS_EXPR_CODE_CLASS): Add parenthesis.
12204         (TREE_SET_CODE): Add whitespace.
12205         (TREE_CHECK): Add parenthesis.
12206         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
12207         (CST_OR_CONSTRUCTOR_CHECK):
12208         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
12209         (TREE_SYMBOL_REFERENCED): Whitespace.
12210         (INT_CST_LT): Likewise.
12211         (INT_CST_LT_UNSIGNED): Likewise.
12212         (tree_real_cst): Unwrap comment.
12213         (tree_string): Likewise.
12214         (tree_complex): Likewise.
12215         (IDENTIFIER_POINTER): correct cast.
12216         (SAVE_EXPR_CONTEXT): Whitespace.
12217         (EXPR_WFL_FILENAME_NODE): Likewise.
12218         (EXPR_WFL_FILENAME): Remove parenthesis.
12219         (DECL_ORIGIN): Add parenthesis.
12220         (DECL_FROM_INLINE): Use NULL_TREE.
12221         (build_int_2): Whitespace.
12222         (build_type_variant): Add parenthesis.
12223
12224         * gcc/jcf-parse.c: Update copyright date.
12225         (yyparse): Constify resource_filename.
12226
12227 2002-01-03  Graham Stott  <grahams@redhat.com>
12228
12229         * rtl.h: Update copyright date.
12230         (RTL_CHECK1): Wrap long line.
12231         (RTL_CHECK2): Likewise.
12232         (RTL_CHECKC1): Wrap long line and whitespace.
12233         (RTL_CHECKC2): Likewise.
12234         (XWINT): Whitespace.
12235         (XINT): Likewise.
12236         (XSTR): Likewise.
12237         (XEXP): Likewise.
12238         (XVEC): Likewise.
12239         (XMODE): Likewise.
12240         (XBITMAP): Likewise.
12241         (XTREE): Likewise.
12242         (XBBDEF): Likewise.
12243         (XTMPL): Likewise.
12244         (X0WINT): Likewise.
12245         (X0INT):Likewise.
12246         (X0UINT): Likewise.
12247         (X0STR): Likewise.
12248         (X0EXP): Likewise.
12249         (X0VEC): Likewise.
12250         (X0MODE): Likewise.
12251         (X0BITMAP): Likewise.
12252         (X0TREE): Likewise.
12253         (X0BBDEF): Likewise.
12254         (X0ADVFLAGS): Likewise.
12255         (X0CSELIB): Likewise.
12256         (X0MEMATTR): Likewise.
12257         (XCWINT): Likewise.
12258         (XCINT): Likewise.
12259         (XCUINT): Likewise.
12260         (XCSTR): Likewise.
12261         (XCEXP): Likewise.
12262         (XCVEC): Likewise.
12263         (XCMODE): Likewise.
12264         (XCBITMAP): Likewise.
12265         (XCTREE): Likewise.
12266         (XCBBDEF): Likewise.
12267         (XCADVFLAGS): Likewise.
12268         (XCCSELIB): Likewise.
12269         (XC2EXP): Likewise.
12270         (INSN_UID): Likewise.
12271         (PREV_INSN): Likewise.
12272         (PATTERN): Likewise.
12273         (INSN_CODE): Likewise.
12274         (PUT_REG_NOTE_KIND): Likewise.
12275         (CODE_LABEL_NUMBER): Likewise.
12276         (NOTE_SOURCE_FILE): Likewise.
12277         (NOTE_BLOCK): Likewise.
12278         (NOTE_EH_HANDLER): Likewise.
12279         (NOTE_RANGE_INFO): Likewise.
12280         (NOTE_LIVE_INFO): Likewise.
12281         (NOTE_BASIC_BLOCK): Likewise.
12282         (NOTE_EXPECTED_VALUE): Likewise.
12283         (NOTE_LINE_NUMBER): Likewise.
12284         (LABEL_NAME): Likewise.
12285         (LABEL_NUSES): Likewise.
12286         (LABEL_ALTERNATE_NAME): Likewise.
12287         (ADDRESSOF_DECL): Likewise.
12288         (JUMP_LABEL): Likewise.
12289         (LABEL_NEXTREF): Likewise.
12290         (REGNO): Likewise.
12291         (ORIGINAL_REGNO: Likewise.
12292         (HARD_REGISTER_NUM_P): Add parenthesis.
12293         (SUBREG_REG): Whitespace.
12294         (SUBREG_BYTE): Likewise.
12295         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
12296         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
12297         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
12298         (ASM_OPERANDS_INPUT_VEC): Likewise.
12299         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
12300         (ASM_OPERANDS_INPUT): Likewise.
12301         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
12302         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
12303         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
12304         (ASM_OPERANDS_INPUT_MODE): Likewise.
12305         (ASM_OPERANDS_SOURCE_FILE): Likewise.
12306         (ASM_OPERANDS_SOURCE_LINE): Likewise.
12307         (MEM_SET_IN_STRUCT_P): Minor reformat.
12308         (TRAP_CONDITION): Whitespace.
12309         (TRAP_CODE): Likewise.
12310         (COND_EXEC_TEST): Likewise.
12311         (COND_EXEC_CODE): Likewise.
12312         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
12313         (PHI_NODE_P): Add parenthesis.
12314         (plus_constant): Whitespace and add parenthesis.
12315
12316 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12317
12318         * config/avr/avr.c: Fix comment typos.
12319         * config/c4x/c4x.md: Likewise.
12320         * config/dsp16xx/dsp16xx.h: Likewise.
12321         * config/dsp16xx/dsp16xx.md: Likewise.
12322         * config/i386/i386.md: Likewise.
12323         * config/ia64/ia64.c: Likewise.
12324         * config/m32r/m32r.h: Likewise.
12325         * config/m68hc11/m68hc11.md: Likewise.
12326         * config/mmix/mmix.c: Likewise.
12327         * config/mn10200/mn10200.c: Likewise.
12328         * config/romp/romp.c: Likewise.
12329         * config/sh/sh.c: Likewise.
12330         * config/stormy16/stormy16.c: Likewise.
12331         * config/stormy16/stormy16.h: Likewise.
12332         * config/stormy16/stormy16.md: Likewise.
12333
12334 2002-01-03  Graham Stott  <grahams@redhat.com>
12335
12336         * loop.h: Update copyright date.
12337         (LOOP_MOVABLES): Fix typo.
12338         (LOOP_REGS): Likewise.
12339         (LOOP_IVS): Likewise.
12340
12341 2002-01-03  Graham Stott  <grahams@redhat.com>
12342
12343         * cppinit.c: Update copyright date.
12344         Don't include output.h
12345         * Makefile.in: Update copyright date.
12346         Update dependency.
12347
12348 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12349
12350         PR c/5226
12351         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
12352         (-pthread) Add to RS/6000 options.
12353
12354 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12355
12356         * except.c: Fix comment typos.
12357         * loop.c: Likewise.
12358         * varasm.c: Likewise.
12359         * doc/tm.texi: Fix a typo.
12360
12361 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
12362
12363         * c-typeck.c (output_init_element): Allow initializing static storage
12364         duration objects with compound literals.
12365
12366 2002-01-02  Richard Henderson  <rth@redhat.com>
12367
12368         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
12369         after abusing it.
12370
12371 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12372
12373         * gcc.c (default_compilers): Const-ify.
12374         * mips-tdump.c (stab_names): Likewise.
12375         * mips-tfile.c (map_coff_types, map_coff_storage,
12376         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
12377         pseudo_ops_t, pseudo_ops): Likewise.
12378         * protoize.c (default_include): Likewise
12379
12380         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
12381         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
12382         Add array size in declaration.
12383         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
12384         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
12385         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
12386         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
12387         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
12388         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
12389         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
12390         emtens, make_nan): Const-ify.
12391         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
12392         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
12393
12394 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
12395
12396         * config.gcc (ia64-*-*): Set extra_headers.
12397         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
12398         * config/alpha/t-osf: Remove.
12399         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
12400
12401 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
12402
12403         * config/rs6000/t-aix43: Revert previous change.
12404
12405 2002-01-02  Jason Merrill  <jason@redhat.com>
12406
12407         * c-decl.c (c_expand_body): Call outlining_inline_function when
12408         emitting an inline function out of line.
12409
12410 2002-01-02  Richard Henderson  <rth@redhat.com>
12411
12412         * dwarf2out.c (limbo_die_node): Add created_for member.
12413         (new_die): New argument created_for.  Update all callers.
12414         (mark_limbo_die_list): New.
12415         (dwarf2out_init): Register limbo_die_list as a root.
12416         (dwarf2out_finish): Force insert limbo dies into their function
12417         context.
12418
12419 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
12420
12421         PR c++/5089
12422         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
12423
12424 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12425
12426         * config/h8300/fixunssfsi.c: Update copyright.
12427         Fix comment typos.
12428         Fix formatting.
12429         * config/h8300/h8300.c: Update copyright.
12430         Eliminate warnings.
12431
12432 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12433
12434         * config/romp/romp.c: Fix comment formatting.
12435         * config/romp/romp.h: Likewise.
12436         * config/romp/romp.md: Likewise.
12437         * config/s390/s390.c: Likewise.
12438         * config/stormy16/stormy16.c: Likewise.
12439         * config/stormy16/stormy16.h: Likewise.
12440
12441 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
12442
12443         * c-common.h (genrtl_expr_stmt_value): Declare.
12444         * c-semantics.c (genrtl_goto_stmt): Redirect to...
12445         (genrtl_goto_stmt_value): ... this new function.  Pass new
12446         argument down to expand_expr_stmt_value, taking
12447         TREE_ADDRESSABLE into account.
12448         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
12449         STMT_EXPR as addressable, i.e., one whose result we want.
12450         * expr.c (expand_expr): Don't save expression statement value
12451         of labeled_blocks or loop_exprs.
12452         * stmt.c (expand_expr_stmt): Redirect to...
12453         (expand_expr_stmt_value): ... this new function.  Use new
12454         argument to tell whether to save expression value.
12455         (expand_end_stmt_expr): Reset last_expr_type and
12456         last_expr_value if we don't have either.
12457         * tree-inline.c (declare_return_variable): Mark its use
12458         statement as addressable.
12459         * tree.h: Document new use of TREE_ADDRESSABLE.
12460         (expand_expr_stmt_value): Declare.
12461
12462 2002-01-01  Tom Rix  <trix@redhat.com>
12463
12464         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
12465         rs6000_emit_allocate_stack.
12466
12467 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
12468
12469         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
12470         ${srcdir}/ginclude/ to every entry in extra_headers.
12471         * configure: Regenerate.
12472         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
12473         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
12474         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
12475         * ginclude/proto.h: Rename to config/convex/proto.h.
12476
12477 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12478
12479         * attribs.c (handle_vector_size_attribute): Use host_integerp
12480         and tree_int_cst; remove warnings.
12481         * caller-save.c (insert_restore): Add cast to get rid of warning.
12482         (insert_save): Likewise.
12483         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
12484         * regmove.c (find_matches): Add temporary var to kill a warning.
12485
12486 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
12487
12488         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
12489         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
12490         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
12491         (vms-dwarf2eh.o): Add Makefile rule.
12492         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
12493         * config/alpha/vms-dwarf2eh.asm: New file.
12494
12495         * gcc.c (delete_if_ordinary): Delete all versions.
12496
12497 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12498
12499         * config/mmix/mmix.md: Update FIXME to not mention
12500         define_constants.
12501         (MMIX_rJ_REGNUM): New define_constants constant.
12502         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
12503         "*movdicc_real"): Adjust contraints formatting.
12504         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
12505         for branch prediction.
12506         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
12507         output template.
12508         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
12509         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
12510         number.  Delete related FIXMEs.
12511         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
12512         from number to MMIX_rJ_REGNUM.
12513         (TARGET_MASK_BRANCH_PREDICT): New.
12514         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
12515         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
12516         value.  Add -mbranch-predict and -mno-branch-predict.
12517         (TARGET_VERSION): Drop date.
12518         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
12519         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
12520         for finding out global symbols.
12521         (mmix_asm_output_labelref): Revert condition for global symbol.
12522         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
12523         (mmix_print_operand_punct_valid_p): A '+' is valid.
12524
12525 See ChangeLog.6 for earlier changes.