OSDN Git Service

f5c83cf60949a77946192e6bd084e461abe20b09
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2
3         * doc/install.texi: State GNAT version requirements.
4
5 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
6
7         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
8         of the frame pointer or arg pointer register which strict register
9         checking is not enabled.
10
11 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
12
13         * gcc.dg/altivec-8.c: New.
14
15         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
16         PRE_INC and PRE_DEC for altivec modes.
17
18 2002-05-01  Bruce Korb  <bkorb@gnu.org>
19
20         * fixinc/check.tpl(set-writable): make sure the function exists first
21         * fixinc/inclhack.def(alpha_assert): fix test_text
22         * fixinc/tests/base/assert.h: add in missing result
23
24 2002-05-01  Jeff Law  <law@redhat.com>
25
26         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
27         'T' constraint.
28
29 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
30
31         * dbxout.c (dbxout_type): Emit size information for range types,
32         as well, but only when using GDB extensions.
33
34 2002-05-01  Richard Henderson  <rth@redhat.com>
35
36         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
37         target-independent gnu binutils date test.
38
39 2002-05-01  Richard Henderson  <rth@redhat.com>
40
41         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
42         info before expunging the block.
43
44 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
45
46         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
47         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
48         -M -or -MM is in effect.
49
50 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
51
52         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
53         A29k configurations.
54         * doc/install.texi: Update to match.
55
56 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
57
58         PR bootstrap/6514
59         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
60         for duplicates. Always loop over whole list.
61
62 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
63
64         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
65
66 2002-05-01      Joel Sherrill <joel@OARcorp.com>
67
68         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
69         support routines.
70
71 2002-05-01      Joel Sherrill <joel@OARcorp.com>
72
73         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
74
75 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
76
77         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
78         (nabs_nopower): Same.
79         (floatdisf2): New pattern.
80         (absdi2): Convert to define_insn_and_split.
81         (nabsdi2): Same.
82         (trunctfsf2): Same.
83         (floatditf2): Same.
84         (floatsitf2): Same.
85         (fix_trunctfdi2): Same.
86         (fix_trunctfsi2): Same.
87
88 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
89
90         * doc/install.texi: Update Texinfo version requirement
91         documentation.
92
93 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
94
95         PR target/6512, PR target/5628
96         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
97         when memory is not aligned.
98         (movdf_insn_v9only_vis): Likewise.
99         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
100         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
101         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
102
103 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
104
105         * gcc.dg/altivec-7.c: New.
106
107         * config/rs6000/altivec.h: Cleanup.
108
109 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
110
111         * doc/invoke.texi (Option Summary): Add -mvrsave=.
112         (RS/6000 and PowerPC Options): Document -mvrsave=.
113
114         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
115         (rs6000_altivec_vrsave_string): Same.
116         (rs6000_override_options): Call rs6000_parse_vrsave_option.
117         (rs6000_parse_vrsave_option): New.
118         (rs6000_stack_info): Only generate vrsave instructions when
119         TARGET_ALTIVEC_VRSAVE.
120
121         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
122         (rs6000_altivec_vrsave_string): Define extern.
123         (rs6000_altivec_vrsave): Same.
124         (TARGET_ALTIVEC_VRSAVE): New.
125
126 2002-04-30  Richard Henderson  <rth@redhat.com>
127
128         PR opt/6516
129         * toplev.c (rest_of_compilation): Don't run cross-jump before
130         bb-reorder.
131
132 2002-04-30  Tom Rix  <trix@redhat.com>
133
134         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
135         check which_alternative.
136
137 2002-04-30  Kazu Hirata  <kazu@hxi.com>
138
139         * cpplex.c: Fix comment formatting.
140         * function.c: Likewise.
141         * integrate.c: Likewise.
142         * regrename.c: Likewise.
143         * sibcall.c: Likewise.
144         * simplify-rtx.c: Likewise.
145         * tree-inline.c: Likewise.
146
147 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
148
149         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
150         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
151         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
152         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
153         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
154         * pa/x-ada: New file.  Define ADA_CFLAGS.
155
156 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
157
158         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
159         from MMIX_LAST_REGISTER_FILE_REGNUM.
160         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
161         (struct machine_function): New member highest_saved_stack_register
162         previously static variable in mmix.c.
163         (MACHINE_DEPENDENT_REORG): Define.
164         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
165         (MMIX_OUTPUT_REGNO): New.
166         (mmix_target_asm_function_prologue): Move calculation of last used
167         saved-stack-register into...
168         (mmix_machine_dependent_reorg): New function.  Update to also handle
169         !TARGET_ABI_GNU.
170         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
171         register names, simplify somewhat by new variable regno.
172         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
173         register.
174         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
175         emitting register names.
176         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
177         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
178         Remove fixed FIXME.
179         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
180         Declare.
181
182         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
183
184 2002-04-30  Richard Henderson  <rth@redhat.com>
185
186         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
187         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
188         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
189         emit_tfmode_cvt): New.
190         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
191         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
192         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
193         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
194         * config/sparc/sparc-protos.h: Update.
195
196 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
197
198         * install.texi (Final install): Add to the list of info to include
199         in a report of a successful bootstrap, and add link to 3.1 list.
200
201 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
202
203         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
204         (mode): Add vector modes
205         (i387): Kill attribute.
206         (unit): New attribute.
207         (length_immediate): Grok new types.
208         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
209         (modrm): Use "unit".
210         (memory): Handle MMX/SSE properly.
211         (scheduling descriptions): Kill uses of fop1.
212         (sse, mmx, fp patterns): Set type and mode properly.
213
214 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
215
216         * pa.c (override_options): Default to PA8000 scheduling.
217         * doc/invoke.texi (HP-PA options): Mention newly added 7300
218         scheduling parameter.
219
220         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
221         handling of double precision multiplies.
222
223         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
224         fpdiv and fpsqrt instructions.
225         (7200 & 7300 scheduling): Fix typo in handling of
226         store-load and store-store penalties.
227
228 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
229
230         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
231         mips.  Add two missing commas.
232
233 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
234
235         * doc/contrib.texi (Contributors): Update Paolo Carlini's
236         and Benjamin Kosnik's entries.
237
238 2002-04-29  David S. Miller  <davem@redhat.com>
239
240         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
241         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
242         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
243         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
244
245 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
246
247         * combine.c (find_split_point): Use gen_int_mode.
248
249 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
250
251         Merging code from dfa-branch:
252
253         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
254
255         * genautomata.c (output_reserv_sets): Fix typo.
256
257         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
258
259         * genautomata.c (output_reserv_sets): Remove
260         next_cycle_output_flag.
261
262         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
263
264         * sched-rgn.c (init_ready_list): Make the DFA code handle
265         USE/CLOBBER insns in the same way as the traditional
266         scheduler.
267         (new_ready): Similarly..
268
269         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
270
271         * haifa-sched.c (schedule_block): Change the DFA state only after
272         issuing insn.
273
274         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
275
276         * pa.c (hppa_use_dfa_pipeline_interface): New function.
277         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
278         (override_options): Add PA7300 scheduling support.
279         (pa_adjust_cost): Update various comments.  Properly
280         handle anti and output dependencies when using the
281         DFA scheduler.
282         (pa_issue_rate): Add PA7300 scheduling support.
283         (pa_can_combine_p): Call extract_insn before calling
284         constrain_operands (taken from mainline tree).
285         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
286         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
287         descriptions using DFA descriptions.  Add PA7300
288         scheduling support.
289
290         2002-03-30  David S. Miller  <davem@redhat.com>
291
292         Add UltraSPARC-III DFA scheduling support.
293         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
294         Update FP conditional move on register insn patterns to use it, as
295         appropriate.
296         (define_attr cpu): Add ultrasparc3.
297         (define_attr us3load_type): New, update integer load patterns to
298         set it, as appropriate.
299         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
300         (rest): Add UltraSPARC3 scheduling description.
301         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
302         (PROCESSOR_ULTRASPARC3): New.
303         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
304         ({ASM,CPP}_CPU_SPEC): Likewise.
305         (REGISTER_MOVE_COST): Likewise.
306         (RTX_COSTS): Likewise.
307         * config/sparc/sparc.c (sparc_override_options,
308         sparc_initialize_trampoline, sparc64_initialize_trampoline,
309         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
310         sparc_issue_rate): Likewise.
311         * config/sparc/sol2.h: Likewise.
312         * config/sparc/sol2-sld-64.h: Likewise.
313         * config/sparc/linux64.h: Likewise.
314
315         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
316
317         * doc/md.texi: Add comments about usage the latency time for the
318         different dependencies and about case when two or more conditions
319         in different define_insn_reservations returns TRUE for an insn.
320
321         * doc/md.texi: Add reference for automaton based pipeline
322         description.
323
324         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
325
326         * doc/passes.texi: Add missed information about genattrtab.
327
328         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
329
330         * genautomata.c (output_automata_list_transition_code): Check
331         automata_list on NULL.
332
333         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
334
335         * genautomata.c (output_insn_code_cases,
336         output_automata_list_min_issue_delay_code,
337         output_automata_list_transition_code,
338         output_automata_list_state_alts_code): Comment the functions.
339
340         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
341
342         * genautomata.c (automata_list_el_t): New typedef.
343         (get_free_automata_list_el,free_automata_list_el,
344         free_automata_list, automata_list_hash, automata_list_eq_p,
345         initiate_automata_lists, automata_list_start, automata_list_add,
346         automata_list_finish, finish_automata_lists,
347         output_insn_code_cases, output_automata_list_min_issue_delay_code,
348         output_automata_list_transition_code,
349         output_automata_list_state_alts_code, add_automaton_state,
350         form_important_insn_automata_lists): New functions and prototypes.
351         (insn_reserv_decl): Add members important_automata_list and
352         processed_p.
353         (ainsn): Add members important_p.
354         (automata_list_el): New structure.
355         (first_free_automata_list_el, current_automata_list,
356         automata_list_table): New global variables.
357         (create_ainsns): Initiate member important_p.
358         (output_internal_min_issue_delay_func): Generate the switch and
359         call output_insn_code_cases.
360         (output_internal_trans_func, output_internal_state_alts_func):
361         Ditto.
362         (generate): Call initiate_automata_lists.
363         (automaton_states): New global variable.
364         (expand_automata): Call form_important_insn_automata_lists.
365         (write_automata): Call finish_automata_lists.
366
367         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
368
369         * genautomata.c (add_excls, add_presence_absence): Check that
370         cpu units in the sets belong the same automaton.
371
372         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
373         about that cpu units in the sets belong the same automaton.
374
375         * doc/md.texi: Ditto.
376
377         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
378                     Nitin Gupta  <niting@noida.hcltech.com>
379
380         * config/sh/sh.c (sh_use_dfa_interface): New function.
381
382         (sh_issue_rate): New Function.
383         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
384         TARGET_SCHED_ISSUE_RATE: define.
385
386         * config/sh/sh.md: Add DFA based pipeline description for SH4.
387
388         (define_attr insn_class): New attribute used for DFA
389          scheduling.
390         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
391         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
392          cmpeqdi_t): Likewise.
393
394         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
395          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
396          ex_group.
397         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
398
399         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
400
401         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
402         break.
403
404         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
405
406         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
407         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
408         necessary.
409         (output_dfa_start_func): Initiate new variable insn_codes_length,
410         (write_automata): Output definition of the new variable.
411
412         2001-10-02  David S. Miller  <davem@redhat.com>
413
414         * haifa-sched.c (advance_one_cycle): New function.
415         (schedule_block): Use it.
416         (queue_to_ready): Use it, and also make sure to advance the DFA
417         state on all stall cycles, not just those where insn_queue links
418         are found.
419
420         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
421
422         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
423         non-zero if the highest-priority instruction could be scheduled.
424         (choose_ready): Remove last argument from max_issue call.
425
426         2001-09-28  David S. Miller  <davem@redhat.com>
427
428         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
429         ultrasparc and 3 for other multi-issue sparcs.
430
431         2001-09-27  David S. Miller  <davem@redhat.com>
432
433         * config/sparc/sparc.md (cycle_display): New pattern.
434         * config/sparc/sparc.c (sparc_cycle_display): New.
435         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
436
437         2001-09-25  David S. Miller  <davem@redhat.com>
438
439         Convert all of Sparc scheduling to DFA
440         * config/sparc/sparc.md: Kill all define_function_unit
441         directives and replace with DFA equivalent.
442         * config/sparc/sparc.c (ultrasparc_adjust_cost,
443         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
444         ultra_fpmode_conflict_exists, ultra_find_type,
445         ultra_build_types_avail, ultra_flush_pipeline,
446         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
447         ultrasparc_variable_issue, ultrasparc_sched_init,
448         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
449         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
450         ultra_cur_hist, ultra_cycles_elapsed): Kill.
451         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
452         ultrasparc_store_bypass_p): New.
453         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
454         Declare.
455
456         2001-09-24  David S. Miller  <davem@redhat.com>
457
458         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
459         ready->vec[foo] not ready[foo].
460
461         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
462
463         * doc/md.texi: Correct examples for define_insn_reservations
464         `mult' and `div'.
465
466         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
467
468         * genautomata.c (create_automata): Print message about creation of
469         each automaton.
470         (generate): Remove printing meease about creation of
471         automata.
472
473         2001-09-05  David S. Miller  <davem@redhat.com>
474
475         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
476         * config/sparc/linux64.h: Likewise.
477
478         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
479
480         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
481         schedule_block, sched_init, sched_finish): Add missed calls of
482         use_dfa_pipeline_interface.
483
484         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
485         Ditto.
486
487         * sched-vis.c (get_visual_tbl_length): Ditto.
488
489         2001-08-27  Richard Henderson  <rth@redhat.com>
490
491         * genattr.c (main): Emit state_t even when not doing scheduling.
492
493         2001-08-27  Richard Henderson  <rth@redhat.com>
494
495         * genautomata.c (expand_automata): Always create a description.
496
497         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
498
499         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
500         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
501         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
502         RTL constructions.
503
504         * genattr.c (main): New variable num_insn_reservations.  Increase
505         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
506         pipeline hazard recognizer interface.
507
508         * genattrtab.h: New file.
509
510         * genattrtab.c: Include genattrtab.h.
511         (attr_printf, check_attr_test, make_internal_attr,
512         make_numeric_value): Move protypes into genattrtab.h.  Define them
513         as external.
514         (num_dfa_decls): New global variable.
515         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
516         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
517         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
518         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
519
520         * genautomata.c: New file.
521
522         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
523
524         * sched-int.h: (curr_state): Add the external definition for
525         automaton pipeline interface.
526         (haifa_insn_data): Add comments for members blockage and units.
527
528         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
529         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
530         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
531         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
532         TARGET_SCHED_DFA_POST_CYCLE_INSN,
533         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
534         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
535         macros.
536         (TARGET_SCHED): Use the new macros.
537
538         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
539         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
540         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
541         dfa_bubble): New members in gcc_target.sched.
542
543         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
544         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
545         (insn_queue): Redefine it as pointer to array.
546         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
547         INSN_QUEUE_SIZE.
548         (max_insn_queue_index_macro_value): New variable.
549         (curr_state, dfa_state_size, ready_try): New varaibles for
550         automaton interface.
551         (ready_element, ready_remove, max_issue): New function prototypes
552         for automaton interface.
553         (choose_ready): New function prototype.
554         (insn_unit, blockage_range): Add comments.
555         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
556         FUNCTION_UNITS_SIZE == 0.
557         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
558         actual_hazard, potential_hazard): Add comments.
559         (insn_cost): Use cost -1 as undefined value.  Remove
560         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
561         pipeline interface.
562         (ready_element, ready_remove): New functions for automaton
563         interface.
564         (schedule_insn): Add new code for automaton pipeline interface.
565         (queue_to_ready): Add new code for automaton pipeline interface.
566         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
567         (debug_ready_list): Print newline when the queue is empty.
568         (max_issue): New function for automaton pipeline interface.
569         (choose_ready): New function.
570         (schedule_block): Add new code for automaton pipeline interface.
571         Print ready list before scheduling each insn.
572         (sched_init): Add new code for automaton pipeline interface.
573         Initiate insn cost by -1.
574         (sched_finish): Free the current automaton state and finalize
575         automaton pipeline interface.
576
577         * sched-rgn.c: Include target.h.
578         (init_ready_list, new_ready, debug_dependencies): Add new code for
579         automaton pipeline interface.
580
581         * sched-vis.c: Include target.h.
582         (get_visual_tbl_length): Add code for automaton interface.
583         (target_units, print_block_visualization):  Add comments.
584
585         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
586         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
587         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
588         (getruntime.o, genautomata.o): New entries.
589         (genattrtab.o): Add new dependency file genattrtab.h.
590         (genattrtab): Add new dependencies.  Link it with `libm.a'.
591         (getruntime.o, hashtab.o): New entries for canadian cross.
592
593         * doc/md.texi: Description of automaton based model.
594
595         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
596         Add comments.
597         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
598         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
599         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
600         TARGET_SCHED_DFA_POST_CYCLE_INSN,
601         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
602         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
603         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
604         hook descriptions.
605         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
606         MAX_DFA_ISSUE_RATE): New macro descriptions.
607
608         * doc/contrib.texi: Add dfa based scheduler contribution.
609
610         * doc/gcc.texi: Add more information about genattrtab.
611
612 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
613
614         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
615         adjust_address_nv call.
616
617 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
618
619         * doc/install.texi (Testing): Provide additional information, and
620         a stronger encouragement, for running the testsuites.
621
622 2002-04-29  DJ Delorie  <dj@redhat.com>
623
624         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
625         given in upper case.
626
627 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
628
629         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
630         Solaris 2 <widec.h> if missing.
631         * fixinc/fixincl.x: Regenerate.
632         * fixinc/tests/base/widec.h: New file.
633
634 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
635
636         * toplev.c (f_options): Add "profile" switch so that
637         -fno-profile can be used to disable -p.
638
639 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
640
641         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
642         UV2DImode.
643         * tree.c (build_common_tree_nodes_2): Likewise.
644         * tree.h (enum tree_index): Likewise.
645         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
646
647         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
648         entries.
649         (init_mmx_sse_builtins): Initialize SSE2 builtins.
650         (ix86_expand_builtin): Add support for SSE2 builtins.
651         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
652         (VALID_SSE_REG_MODE): Use it.
653         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
654         (enum ix86_builtins): Add SSE2 builtins.
655         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
656         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
657         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
658         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
659         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
660         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
661         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
662         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
663         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
664         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
665         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
666         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
667         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
668         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
669         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
670         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
671         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
672         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
673         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
674         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
675         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
676         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
677         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
678         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
679         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
680         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
681         lfence_insn): New patterns.
682         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
683         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
684
685 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
686
687         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
688
689 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
690
691         * doc/contrib.texi (Contributors): Add Paolo Carlini and
692         Janis Johnson.
693         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
694         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
695         and CPU instead of cpu.
696
697 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
698
699         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
700         variables.
701         (lang_independent_options): Add -fif-conversion, -fif-conversion2
702         (rest_of_compilation): Do if conversion only when asked for.
703         (parse_options_and_default_flags): Set new variables to 1 for -O1
704         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
705
706 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
707
708         * i386.c (dbx64_register_map): Fix typo.
709
710 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
711
712         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
713         real_one_half, real_bb_freq_max): New static variables.
714         (debug_profile_bbauxs): Kill.
715         (process_note_predictions): Kill unused variable.
716         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
717         volatile double.
718         (propagate_freq): Use REAL_ARITHMETICS.
719         (estimate_bb_frequencies): Likevise; init new static variables.
720         * Makefile.in (predict.o): Add dependency on real.h
721
722 2002-04-28  David S. Miller  <davem@redhat.com>
723
724         PR target/6500
725         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
726         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
727         several {reads,writes} instead.
728         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
729         Define.
730
731 2002-04-27  David S. Miller  <davem@redhat.com>
732
733         PR target/6494
734         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
735         of the stack bias.
736
737         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
738         including signal.h and sys/ucontext.h, not needed.
739
740 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
741
742         * varasm.c (output_constant_def): Correct test for not calling
743         ENCODE_SECTION_INFO for INTEGER_CST.
744
745 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
746
747         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
748         keep most cases as function eval_token.
749         (eval_token): New function.
750         (_cpp_parse_expr): Read token here for improved diagnostics.
751         Don't use op_as_text.  Detect bad ':' here.
752         (reduce): Don't detect bad ':' here.
753         (op_as_text): Remove.
754         * cpphash.h (_cpp_test_assertion): Change prototype.
755         * cpplib.c (_cpp_test_assertion): Change prototype.
756
757 2002-04-28  Richard Henderson  <rth@redhat.com>
758
759         PR c/5154
760         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
761         (ggc_mark_rtx_children): New.
762
763 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
764
765         PR target/6496
766         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
767         after call peepholes for UltraSPARC.
768         (call + jump 64-bit peepholes): Remove.
769
770 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
771
772         PR c/6497
773         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
774         result as temporary value.
775
776 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
777
778         PR c++/6396
779         * toplev.c (rest_of_compilation): Only run regrename and copy
780         propagation if optimizing.
781
782 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
783
784         PR optimization/6475
785         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
786         register of REGNO_DECL (i).
787         * Makefile.in (reload1.o): Add $(TREE_H).
788
789 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
790
791         * cppexp.c (lex): Update to use state.skip_eval.
792         (struct op): Remove prio and flags members.
793         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
794         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
795         (LEFT_ASSOC): New macro.
796         (optab): New table of operator priorities and flags.
797         (SHIFT): Update.
798         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
799         malloc-ed parser stack.
800         (reduce): New; reduce the operator stack.
801         (_cpp_expand_op_stack): Expand the operator stack as necessary.
802         * cpphash.h (struct op): Predeclare.
803         (struct cpp_reader): New members op_stack, op_limit.
804         (struct lexer_state): New member skip_eval.
805         (_cpp_parse_expr): Update.
806         (_cpp_expand_op_stack): New.
807         * cpplib.c (do_if): Update.
808         * cppinit.c (cpp_create_reader): Create op stack.
809         (cpp_destroy): And destroy it.
810         * cpplib.h (CPP_LAST_CPP_OP): Correct.
811         (TTYPE_TABLE): Correct.
812
813 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
814
815         PR c/6343
816         * c-decl.c (duplicate_decls): Call merge_weak.
817         * c-pragma.c (apply_pragma_weak): Warn about misuse.
818         * output.h (merge_weak): Prototype merge_weak.
819         * varasm.c (merge_weak): New function.
820         (declare_weak): Make sure we don't give an error on VAR_DECLs.
821         Mark RTL with SYMBOL_REF_WEAK.
822
823 2002-04-27  Kurt Garloff <garloff@suse.de>
824
825         * tree-inline.c (inlinable_function_p): Improve heuristics
826         by using a smoother function to cut down allowable inlinable size.
827         * param.def: Add parameters max-inline-insns-single,
828         max-inline-slope, min-inline-insns that determine the exact
829         shape of the above function.
830         * param.h: Likewise.
831
832 2002-04-26  Richard Henderson  <rth@redhat.com>
833
834         * c-parse.in (malloced_yyss, malloced_yyvs): New.
835         (yyoverflow): Re-add.  Set them.
836         (free_parser_stacks): New.
837         * c-common.h: Declare it.
838         * c-lex.c (c_common_parse_file): Call it.
839
840 2002-04-26  Richard Henderson  <rth@redhat.com>
841
842         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
843         for fallthru search.
844
845 2002-04-26  Eric Christopher  <echristo@redhat.com>
846
847         PR optimization/3700
848         * config/mips/mips.c (mips_issue_rate): Define.  New function.
849         (TARGET_SCHED_ISSUE_RATE): Use.
850
851 2002-04-25  David S. Miller  <davem@redhat.com>
852
853         PR target/6422
854         * reorg.c (optimize_skip): Do not allow exception causing
855         instructions to be considered for delay slots.
856         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
857         (relax_delay_slots): Do not try to consider exception causing
858         instructions as redundant.
859
860 2002-04-26  Richard Henderson  <rth@redhat.com>
861
862         PR c/5225
863         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
864
865 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
866
867         PR bootstrap/6445
868         * config/i386/i386.md (untyped_call): Return the value in a float
869         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
870         TARGET_80387.
871
872 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
873
874         * tree.c (tree_int_cst_lt): Compare constants whose types differ
875         in unsigned-ness correctly.
876
877 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
878
879         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
880         portable runtime model.
881
882 2002-04-26  Richard Henderson  <rth@redhat.com>
883
884         * c-parse.in (yyoverflow): Revert.
885
886 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
887             Richard Henderson  <rth@redhat.com>
888
889         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
890         result as temporary value.
891
892 2002-04-26  Richard Henderson  <rth@redhat.com>
893
894         PR c/3581
895         * c-common.c (fix_string_type): Split out of ...
896         (combine_strings): ... here.  Take a varray, not a tree list.
897         (c_expand_builtin_printf): Use fix_string_type.
898         * c-common.h: Update decls.
899         * c-parse.in (string): Remove.  Update all uses to use STRING
900         instead, and not call combine_strings.
901         (yylexstring): New.
902         (_yylex): Use it.
903         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
904         (build_asm_stmt): Likewise.
905         * objc/objc-act.c (my_build_string): Use fix_string_type.
906         (build_objc_string_object): Build varray for combine_strings.
907
908 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
909
910         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
911         x86-64.
912
913 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
914
915         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
916         (HAVE_NO_R_OPERAND): Remove.
917         (HAVE_VALUE): Remove.
918         (op_to_prio): Update.
919         (UNARY): Don't alter flags.
920         (_cpp_parse_expr): want_value used to indicate whether
921         a number or unary operator is expected next.  Distinguish
922         unary and binary +/-.
923         (op_as_text): Update for unary operators.
924
925 2002-04-25  Richard Henderson  <rth@redhat.com>
926
927         PR c/2161
928         * c-parse.in (yyoverflow): New.
929
930 2002-04-25  Richard Henderson  <rth@redhat.com>
931
932         PR c/2098
933         * c-common.c (shorten_compare): Simplfy conditions leading to
934         the generation of a warning.
935
936 2002-04-25  Richard Henderson  <rth@redhat.com>
937
938         PR c/2035
939         * expmed.c (extract_bit_field): Fall through to generic code rather
940         than aborting on subreg special case.
941
942 2002-04-25  David S. Miller  <davem@redhat.com>
943
944         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
945         for DECL being NULL.
946
947 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
948
949         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
950
951 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
952
953         * c-decl.c (grokdeclarator): Remove outdated ??? note
954         on invalid declaration of flexible array members.
955
956 2002-04-25  Richard Henderson  <rth@redhat.com>
957
958         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
959
960 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
961
962         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
963         needed by the compiler, even if they are used as global regs.
964
965 2002-04-25  Matt Hiller  <hiller@redhat.com>
966
967         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
968         functions.
969         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
970         of the corresponding functions.
971         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
972         New prototypes.
973
974 2002-04-25  Matt Hiller  <hiller@redhat.com>
975
976         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
977
978         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
979         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
980         registers, adjust comment accordingly.
981         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
982         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
983         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
984         for coprocessor registers.
985         (ADDITIONAL_REGISTER_NAMES): Include
986         ALL_COP_ADDITIONAL_REGISTER_NAMES.
987
988         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
989         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
990         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
991         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
992         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
993
994         (mips_char_to_class): Adjust comment to include coprocessor
995         constraint letters.
996
997         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
998         New functions.
999         (mips_reg_names, mips_regno_to_class): Include coprocessor
1000         information.
1001         (mips_sw_reg_names): Ditto, make non-static.
1002         (mips_move_1word): Handle moves to and from coprocessor registers.
1003         (mips_move_2words): Handle moves to and from coprocessor
1004         registers.
1005         (mips_class_max_nregs, mips_register_move_cost): Handle
1006         coprocessor register classes.
1007         (override_options): Initialize mips_char_to_class and
1008         mips_hard_regno_mode_ok properly for coprocessor registers.
1009
1010         * config/mips/mips.md (movdi_internal, movdi_internal2,
1011         movsi_internal1, movsi_internal2): Add constraint-sets for
1012         coprocessor registers.
1013         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
1014         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
1015         isn't mips.
1016         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
1017         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
1018         isn't mips.
1019         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
1020         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
1021         isn't mips.
1022         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
1023         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
1024         isn't mips.
1025
1026         * doc/tm.texi: Document feature.
1027
1028 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1029
1030         * integrate.c (function_attribute_inlinable_p): Simplify.
1031         Check the table pointer is not NULL.
1032
1033 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
1034
1035         * doc/c-tree.texi: Fix typo in introduction.
1036
1037 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1038
1039         * c-common.h (c_common_parse_file): Update.
1040         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1041         * c-lex.c (YYDEBUG): Get from c-lex.h.
1042         (c_common_parse_file): Update.
1043         * c-lex.h (YYDEBUG, yydebug): New.
1044         * c-parse.in (YYDEBUG): Get from c-lex.h.
1045         (c_set_yydebug): Remove.
1046         * c-tree.h (c_set_yydebug): Remove.
1047         * langhooks-def.h (lhd_do_nothing_i): New.
1048         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
1049         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
1050         * langhooks.c  (lhd_do_nothing_i): New.
1051         (lhd_set_yydebug): Remove.
1052         * langhooks.h (struct lang_hooks): Update.
1053         * toplev.c (set_yydebug): New.
1054         (compile_file): Update call to parse_file hook.
1055         (decode_d_option): Update.
1056 objc:
1057         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1058
1059 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
1060
1061         * loop.c (load_mems): Don't change the interface of called functions.
1062
1063         * calls.c (expand_call): Take current_function_pretend_args_size
1064         into account when setting argblock for sibcalls.
1065
1066 2002-04-24  Matt Hiller  <hiller@redhat.com>
1067
1068         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
1069         * c-lex.c: Ditto.
1070
1071         * cpplex.c (skip_line_comment): Process comment one multibyte
1072         character at a time rather than one char at a time, if
1073         appropriate.
1074         (parse_string): Process string one multibyte character at a time
1075         rather than one char at a time, if appropriate.
1076         * c-lex.c (lex_string): Lex and copy multibyte strings
1077         appropriately.
1078         * cpplib.h (cppchar_t): Change to unsigned.
1079
1080 2002-04-24  Richard Henderson  <rth@redhat.com>
1081
1082         PR c/3467
1083         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
1084         for c99.
1085
1086 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
1087
1088         * sh.c (sh_va_arg): If argument was passed by reference,
1089         dereference the pointer.
1090
1091         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1092
1093         * sh.md (divsi3_i4_media): Use match_operand for input values
1094         rather than hard registers.
1095         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1096         unnecessarily through hard registers.  Keep copies of pseudo
1097         registers outside of the libcall sequence.
1098
1099         * sh.md (casesi_shift_media): Add modes.
1100
1101         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
1102         values in memory.
1103
1104 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1105
1106         * attribs.c (c_common_attribute_table): Move table and handlers
1107         to c-common.c.
1108         (format_attribute_table, lang_attribute_table,
1109         lang_attribute_common): Remove.
1110         (init_attributes): Replace NULL pointers with pointers to the
1111         empty table.
1112         (handle_packed_attribute, handle_nocommon_attribute,
1113         handle_common_attribute, handle_noreturn_attribute,
1114         handle_noinline_attribute, handle_always_inline_attribute,
1115         handle_used_attribute, handle_unused_attribute,
1116         handle_const_attribute, handle_transparent_union_attribute,
1117         handle_constructor_attribute, handle_destructor_attribute,
1118         handle_mode_attribute, handle_section_attribute,
1119         handle_aligned_attribute, handle_weak_attribute,
1120         handle_alias_attribute, handle_visibility_attribute,
1121         handle_no_instrument_function_attribute, handle_malloc_attribute,
1122         handle_no_limit_stack_attribute, handle_pure_attribute,
1123         handle_deprecated_attribute, handle_vector_size_attribute,
1124         vector_size_helper): Move to c-common.c.
1125         * c-common.c (c_common_attribute_table,
1126         handle_packed_attribute, handle_nocommon_attribute,
1127         handle_common_attribute, handle_noreturn_attribute,
1128         handle_noinline_attribute, handle_always_inline_attribute,
1129         handle_used_attribute, handle_unused_attribute,
1130         handle_const_attribute, handle_transparent_union_attribute,
1131         handle_constructor_attribute, handle_destructor_attribute,
1132         handle_mode_attribute, handle_section_attribute,
1133         handle_aligned_attribute, handle_weak_attribute,
1134         handle_alias_attribute, handle_visibility_attribute,
1135         handle_no_instrument_function_attribute, handle_malloc_attribute,
1136         handle_no_limit_stack_attribute, handle_pure_attribute,
1137         handle_deprecated_attribute, handle_vector_size_attribute,
1138         vector_size_helper): Move from attribs.c.
1139         * c-common.h (c_common_attribute_table,
1140         c_common_format_attribute_table): New.
1141         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1142         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1143         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1144         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
1145         (LANG_HOOKS_INITIALIZER): Update.
1146         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
1147         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
1148         * target.h: Update comment.
1149         * tree.c (default_target_attribute_table): Remove.
1150         * tree.h (default_target_attribute_table, format_attribute_table,
1151         lang_attribute_table, lang_attribute_common): Remove.
1152 objc:
1153         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1154         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1155
1156 2002-04-24  Jason Merrill  <jason@redhat.com>
1157
1158         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
1159         * dwarf2out.c (dwarf_attr_name): Support it.
1160         (gen_array_type_die): Emit it.
1161         (lookup_type_die): No special handling for VECTOR_TYPE.
1162         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
1163
1164 2002-04-24  Richard Henderson  <rth@redhat.com>
1165
1166         * config/mips/mips.md (movdi_usd): Renumber.
1167
1168 2002-04-24  David S. Miller  <davem@redhat.com>
1169
1170         PR target/6420
1171         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
1172         32-bit Sparc and current_function_returns_struct is true.
1173
1174 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1175
1176         * loop.c (canonicalize_condition): Use gen_int_mode.
1177
1178 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
1179
1180         * config/rs6000/altivec.h: Cleanup file.  Add non individual
1181         variants.
1182         (vec_vaddubm): New.
1183         (vec_vadduhm): New.
1184         (vec_vadduwm): New.
1185         (vec_vaddfp): New.
1186         (vec_vaddcuw): New.
1187         (vec_vaddubs): New.
1188         (vec_vaddsbs): New.
1189         (vec_vadduhs): New.
1190         (vec_vadduws): New.
1191         (vec_vaddsws): New.
1192         (vec_vand): New.
1193         (vec_vandc): New.
1194         (vec_vavgub): New.
1195         (vec_vavgsb): New.
1196         (vec_vavguh): New.
1197         (vec_vavgsh): New.
1198         (vec_vavguw): New.
1199         (vec_vavgsw): New.
1200         (vec_vrfip): New.
1201         (vec_vcmpbfp): New.
1202         (vec_vcmpequb): New.
1203         (vec_vcmpequh): New.
1204         (vec_vcmpequw): New.
1205         (vec_vcmpeqfp): New.
1206         (vec_vcmpgefp): New.
1207         (vec_vcmpgtub): New.
1208         (vec_vcmpgtsb): New.
1209         (vec_vcmpgtuh): New.
1210         (vec_vcmpgtsh): New.
1211         (vec_vcmpgtuw): New.
1212         (vec_vcmpgtsw): New.
1213         (vec_vcmpgtfp): New.
1214         (vec_vcmpgefp): New.
1215         (vec_vcfux): New.
1216         (vec_vcfsx): New.
1217         (vec_vctsxs): New.
1218         (vec_vctuxs): New.
1219         (vec_vexptefp): New.
1220         (vec_vrfim): New.
1221         (vec_lvx): New.
1222         (vec_lvebx): New.
1223         (vec_lvehx): New.
1224         (vec_lde): Add vector float variant.
1225         (vec_lvewx): New.
1226         (vec_lvxl): New.
1227         (vec_vlogefp): New.
1228         (vec_vmaddfp): New.
1229         (vec_vmhaddshs): New.
1230         (vec_vmaxub): New.
1231         (vec_vmaxsb): New.
1232         (vec_vmaxuh): New.
1233         (vec_vmaxsh): New.
1234         (vec_vmaxuw): New.
1235         (vec_vmaxsw): New.
1236         (vec_vmaxsw): New.
1237         (vec_vmaxfp): New.
1238         (vec_vmrghb): New.
1239         (vec_vmrghh): New.
1240         (vec_vmrghw): New.
1241         (vec_vmrglb): New.
1242         (vec_vmrglh): New.
1243         (vec_vmrglw): New.
1244         (vec_vminub): New.
1245         (vec_vminsb): New.
1246         (vec_vminuh): New.
1247         (vec_vminsh): New.
1248         (vec_vminuw): New.
1249         (vec_vminsw): New.
1250         (vec_vminfp): New.
1251         (vec_vmladduhm): New.
1252         (vec_vmhraddshs): New.
1253         (vec_msumubm): New.
1254         (vec_vmsummbm): New.
1255         (vec_vmsumuhm): New.
1256         (vec_vmsumshm): New.
1257         (vec_vmsumuhs): New.
1258         (vec_vmsumshs): New.
1259         (vec_vmuleub): New.
1260         (vec_vmulesb): New.
1261         (vec_vmuleuh): New.
1262         (vec_vmulesh): New.
1263         (vec_vmuloub): New.
1264         (vec_mulosb): New.
1265         (vec_vmulouh): New.
1266         (vec_vmulosh): New.
1267         (vec_vnmsubfp): New.
1268         (vec_vnor): New.
1269         (vec_vor): New.
1270         (vec_vpkuhum): New.
1271         (vec_vpkuwum): New.
1272         (vec_vpkpx): New.
1273         (vec_vpkuhus): New.
1274         (vec_vpkshss): New.
1275         (vec_vpkuwus): New.
1276         (vec_vpkswss): New.
1277         (vec_vpkshus): New.
1278         (vec_vpkswus): New.
1279         (vec_vperm): New.
1280         (vec_vrefp): New.
1281         (vec_vrlb): New.
1282         (vec_vrlh): New.
1283         (vec_vrlw): New.
1284         (vec_vrfin): New.
1285         (vec_vrsqrtefp): New.
1286         (vec_vsel): New.
1287         (vec_vslb): New.
1288         (vec_vslh): New.
1289         (vec_vslw): New.
1290         (vec_vsldoi): New.
1291         (vec_vsl): New.
1292         (vec_vslo): New.
1293         (vec_vspltb): New.
1294         (vec_vsplth): New.
1295         (vec_vspltw): New.
1296         (vec_vspltisb): New.
1297         (vec_vspltish): New.
1298         (vec_vspltisw): New.
1299         (vec_vsrb): New.
1300         (vec_vsrh): New.
1301         (vec_vsrw): New.
1302         (vec_vsrab): New.
1303         (vec_vsrah): New.
1304         (vec_vsraw): New.
1305         (vec_vsr): New.
1306         (vec_vsro): New.
1307         (vec_stvx): New.
1308         (vec_stvebx): New.
1309         (vec_stvehx): New.
1310         (vec_stvewx): New.
1311         (vec_stvxl): New.
1312         (vec_vsububm): New.
1313         (vec_vsubuhm): New.
1314         (vec_vsubuwm): New.
1315         (vec_vsubfp): New.
1316         (vec_vsubcuw): New.
1317         (vec_vsububs): New.
1318         (vec_vsubsbs): New.
1319         (vec_vsubuhs): New.
1320         (vec_vsubshs): New.
1321         (vec_vsubuws): New.
1322         (vec_vsubsws): New.
1323         (vec_vsum4ubs): New.
1324         (vec_vsum4sbs): New.
1325         (vec_vsum4shs): New.
1326         (vec_vsum2sws): New.
1327         (vec_vsumsws): New.
1328         (vec_vrfiz): New.
1329         (vec_vupkhsb): New.
1330         (vec_vupkhpx): New.
1331         (vec_vupkhsh): New.
1332         (vec_vupklsb): New.
1333         (vec_vupklpx): New.
1334         (vec_vupklsh): New.
1335         (vec_vxor): New.
1336
1337 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
1338
1339         PR c/5430
1340         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
1341         added literals from substracted literals.
1342         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
1343         (fold) [associate]: Preserve MINUS_EXPR if needed.
1344
1345 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
1346
1347         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
1348         are obsoleted.
1349
1350 2002-04-23  Tom Tromey  <tromey@redhat.com>
1351
1352         * gcc.c: Added --resource.  For PR java/6314.
1353
1354 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1355
1356         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
1357         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
1358         these libraries.
1359
1360 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1361
1362         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
1363
1364 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1365
1366         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
1367         workaround.
1368         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
1369         (ix86_expand_clrstr): Fix typo.
1370         * loop.c (gen_load_of_final_value): New.
1371         (loop_givs_rescan, strength_reduce, check_dbra_loop):
1372         Use it.
1373
1374 2002-04-23  Roger Sayle  <roger@eyesopen.com>
1375
1376         * builtins.c (builtin_memset_gen_str): New function.
1377         (expand_builtin_memset): Optimize the case of constant length, but
1378         unknown value.
1379
1380 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
1381
1382         * config/rs6000/altivec.h (vec_step): Remove extraneous
1383         parentheses.
1384         (vec_ctu): Cast return.
1385
1386 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
1387
1388         PR target/6413
1389         * function.h: (struct function): Add profile_label_no field.
1390         (current_function_profile_label_no): Define.
1391         * function.c: (profile_label_no): New static var.
1392         (expand_function_start): Increment it, and copy to
1393         current_function_profile_label_no.
1394         * output.h (profile_label_no): Delete.
1395         * final.c (profile_label_no): Delete.
1396         (profile_function): Use current_function_profile_label_no.
1397         (final_end_function): Don't increment profile_label_no here.
1398         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
1399         profile_label_no with current_function_profile_label_no.
1400         * config/pa/pa.c (current_function_number): Delete.
1401         (pa_output_function_prologue): Don't output profile label here.
1402         (hppa_profile_hook): Use label_no param rather than
1403         current_function_number.
1404         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
1405         * config/pa/pa.h: .. here.
1406         (FUNCTION_PROFILER): Output profile label here.
1407
1408 2002-04-22  Eric Christopher  <echristo@redhat.com>
1409
1410         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
1411         patch of 2002-04-09 due to binutils issues.
1412         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
1413
1414 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1415
1416         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
1417         constraint to 'o' for m=r and r=m alternatives.
1418         ("*movv8hi_internal1"): Same.
1419         ("*movv16qi_internal1"): Same.
1420         ("*movv4sf_internal1"): Same.
1421
1422 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
1423
1424         * rtl.h (RTX_FLAG): New macro.
1425         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
1426         * final.c (alter_subreg): Use macro to access rtx flag.
1427         * integrate.c (copy_rtx_and_substitute): Use new access macro.
1428         * print-rtl.c (print_rtx): Use new access macro.
1429
1430         * cse.c (insert): Check rtx code before accessing flag.
1431
1432         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
1433         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
1434         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
1435         convert_const_symbol_ref, make_canonical, make_alternative_compare,
1436         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
1437         simplify_test_exp, optimize_attrs, simplify_by_exploding,
1438         find_and_mark_used_attributes, unmark_used_attributes,
1439         add_values_to_cover, simplify_with_current_value,
1440         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
1441         copy_rtx_unchanging, main): Use new access macros.
1442
1443 2002-04-22  Tom Rix  <trix@redhat.com>
1444
1445         * expmed.c (init_expmed): Generate shifted constant once.
1446
1447 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
1448
1449         * c-lex.c (lex_charconst): Call convert to get constant in
1450         proper type; don't just smash the type field.
1451         Fixes PR c/6300.
1452
1453         * config.gcc: Add list of obsolete configurations.  Disallow
1454         building these without --enable-obsolete.
1455         * doc/install.texi: Document --enable-obsolete and obsoletion
1456         policy.  Mention obsoletion of individual targets in
1457         appropriate places.
1458
1459 2002-04-22  Richard Henderson  <rth@redhat.com>
1460
1461         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
1462
1463 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
1464
1465         PR f/6138.
1466         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
1467         (walk_fixup_memory_subreg): Likewise.
1468         (fixup_var_refs_insn): Adjust accordingly.
1469         (fixup_var_refs_1): Likewise.
1470
1471 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
1472
1473         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
1474         LIBPATH_ARCH64_SPEC): Define.
1475         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
1476         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
1477         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
1478         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
1479
1480 2002-04-22      Joel Sherrill <joel@OARcorp.com>
1481
1482         * gthr-rtems.h: Correct prototypes to remove warnings.
1483
1484 2002-04-22  Richard Henderson  <rth@redhat.com>
1485
1486         PR c/6344
1487         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
1488
1489         * gcse.c (free_insn_expr_list_list): New.
1490         (clear_modify_mem_tables): Use it.  Fix bit set usage.
1491         (canon_list_insert): Use EXPR_LISTs for expressions.
1492         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
1493
1494 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1495
1496         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
1497         file change and include code to _cpp_pop_buffer.
1498         * cpphash.h (struct pending_option): Predeclare.
1499         (struct cpp_reader): New member next_include_file.
1500         (_cpp_pop_file_buffer): Update.
1501         (_cpp_push_next_buffer): Update, rename.
1502         * cppinit.c (cpp_destroy): Free include chain and pending here.
1503         (cpp_finish_options): Simplify.
1504         (_cpp_push_next_buffer): Rename and clean up.
1505         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
1506         Clarify.
1507         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
1508
1509 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1510
1511         * config/rs6000/altivec.h (vec_xor): Add variant for both args
1512         being vector signed int.
1513         (vec_andc): Same.
1514         (vec_xor): Add variant for both args being vector signed char.
1515         Remove redundant variant.
1516         (vec_andc): Same.
1517
1518 2002-04-21  David S. Miller  <davem@redhat.com>
1519
1520         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
1521         compare mode in output RTL.
1522
1523 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
1524
1525         * config/rs6000/rs6000.c (rs6000_override_options): Correct
1526         style and formatting of previous patch.
1527
1528 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
1529
1530         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
1531         flag_pic for ABI_AIX.
1532
1533 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1534
1535         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
1536         * cppfiles.c (read_include_file): Similarly.
1537         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
1538         uxstrdup ustrchr, ufputs): Similarly.
1539         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
1540         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
1541         cpp_ideq, parse_identifier, parse_number): Similarly.
1542         * cpplib.c (struct directive, dequote_string, D, run_directive,
1543         cpp_push_buffer): Similarly.
1544         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
1545         _cpp_create_definition, check_trad_stringification,
1546         cpp_macro_definition): Similarly.
1547
1548 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1549
1550         * cppmacro.c (funlike_invocation_p): Don't step back
1551         over CPP_EOF.
1552
1553 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
1554
1555         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
1556         labelno.
1557
1558 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1559
1560         * doc/invoke.texi: Remove Chill references.
1561         * doc/gcc.texi: Update last modified date.
1562
1563 2002-04-20  Kazu Hirata  <kazu@hxi.com>
1564
1565         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
1566         push and pop.  Replace add.l with add.w.
1567
1568 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1569
1570         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
1571         multiply instructions for H8/300H case.
1572
1573 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1574
1575         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
1576         Bum three instructions from each routine.
1577
1578 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1579
1580         * Makefile.in: Update.
1581         * decl.c (push_c_function_context, pop_c_function_context,
1582         mark_c_function_context): Rename for consistency.
1583         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
1584         * c-tree.h (push_c_function_context, pop_c_function_context,
1585         mark_c_function_context): Rename for consistency.
1586         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1587         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1588         * function.c (init_lang_status, save_lang_status,
1589         restore_lang_status, mark_lang_status, free_lang_status):
1590         Move to langhooks.h.
1591         (push_function_context_to, pop_function_context_from,
1592         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
1593         Update.
1594         * function.h (init_lang_status, save_lang_status,
1595         restore_lang_status, mark_lang_status, free_lang_status):
1596         Move to langhooks.h.
1597         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
1598         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1599         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
1600         LANG_HOOKS_FUNCTION_INITIALIZER): New.
1601         (LANG_HOOKS_INITIALIZER): Update.
1602         (lhd_do_nothing_f): New.
1603         * langhooks.h (struct lang_hooks_for_functions): New.
1604         (struct lang_hooks): New hooks.
1605         * langhooks.c (lhd_do_nothing_f): New.
1606 objc:
1607         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1608         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1609
1610 2002-04-19  David S. Miller  <davem@redhat.com>
1611
1612         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
1613         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
1614
1615 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1616
1617         PR optimization/3756
1618         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
1619         x = ((int) y < 0) ? cst1 : cst2.
1620
1621 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1622
1623         PR c/6358
1624         * function.c: Reapply patch for c/6358.
1625         (expand_function_end): Copy decl_rtl's mode, not
1626         current_function_return_rtx mode.
1627
1628 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
1629
1630         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
1631         targets.
1632
1633 2002-04-19  Tom Tromey  <tromey@redhat.com>
1634
1635         * doc/install.texi (Specific): Update status of Solaris 2.8.
1636         For PR libgcj/6158.
1637
1638 2002-04-19  Andreas Schwab  <schwab@suse.de>
1639
1640         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
1641         (PUT_REAL): Restore old definition.
1642
1643 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1644             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1645
1646         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
1647         binutils 2.11.2 and higher generate smaller binaries than Sun's
1648         native tools.
1649
1650 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
1651
1652         PR c++/6352
1653         * toplev.c (rest_of_compilation): Do not defer functions for which
1654         TREE_SYMBOL_REFERENCED has already been set.
1655
1656 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
1657
1658         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
1659         alternative.
1660
1661 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1662
1663         * builtins.c: Include langhooks.h.
1664         (lang_type_promotes_to): Remove.
1665         (expand_builtin_va_arg): Use new hook.
1666         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
1667         (simple_type_promotes_to): Move to c-typeck.c.
1668         * c-common.h (simple_type_promotes_to): Remove.
1669         * c-decl.c (duplicate_decls, grokdeclarator): Update.
1670         * c-format.c: Include langhooks.h.
1671         (check_format_types): Update.
1672         * c-tree.h (c_type_promotes_to): New.
1673         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
1674         (type_lists_compatible_p): Update.
1675         * langhooks-def.h (lhd_type_promotes_to): New.
1676         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
1677         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1678         * langhooks.c (lhd_type_promotes_to): New.
1679         * langhooks.h (struct lang_hooks_for_types): New hook.
1680         * tree.h (lang_type_promotes_to): Remove.
1681 objc:
1682         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1683
1684 2002-04-18  Richard Henderson  <rth@redhat.com>
1685
1686         * function.c: Revert patch for c/6358.
1687
1688 2002-04-18  Richard Henderson  <rth@redhat.com>
1689
1690         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
1691         blocks.  Handle multiple references to the TRAP block.  Handle
1692         non-adjacent THEN and OTHER blocks.
1693
1694 2002-04-18  Richard Henderson  <rth@redhat.com>
1695
1696         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
1697         crash with no type for by-mode libcalls.
1698
1699         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
1700
1701 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
1702
1703         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
1704         __xtensa_nonlocal_goto): Use a syscall instructions to flush
1705         the register windows.
1706
1707 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1708
1709         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
1710         appropriate.  Document need for extended precision even when
1711         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
1712         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
1713         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
1714         instead of relying on later syntax error when REAL_WIDTH > 5.
1715         * real.c: Define NE based only on whether or not we have a
1716         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
1717         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
1718         define GET_REAL and PUT_REAL as simple memcpy operations; no
1719         need to byteswap or round.
1720         Use #error instead of #ifdef-ing out the entire file, for
1721         prompt error detection.
1722
1723         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
1724
1725 2002-04-18  David S. Miller  <davem@redhat.com>
1726
1727         * config/sparc/sparc.h (BRANCH_COST): Define.
1728
1729         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
1730         does it.
1731
1732 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
1733
1734         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
1735         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
1736         propagate_block calls after relaxation loop using new variable
1737         stabilized_prop_flags.
1738
1739 2002-04-18  Richard Henderson  <rth@redhat.com>
1740
1741         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
1742         (ia64_va_arg): Expect variable sized types by reference.
1743         * config/ia64/ia64-protos.h: Update.
1744         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
1745         ia64_function_arg_pass_by_reference.
1746
1747 2002-04-18  Richard Henderson  <rth@redhat.com>
1748
1749         * ifcvt.c: Include except.h.
1750         (block_has_only_trap): Break out from find_cond_trap.
1751         (find_cond_trap): Use it.  Always delete the trap block.
1752         (merge_if_block): Allow then block null.  Be less simplistic about
1753         what insns can end a block.
1754         * Makefile.in (ifcvt.o): Depend on except.h.
1755
1756         * config/ia64/ia64.md (trap, conditional_trap): New.
1757
1758 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1759
1760         PR c/6358
1761         * function.c (assign_parms): Assign hard current_function_return_rtx
1762         register here...
1763         (expand_function_end): ...not here.
1764
1765 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1766
1767         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1768         * c-tree.h (c_incomplete_type_error): New.
1769         * c-typeck.c (require_complete_type, build_component_ref): Update.
1770         (incomplete_type_error): Rename.
1771         * langhooks-def.h (lhd_incomplete_type_error): New.
1772         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
1773         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1774         * langhooks.c (lhd_incomplete_type_error): New.
1775         * langhooks.h (struct lang_hooks_for_types): New hook.
1776         * tree.c (size_in_bytes): Use new hook.
1777         * tree.h (incomplete_type_error): Remove.
1778 objc:
1779         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
1780
1781 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1782
1783         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
1784         TARGET_FLOAT_FORMAT blocks.
1785
1786 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1787
1788         * doc/install.texi (Downloading the source): Do not mention Chill
1789         any longer, but mention Ada.
1790         (Configuration): Do not mention Chill any longer.
1791
1792 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
1793
1794         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
1795
1796 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
1797
1798         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
1799         in last patch.
1800
1801 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1802
1803         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
1804         instead of unsigned_type.
1805
1806 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
1807
1808         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
1809         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
1810         later.
1811
1812 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
1813
1814         * attribs.c (vector_type_node_list): New static variable.
1815         (handle_vector_size_attribute): Use it to avoid generating a
1816         new type node each time we are called.
1817
1818         * combine.c (subst): Avoid trying to make a vector mode subreg of
1819         an integer constant.
1820         (gen_lowpart_for_combine): Likewise.
1821
1822 2002-04-18  Roger Sayle  <roger@eyesopen.com>
1823             Jakub Jelinek  <jakub@redhat.com>
1824
1825         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
1826         for integer constant c (if x has unsigned type or sign bit is not
1827         set in c).  This folds the zero/sign extension into the bit-wise and
1828         operation.
1829
1830 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
1831
1832         PR middle-end/6205
1833         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
1834         otherwise xorps.
1835
1836 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
1837
1838         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
1839
1840 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
1841
1842         * gcc.c (read_specs): Detect and fail if an attempt is made to
1843         rename a spec string to an already existing string.
1844
1845 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1846
1847         * config/s390/s390.c (legitimize_pic_address): Do not generate
1848         illegal address constant without CONST.
1849
1850 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1851
1852         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
1853         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
1854
1855 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
1856
1857         PR optimization/6305
1858         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
1859         to make sure previous reloads are taken into account.  Generate
1860         better code if one operand is an in-range immediate constant.
1861
1862 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
1863
1864         * doc/install.texi (Building): libgcj requires GNU make.
1865
1866 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
1867
1868         PR bootstrap/6315
1869         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
1870         even if hard quad and register is not floating.
1871         (movtf reg<-mem split): Disallow splitting if hard quad and
1872         register is floating.
1873         (movtf mem<-reg split): Likewise.
1874         * config/sparc/sparc.c (fp_register_operand): New predicate.
1875         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
1876
1877 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
1878
1879         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
1880         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
1881         (unprotoize.o): Ditto.  Build from protoize.c.  Define
1882         UNPROTOIZE on command line.
1883         * protoize.c: Include cppdefault.h.  Delete include_defaults.
1884         (in_system_include_dir): Use cpp_include_defaults (defined in
1885         cppdefault.o).
1886         * unprotoize.c: Delete file.
1887
1888 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
1889
1890         * config/rs6000/altivec.h (vec_ld): Add array variants.
1891         (vec_lde): Same.
1892         (vec_ldl): Same.
1893
1894 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
1895             Aldy Hernandez <aldyh@redhat.com>
1896
1897         * config/rs6000/altivec.h: Define __ALTIVEC__.
1898         (bool): New.
1899         (__pixel): New.
1900         (pixel): New.
1901         (vec_cfux): New.
1902         (vec_vmaddfp): New.
1903         (vec_vsldoi): New.
1904         Add parentheses to all macro arguments.
1905
1906 2002-04-16  Richard Henderson  <rth@redhat.com>
1907
1908         PR c++/6320
1909         * except.c (remove_eh_handler): Insert inner regions at beginning
1910         of sibling chain.  Refactor expressions.
1911
1912 2002-04-16  Richard Henderson  <rth@redhat.com>
1913
1914         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
1915         * config/sparc/sol2-gas-bi.h: New file.
1916         * config.gcc (sparc*-solaris): Add it as needed.
1917         * configure.in (AS_SPARC64_FLAG): Remove check.
1918         * config.in, configure: Regenerate.
1919
1920         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
1921
1922 2002-04-16  Richard Henderson  <rth@redhat.com>
1923
1924         * config/mips/mips.c (override_options): Don't override N32 for
1925         a 64-bit ISA.
1926
1927         PR 6202
1928         * config/mips/mips.md (can_delay): Split out of existing define_delays.
1929         (HILO_delay): Set can_delay false.
1930
1931 2002-04-16  Dale Johannesen <dalej@apple.com>
1932
1933         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
1934         instruction addresses.
1935         (rs6000_output_function_epilogue): Likewise.
1936
1937 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
1938
1939         * c-parse.in (poplevel, compstmt_start,
1940         compstmt_primary_start): Add ending ';', in accordance
1941         with POSIX.
1942
1943 2002-04-16  Richard Henderson  <rth@redhat.com>
1944
1945         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
1946         Adjust tm_file order to get TARGET_DEFAULT set properly.
1947         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
1948         * doc/install.texi (sparc-solaris): Update.
1949
1950 2002-04-16  Dale Johannesen <dalej@apple.com>
1951
1952         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
1953         comparison operands do not match each other or if modes of
1954         conditions do not match result.
1955
1956 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
1957
1958         PR target/6305
1959         * config/s390/s390.md (mulsidi3): Set both subregs of the
1960         multiword register.
1961
1962 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
1963
1964         * config/rs6000/altivec.h (vec_addc): Type check.
1965
1966 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
1967
1968         PR middle-end/6279
1969         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
1970
1971         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
1972
1973 2002-04-15  Richard Henderson  <rth@redhat.com>
1974
1975         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
1976         call_really_used_regs too.
1977
1978 2002-04-15  Richard Henderson  <rth@redhat.com>
1979
1980         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
1981
1982 2002-04-15  David S. Miller  <davem@redhat.com>
1983
1984         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
1985         as being CLOBBERed.
1986
1987 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
1988
1989         PR c/6290
1990         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
1991         CONST_VECTOR is { 0, ... 0 }.
1992
1993 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
1994
1995         * doc/install.texi (Installing GCC: Configuration): Clarify
1996         the only supported ways to configure gcc.
1997
1998 2002-04-15  Roland McGrath  <roland@frob.com>
1999
2000         * config.gcc (alpha*-*-gnu*): New target configuration.
2001         * config/alpha/gnu.h: New file for it.
2002         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
2003
2004 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
2005
2006         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
2007         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
2008         * tree.h (expand_start_stmt_expr): Update prototype.
2009         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
2010         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
2011         on the STMT_EXPR created for the inline function.
2012
2013 2002-04-15  Richard Henderson  <rth@redhat.com>
2014
2015         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
2016         config/i386/linux-aout.h, config/i386/linux-oldld.h,
2017         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
2018         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
2019         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
2020         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
2021         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
2022         Define __gnu_linux__, not gnu_linux.
2023         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
2024
2025 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
2026
2027         Remove Chill front end.
2028         * gcc.c (default_compilers): Remove Chill entries.
2029         * ch: Remove directory.
2030         * doc/frontends.texi: Remove information about Chill.
2031         * doc/sourcebuild.texi: Likewise.
2032         * doc/standards.texi: Likewise.
2033
2034 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
2035
2036         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
2037         (LONGLONG_STANDALONE): Define.
2038
2039 2002-04-15  David S. Miller  <davem@redhat.com>
2040
2041         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
2042         Call emit_library_call with LCT_NORMAL.
2043         (sparc_initialize_trampoline): Use LCT_foo instead of
2044         magic constant in emit_library_call invocations.
2045         (sparc64_initialize_trampoline): Likewise.
2046         (sparc_profile_hook): Likewise.
2047         * config/sparc/sparc.md: Likewise.
2048
2049         * config/sparc/sparc.c (sparc_extra_constraint_check):
2050         Fix type of argument 'c'.
2051         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
2052         Likewise.
2053
2054 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2055
2056         * diagnostic.h (output_buffer_state): Redefine.
2057         (output_format_decoder): New macro.
2058         (output_prefixing_rule): Likewise.
2059         (output_line_cutoff): Likewise.
2060         (diagnostic_format_decoder): Adjust.
2061         (diagnostic_prefixing_rule): Likewise.
2062         (diagnostic_line_cutoff): Likewise.
2063         (diagnostic_state): Likewise.
2064         (diagnostic_kind_count): Likewise.
2065         (diagnostic_buffer): Now a macro.
2066
2067         * diagnostic.c (diagnostic_buffer): Remove definition.
2068         (output_is_line_wrapping): Adjust.
2069         (set_real_maximum_length): Likewise.
2070         (output_set_maximum_length): Likewise.
2071         (init_output_buffer): Likewise.
2072         (lhd_print_error_function): Likewise.
2073         (output_do_verbatim): Likewise.
2074
2075 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2076
2077         * cpperror.c (print_location): Don't print include chain
2078         if line == 0.
2079         (cpp_begin_message): Update to use DL_ macros.
2080         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2081         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2082         cpp_notice, cpp_notice_from_errno): Remove.
2083         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2084         level.
2085         (cpp_errno): New.
2086         * cppexp.c (CPP_ICE): Remove.
2087         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
2088         lex, integer_overflow, _cpp_parse_expr): Update.
2089         * cppfiles.c (read_include_file, find_include_file,
2090         handle_missing_header, _cpp_read_file, remap_filename): Update.
2091         * cpphash.h (enum error_type): Remove.
2092         (_cpp_begin_message): Update.
2093         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
2094         cpp_handle_option, cpp_post_options): Update.
2095         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
2096         skip_whitespace, parse_identifier, parse_slow, parse_string,
2097         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
2098         cpp_interpret_charconst): Update.
2099         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
2100         lex_macro_node, do_undef, glue_header_name, parse_include,
2101         do_include_common, read_flag, do_line, do_linemarker, do_ident,
2102         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
2103         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
2104         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
2105         _cpp_pop_buffer, do_diagnostic): Update.
2106         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
2107         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
2108         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2109         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2110         cpp_notice, cpp_notice_from_errno): Remove.
2111         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2112         level.
2113         (cpp_errno): New.
2114         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
2115         collect_args, enter_macro_context, save_parameter, parse_params,
2116         _cpp_create_definition, check_trad_stringification,
2117         cpp_macro_definition): Update.
2118         * cppmain.c (cpp_preprocess_file): Update.
2119         * fix-header.c (read_scan_file): Update.
2120
2121 2002-04-14  Andreas Schwab  <schwab@suse.de>
2122
2123         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
2124
2125 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2126
2127         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
2128
2129 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2130
2131         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
2132         not gnu_hurd.
2133
2134 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
2135
2136         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
2137
2138 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2139
2140         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
2141         sparc-elf and sparc-rtems targets.
2142
2143 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2144
2145         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
2146         defined, and __gnu_hurd__ wherever __GNU__ is defined.
2147         * arm/linux-elf.h: Likewise.
2148         * cris/aout.h: Likewise.
2149         * cris/linux.h: Likewise.
2150         * i370/linux.h: Likewise.
2151         * i386/gnu.h: Likewise.
2152         * i386/linux-aout.h: Likewise.
2153         * i386/linux-oldld.h: Likewise.
2154         * i386/linux.h: Likewise.
2155         * i386/linux64.h: Likewise.
2156         * ia64/linux.h: Likewise.
2157         * m68k/linux-aout.h: Likewise.
2158         * m68k/linux.h: Likewise.
2159         * mips/linux.h: Likewise.
2160         * pa/pa-linux.h: Likewise.
2161         * pj/linux.h: Likewise.
2162         * rs6000/sysv4.h: Likewise.
2163         * s390/linux.h: Likewise.
2164         * sh/linux.h: Likewise.
2165         * sparc/linux-aout.h: Likewise.
2166         * sparc/linux.h: Likewise.
2167         * sparc/linux64.h: Likewise.
2168         * xtensa/linux.h: Likewise.
2169
2170 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
2171
2172         * stmt.c (check_unique_operand_names): Expect operand names to
2173         be strings rather than identifiers.  Use simple_cst_equal to
2174         compare them.
2175         (resolve_operand_name_1): Make same identifier to string change here.
2176         * c-parse.in (asm_operand): Convert a named operand into a string.
2177         * cp/parse.y (asm_operand): Likewise.
2178
2179 2002-04-13  Andreas Schwab  <schwab@suse.de>
2180
2181         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
2182
2183 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
2184
2185         Revert these changes:
2186
2187         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2188
2189         PR c++/5571
2190         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2191
2192 2002-04-12  Richard Henderson  <rth@redhat.com>
2193
2194         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
2195         (sparc*-*-solaris): Clean up header files.
2196         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
2197         and plan on generating 64-bit code.
2198         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
2199         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
2200         * config/sparc/sol2-sld-64.h: Rename ...
2201         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
2202         for AS_SPARC64_FLAG not defined.
2203         * config/sparc/sol2-gld-bi.h: New.
2204         * config/sparc/sol2-sld.h: Remove.
2205         * config/sparc/sol26-sld.h: New.
2206         * config/sparc/sol2.h: Tidy comments.
2207         * doc/install.texi: Document sparc-solaris configury changes.
2208
2209 2002-04-12  Richard Henderson  <rth@redhat.com>
2210
2211         * recog.c (offsettable_address_p): Match the logic in adjust_address.
2212
2213         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
2214         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
2215
2216 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2217
2218         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
2219
2220 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
2221
2222         * pa.c (pa_can_combine_p): Call extract_insn before calling
2223         constrain_operands.
2224
2225 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
2226
2227         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
2228         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
2229         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
2230         (CPP_PREDEFINES): Handle __declspec.
2231         * config/i386/t-interix (USER_H): Remove.
2232
2233 2002-04-12  DJ Delorie  <dj@redhat.com>
2234
2235         * integrate.c (compare_blocks): Make comparisons safe for when
2236         sizeof(int) < sizeof(char *).
2237         (find_block): Likewise.
2238
2239 2002-04-12  Jan Hubicka  <jh@suse.cz>
2240             David Edelsohn  <edelsohn@gnu.org>
2241
2242         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
2243         registers.
2244         (symbol_ref_operand): New.
2245         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
2246         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
2247
2248 2002-04-12  Andreas Schwab  <schwab@suse.de>
2249
2250         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
2251         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
2252         overrides the definition in config/svr4.h.
2253
2254 2002-04-12      Eric Norum <eric.norum@usask.ca>
2255
2256         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2257         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
2258         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
2259         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
2260         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
2261         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
2262         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
2263         definitions to config/rtems.h and make the targets more similar.
2264
2265 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2266
2267         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
2268         POINTERS_EXTEND_UNSIGNED.
2269         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
2270         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
2271
2272         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
2273         not specified.
2274
2275 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
2276
2277         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
2278         depends on TARGET_SHMEDIA, not TARGET_SH5.
2279
2280 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
2281
2282         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
2283         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
2284
2285 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2286
2287         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
2288         no r0 clobber.
2289
2290 2002-04-12  Andreas Schwab  <schwab@suse.de>
2291
2292         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
2293
2294 2002-04-12  Richard Henderson  <rth@redhat.com>
2295
2296         PR bootstrap/4191
2297         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
2298
2299         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
2300         modes spanning multiple hard regs.
2301
2302         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
2303
2304 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2305
2306         * pa.c (pa_output_function_prologue): Don't accumulate the total
2307         number of code bytes when using TARGET_64BIT, or gas, SOM and not
2308         the portable runtime.
2309         (output_deferred_plabels): Handle 64bit plabels.
2310         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
2311         generating pic code using the GAS assembler for object formats that
2312         are not SOM (ie., ELF32 and ELF64).
2313         (output_millicode_call): Check attribute type if attribute length is 28.
2314         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
2315         dbr_sequence_length once.
2316         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
2317         dbr_sequence_length once.
2318         * pa.h (TARGET_SOM): Define if not defined.
2319         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
2320         with GAS and not SOM.
2321         (jump, call_internal_reg, call_value_internal_reg): Likewise.
2322         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
2323
2324 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2325
2326         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
2327         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
2328         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
2329         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
2330         elfos.h and dbxelf.h values are fine now.
2331         * config/i386/freebsd.h, config/alpha/freebsd.h
2332         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
2333
2334 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2335
2336         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
2337         or set Acpu or Amachine.  Reformat.
2338         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2339         define.
2340         (LINK_SPEC): Do not need to undef.
2341         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
2342         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
2343         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2344         define.
2345         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
2346         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
2347         (LINK_SPEC): Do not need to undef.
2348         (DONT_USE_BUILTIN_SETJMP): Do not define.
2349         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
2350         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
2351         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
2352         Remove trailing spaces.
2353         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
2354         __ELF__, or set Acpu or Amachine.  Reformat.
2355         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2356         define.
2357
2358 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2359
2360         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
2361         all other *-*-freebsd* targets.
2362
2363 2002-04-11  Richard Henderson  <rth@redhat.com>
2364
2365         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
2366
2367 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2368
2369         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
2370         Include {cpu}/{cpu}.h thru tm_file.
2371         (alpha*-*-linux*ecoff): Remove target.
2372         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
2373         (LINK_SPEC): Remove, is not OS independent.
2374         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
2375         (LINK_SPEC): Do not need to #undef any longer.
2376         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
2377         any longer.
2378         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
2379         __ELF__.
2380         (LINK_SPEC): Moved here from alpha/elf.h.
2381         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
2382         SUB_CPP_PREDEFINES.
2383         * config/alpha/linux-ecoff.h: Remove.
2384         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
2385         (CPP_SPEC): Define _POSIX_SOURCE as needed.
2386         (CPP_SUBTARGET_SPEC): Do not define.
2387         (LINK_SPEC): Do not need to #undef any longer.
2388         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
2389         * config/alpha/vms.h: Likewise.
2390
2391 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
2392
2393         * doc/extend.texi: Remove old claim that typedefs cannot have
2394         an alignment attribute.
2395
2396 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2397
2398         PR optimization/6177
2399         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
2400         bitpos is 0 and bitsize CONCAT size.
2401
2402 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2403
2404         PR c/6223
2405         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
2406
2407 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
2408
2409         * config/alpha/freebsd.h: Minor reformatting.
2410         (CPP_SPEC): Define ELF and add cpp_subtarget.
2411         (ASM_SPEC): No longer needed.
2412
2413 2002-04-11  Richard Henderson  <rth@redhat.com>
2414
2415         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
2416         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
2417         (dimode mem/zero splitter): New.
2418
2419 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
2420
2421         * config/cris/cris.c (cris_override_options): Tweak error message
2422         for PIC not implemented.
2423
2424         * config/cris/cris.h: Tweak comments related to parameter-passing.
2425
2426         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
2427
2428 2002-04-10  Richard Henderson  <rth@redhat.com>
2429
2430         * except.c (add_ehl_entry): Allow duplicates after landing pad
2431         creation.
2432
2433 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
2434
2435         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
2436
2437 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
2438
2439         * c-decl.c (c_init_decl_processing): Move generation of
2440         decls for g77_integer_type_node and friends from here ...
2441         * c-common.c (c_common_nodes_and_builtins): ... to here.
2442
2443 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
2444
2445         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
2446         is only used as frame pointer when frame_pointer_needed is true.
2447
2448 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
2449
2450         PR target/817
2451         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
2452         for the fact that the pool entry uses two words.
2453         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
2454         1k bytes.
2455         (movdf_soft_insn): Similarly.
2456         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
2457         for the fact that the pool entry uses three words.
2458
2459 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
2460
2461         * config/mips/mips.c (mips_va_arg): When using the struct version
2462         of the EABI va_list, allow arguments in the register save area to
2463         take up less room than a stack argument.
2464
2465 2002-04-10  Richard Henderson  <rth@redhat.com>
2466
2467         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
2468         if EXPAND_INITIALIZER.
2469
2470 2002-04-09  Richard Henderson  <rth@redhat.com>
2471
2472         * config/alpha/alpha.md (movdi_er_maybe_g): New.
2473         * config/alpha/alpha.c (alpha_expand_mov): Use it.
2474
2475 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
2476
2477         PR optimization/6233
2478         * rtlanal.c (pure_call_p): New function.
2479         * rtl.h (pure_call_p): Declare.
2480         * loop.c (prescan_loop): Use it to set has_nonconst_call.
2481         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
2482
2483 2002-04-09  Eric Christopher  <echristo@redhat.com>
2484
2485         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
2486         information to .comm directive.
2487
2488 2002-04-09  Richard Henderson  <rth@redhat.com>
2489
2490         PR c/5078
2491         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
2492
2493 2002-04-09  Richard Henderson  <rth@redhat.com>
2494
2495         * basic-block.h (flow_delete_block_noexpunge): Declare.
2496         (expunge_block_nocompact): Declare.
2497         * cfg.c (expunge_block_nocompact): Split out from ...
2498         (expunge_block): ... here.
2499         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
2500         (flow_delete_block_noexpunge): Split out from ...
2501         (flow_delete_block): ... here.
2502         * cfgcleanup.c (delete_unreachable_blocks): Compact while
2503         removing dead blocks.
2504         * except.c (exception_handler_labels): Remove.
2505         (exception_handler_label_map): New.
2506         (struct eh_region): Add aka member.
2507         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
2508         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
2509         (for_each_eh_label, for_each_eh_label_1): New.
2510         (init_eh): Register exception_handler_label_map.
2511         (free_eh_status): Use free_region.
2512         (find_exception_handler_labels): Use the map, not the list.
2513         (remove_exception_handler_label): Likewise.
2514         (maybe_remove_eh_handler): Likewise.
2515         (remove_eh_handler): Use the region aka bitmap.
2516         * except.h (exception_handler_labels): Remove.
2517         (for_each_eh_label): Declare.
2518         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
2519         * loop.c (invalidate_loops_containing_label): New.
2520         (find_and_verify_loops): Use it.  Use for_each_eh_label.
2521         * sched-rgn.c (is_cfg_nonregular): Use
2522         current_function_has_exception_handlers.
2523
2524 2002-04-09  Richard Henderson  <rth@redhat.com>
2525
2526         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
2527         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
2528         Do not return changed status.
2529         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
2530         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
2531         New functions that do return changed status.
2532         * sbitmap.h: Update decls.
2533         * gcse.c, lcm.c: Use _cg functions as needed.
2534
2535 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2536
2537         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
2538         (sh64-*-elf*, sh-*-rtemself*): Likewise.
2539         * config/sh/embed_bb.c: New file.
2540         * config/sh/embed-elf.h: New file.
2541         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
2542         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
2543         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2544         __PTRDIFF_TYPE__ .
2545         (SUBTARGET_CPP_PTR_SPEC): Don't define.
2546         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
2547         Add subtarget_asm_endian_spec.
2548         (ASM_SPEC): Use subtarget_asm_endian_spec.
2549         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
2550         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
2551         (WCHAR_UNSIGNED): Define.
2552         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
2553         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2554         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
2555         Fix value.
2556         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
2557         (sh_adjust_cost): Likewise.
2558         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2559         __PTRDIFF_TYPE__ .
2560         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
2561         (WCHAR_TYPE_SIZE): Likewise.
2562         (ASM_SPEC): Use subtarget_asm_endian_spec.
2563         (SH_ELF_WCHAR_TYPE): #undef/ #define.
2564         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
2565         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
2566         (MAX_WCHAR_TYPE_SIZE): Don't #define .
2567         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
2568         (USER_LABEL_PREFIX): Don't #undef /#define .
2569         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2570         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
2571         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
2572         (ASM_SPEC): Likewise.
2573         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
2574         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
2575         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
2576         (LIB2FUNCS_EXTRA): Define.
2577         * t-sh64 (LIB2FUNCS_EXTRA): Define.
2578         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
2579         (LIB1ASMFUNCS_CACHE): Define.
2580         (LIB2FUNCS_EXTRA): Redefine empty.
2581
2582 2002-04-08  Richard Henderson  <rth@redhat.com>
2583
2584         * reorg.c (get_branch_condition): Use reversed_comparison_code.
2585
2586 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2587
2588         * config/m68hc11/larith.asm (__map_data_section): Fix condition
2589         and optimize for size.
2590         (__do_global_ctors): Fix pointer comparison.
2591         (__do_global_dtors): Likewise.
2592
2593 2002-04-09  David S. Miller  <davem@redhat.com>
2594
2595         * config/sparc/sparc.c (sparc_extra_constraint_check): New
2596         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
2597         allow reloading pseudos.
2598         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
2599         * config/sparc/sparc-protos.h: Declare it.
2600
2601         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
2602         unsigned comparison warning.
2603         (output_restore_regs): Mark leaf_function as unused.
2604
2605 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2606
2607         * expr.c (is_aligning_offset): New function.
2608         (expand_expr, case COMPONENT_EXPR): Call it.
2609
2610 2002-04-08  David S. Miller  <davem@redhat.com>
2611
2612         PR target/6082
2613         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
2614
2615         Make init_priority work on Sparc when using GNU ld.
2616         * config/sparc/linux.h, config/sparc/linux64.h,
2617         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
2618         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
2619         * config/sparc/sol2-gld.h: New file to do the same.
2620         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
2621         sparc/sol2-gld.h to tm_file.
2622
2623         PR optimization/4328
2624         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
2625         * doc/md.texi: Document it.
2626         * config/sparc/sparc.md (movdi_insn_sp64_novis,
2627         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
2628         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
2629         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
2630         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
2631
2632 2002-04-08  Andreas Jaeger  <aj@suse.de>
2633
2634         * stmt.c (expand_asm_operands): Revert last patch from Richard
2635         Henderson.
2636
2637 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2638
2639         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
2640         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
2641
2642 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2643
2644         * doc/contrib.texi (Contributors): Add David O'Brien.
2645
2646 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
2647
2648         * configure.in (auto-build.h): Use target_alias and build_alias
2649         when running configure.
2650         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
2651         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
2652         * configure: Regenerate.
2653
2654 2002-04-07  David S. Miller  <davem@redhat.com>
2655
2656         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
2657
2658 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2659
2660         PR 5933
2661         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
2662         generating 32-bit pic code.
2663
2664 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2665
2666         * cppinit.c (cpp_create_reader): Initialize
2667         discard_comments_in_macro_exp.
2668         (COMMAND_LINE_OPTIONS): Add "-CC" option.
2669         (cpp_handle_option): Handle "-CC" option.
2670         * cpplex.c (save_comment): If saving a C++ comment in
2671         a directive, convert it to a C comment.
2672         (_cpp_lex_direct): Pass second comment start character to
2673         save_comment to indicate comment type.
2674         * cpplib.c (_cpp_handle_directive): If processing
2675         a "#define" directive and discard_comments_in_macro_exp
2676         is false,  re-enable saving of comments.
2677         (lex_macro_node): If discard_comments_in_macro_exp is false,
2678         discard any comments before the macro identifier.
2679         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
2680         member.
2681         * cppmacro.c (cpp_get_token): If expanding a macro while
2682         processing a directive, discard any comments we might encounter.
2683         (parse_params): If discard_comments_in_macro_exp is false,
2684         ignore comments in the macro parameter list.
2685         * gcc.c (cpp_unique_options): Add "-CC" option.
2686         (option_map): Map "--comments-in-macros" to "-CC".
2687         * doc/cppopts.texi: Document "-CC" option.
2688         * f/lang-specs.h: Add "-CC" option.
2689         * testsuite/gcc.dg/cpp/maccom1.c: New test.
2690         * testsuite/gcc.dg/cpp/maccom2.c: New test.
2691         * testsuite/gcc.dg/cpp/maccom3.c: New test.
2692         * testsuite/gcc.dg/cpp/maccom4.c: New test.
2693         * testsuite/gcc.dg/cpp/maccom5.c: New test.
2694         * testsuite/gcc.dg/cpp/maccom6.c: New test.
2695
2696 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2697
2698         PR middle-end/6180
2699         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
2700
2701 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2702
2703         PR c++/5571
2704         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2705
2706         PR opt/5120
2707         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
2708         RTX_UNCHANGING_P for the functions arguments when a tail call
2709         is made.
2710
2711 2002-04-06  Jason Merrill  <jason@redhat.com>
2712
2713         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
2714         (parse_options_and_default_flags): Set them appropriately.
2715         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
2716
2717 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
2718
2719         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
2720         here.
2721
2722         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
2723         semicolon.
2724
2725         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
2726         types come in by-reference.  Fix typo in comment.
2727
2728 2002-04-05  David S. Miller  <davem@redhat.com>
2729
2730         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
2731         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
2732         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
2733         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
2734
2735 2002-04-05  David S. Miller  <davem@redhat.com>
2736
2737         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
2738         are not going to emit return instructions, emit at least a nop
2739         for the sake of sane backtraces.
2740
2741 2002-04-05  Richard Henderson  <rth@redhat.com>
2742
2743         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
2744
2745 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
2746
2747         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
2748
2749 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
2750
2751         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
2752         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
2753         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
2754
2755 2002-04-05  Andreas Schwab  <schwab@suse.de>
2756
2757         * c-convert.c: Include c-common.h.
2758         * Makefile.in (c-convert.o): Updated.
2759
2760 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2761
2762         * mklibgcc.in: Use separate libgcc.map for each multilib.
2763         * Makefile.in (distclean): Don't remove libgcc.map here.
2764
2765 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
2766
2767         * Makefile.in (s-mlib): Handle --disable-multilib by separate
2768         genmultilib invocation.
2769
2770 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
2771
2772         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
2773         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
2774         to num_gprs for symmetry.
2775         * config/mips/mips.c: Adjust accordingly.
2776
2777 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2778
2779         * c-common.c (truthvalue_conversion): Rename, update.
2780         * c-common.h (c_common_truthvalue_conversion): New.
2781         * c-convert.c (convert): Update.
2782         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2783         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
2784         * c-typeck.c (build_binary_op, build_unary_op,
2785         build_conditional_expr): Update.
2786         * fold-const.c (constant_boolean_node, fold): Use langhook.
2787         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
2788         * langhooks.h (struct lang_hooks): New hook.
2789         * stmt.c (expand_decl_cleanup): Use langhook.
2790         * tree.h (truthvalue_conversion): Remove.
2791 objc:
2792         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
2793
2794 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
2795
2796         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
2797         Add rules to make null object file.
2798
2799 2002-04-04  Jim Blandy  <jimb@redhat.com>
2800
2801         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
2802         macro formal parameter names.
2803
2804 2002-04-04  David S. Miller  <davem@redhat.com>
2805
2806         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
2807
2808 2002-04-04  Richard Henderson  <rth@redhat.com>
2809
2810         PR middle-end/5099
2811         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
2812         Support copies into and out of memory.  Don't accept allows_reg
2813         and allows_mem as gospel.
2814
2815 2002-04-04  Richard Henderson  <rth@redhat.com>
2816
2817         PR opt/6165
2818         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
2819         (write_dependence_p): Likewise.
2820
2821 2002-04-04  Richard Henderson  <rth@redhat.com>
2822
2823         * predict.c (estimate_bb_frequencies): Do frequency calculation
2824         with a volatile temporary.
2825
2826 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
2827
2828         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
2829
2830 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2831
2832         PR c++/6119
2833         * final.c (final_start_function): Don't bump profile_label_no here...
2834         (final_end_function): ...but here.
2835
2836 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2837
2838         * config/sparc/sparc.md (pic): New attribute.
2839         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
2840         into stack slots.
2841         (split after do_builtin_setjmp_setup): New.
2842
2843 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2844
2845         PR fortran/6106
2846         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
2847         change.
2848
2849 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
2850
2851         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
2852         UNITS_PER_WORD for zero sized aggregates.
2853
2854 2002-04-03  David S. Miller  <davem@redhat.com>
2855
2856         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
2857         one-character spec for this, just use %(link_gcc_c_sequence).
2858
2859 2002-04-03  David S. Miller  <davem@redhat.com>
2860
2861         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
2862         handling.
2863
2864 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2865
2866         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
2867         (DWARF_FRAME_RETURN_COLUMN): Move.
2868         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2869         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
2870         * pa.c (except.h, predict.h): Include.
2871         (FRP): Delete.
2872         (store_reg_modify, set_reg_plus_d): Revise prototypes.
2873         (output_ascii): Add cast.
2874         (store_reg_modify): Revise to add frame notes.
2875         (set_reg_plus_d): Likewise.
2876         (compute_frame_size): Include space for eh data registers in frame if
2877         the current function calls eh_return.
2878         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
2879         function calls eh_return.  Save eh data registers if the current
2880         function calls eh_return.  Fix code to add frame notes.  Emit
2881         blockage to prevent insns with frame notes being scheduled in the
2882         delay slot of calls.
2883         (hppa_expand_epilogue): Restore eh data registers and do final stack
2884         adjustment if the current function calls eh_return.  Don't add frame
2885         notes.
2886         (output_call): Revise for change in length of call insn.  Don't do
2887         return pointer adjustment for an unconditional jump in the delay slot
2888         of a call when using frame notes.
2889         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
2890         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
2891         (ARG_POINTER_CFA_OFFSET): Define.
2892         * pa.md (return_external_pic): New pattern.
2893         (prologue): Correct formatting.  Use return_external_pic if current
2894         function calls eh_return.
2895         (call_internal_symref, call_value_internal_symref,
2896         sibcall_internal_symref, sibcall_value_internal_symref): Change default
2897         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
2898         respectively.
2899         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
2900
2901         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
2902         list of targets to check using "nop" insn.
2903         * configure: Rebuilt.
2904
2905 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
2906
2907         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
2908
2909 2002-04-03  David S. Miller  <davem@redhat.com>
2910
2911         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
2912         library sequence passed to the linker.
2913         (LINK_COMMAND_SPEC): Use it.
2914         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
2915         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
2916         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2917
2918 2002-04-03  Jason Merrill  <jason@redhat.com>
2919
2920         * except.c (struct eh_status): Remove protect_list.
2921         (begin_protect_partials, end_protect_partials): Remove.
2922         (add_partial_entry): Remove.
2923         * except.h: Remove prototypes.
2924
2925         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
2926         expand_decl_cleanup_eh.
2927
2928         PR c++/5636
2929         * tree.h (CLEANUP_EH_ONLY): New macro.
2930         * stmt.c (expand_decl_cleanup_eh): New fn.
2931         (expand_cleanups): Check CLEANUP_EH_ONLY.
2932         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
2933         Use expand_decl_cleanup_eh.
2934         (expand_stmt): Adjust.
2935         * c-common.h: Adjust prototype.
2936
2937 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
2938
2939         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
2940         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
2941         (cris_target_asm_function_epilogue): Ditto.
2942         (cris_initial_frame_pointer_offset): Ditto.
2943         (cris_simple_epilogue): Ditto.
2944         (cris_expand_builtin_va_arg): Variable-size types come in
2945         by-reference.
2946
2947 2002-04-03  David S. Miller  <davem@redhat.com>
2948
2949         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
2950         little-endian.
2951         (set_fast_math): Correct 'fsr' type.
2952
2953 2002-04-03  Richard Henderson  <rth@redhat.com>
2954
2955         PR opt/3569
2956         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
2957         * toplev.c (check_global_declarations): Use it.
2958         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
2959         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2960         (LANG_HOOKS_DECLS): Add it.
2961         * langhooks.c (lhd_warn_unused_global_decl): New.
2962         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2963         * c-objc-common.c (c_warn_unused_global_decl): New.
2964         * c-tree.h (c_warn_unused_global_decl): Declare.
2965         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
2966
2967 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2968
2969         * langhooks-def.h (lhd_set_decl_assembler_name,
2970         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2971         (LANG_HOOKS_INITIALIZER): Update.
2972         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
2973         * langhooks.h (struct lang_hooks): New hook.
2974         * tree.c (set_decl_assembler_name): Move to langhooks.c.
2975         (lang_set_decl_assembler_name): Remove.
2976         (init_obstacks): Don't set hook.
2977         (decl_assembler_name): New function.
2978         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
2979         (decl_assembler_name): New.
2980         (lang_set_decl_assembler_name): Remove.
2981
2982 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
2983
2984         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
2985         works properly with .hidden symbols.
2986         * configure: Rebuilt.
2987         * config.in: Rebuilt.
2988         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2989         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
2990         properly with .hidden symbols.
2991
2992 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
2993
2994         PR middle-end/6102
2995         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
2996         USE argument.
2997
2998 2002-04-03  Richard Henderson  <rth@redhat.com>
2999
3000         PR opt/4120
3001         * sched-rgn.c (sets_likely_spilled): New.
3002         (sets_likely_spilled_1): New.
3003         (add_branch_dependences): Use it.
3004
3005 2002-04-02  Richard Henderson  <rth@redhat.com>
3006
3007         PR opt/4311
3008         * loop.h (LOOP_FIRST_PASS): New.
3009         * loop.c (strength_reduce): Mind it when deciding to unroll.
3010         * toplev.c (rest_of_compilation): Set it.
3011
3012 2002-04-02  David S. Miller  <davem@redhat.com>
3013
3014         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
3015         mems_ok_for_ldd_peep when the order of the loads being examined
3016         is reversed.
3017         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
3018         existing comment to increase comprehension of this situation.
3019
3020 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
3021
3022         * config/sh/sh.md: Don't use union real_extract.
3023
3024 2002-04-02  Richard Henderson  <rth@redhat.com>
3025
3026         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
3027
3028 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3029
3030         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
3031         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
3032         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
3033         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
3034         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
3035         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
3036         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
3037         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
3038         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
3039         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
3040         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
3041         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
3042         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
3043         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
3044         Include as many configury headers via tm_file as possible.  This
3045         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
3046         * config/openbsd-oldgas.h: New file.
3047         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
3048         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
3049         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
3050         config/i386/i386-coff.h, config/i386/i386-interix.h,
3051         config/i386/iscdbx.h, config/i386/linux-aout.h,
3052         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
3053         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
3054         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
3055         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
3056         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
3057         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
3058         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
3059         config/i386/vxi386.h: Do not directly include configury headers.
3060         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
3061         Directly include configury headers that are no longer automatically
3062         included by the above headers.
3063         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
3064         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
3065         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
3066         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
3067         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
3068         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
3069         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
3070         (TARGET_VERSION): Define.
3071         * config/i386/beos-elf.h, config/i386/freebsd.h,
3072         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
3073         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
3074         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
3075         config/i386/sco5.h, config/i386/sysv4.h
3076         (TARGET_VERSION): Do not need to protect.
3077         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
3078         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
3079         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
3080         config/i386/i386-interix.h, config/i386/linux-aout.h,
3081         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
3082         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
3083         (YES_UNDERSCORES): Do not define - not needed.
3084         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
3085         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3086         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
3087         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
3088         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3089         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
3090         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
3091         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
3092
3093 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
3094             Richard Henderson  <rth@redhat.com>
3095
3096         PR c/5484
3097         * function.c (assign_temp): Accept either type or decl argument.
3098         Detect variables whose size is too large to fit into an integer.
3099         * stmt.c (expand_decl): Pass the decl, not the type.
3100
3101 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3102
3103         * protoize.c: Match include directory usage with cppdefault.c.
3104
3105 2002-04-03  Jeffrey A Law  (law@redhat.com)
3106             Hans-Peter Nilsson  <hp@bitrange.com>
3107
3108         * combine.c (simplify_comparison): Avoid narrowing a comparison
3109         with a paradoxical subreg when doing so would drop signficant bits.
3110
3111 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
3112
3113         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
3114         if POINTERS_EXTEND_UNSIGNED is defined.
3115
3116 2002-04-02  Richard Henderson  <rth@redhat.com>
3117
3118         PR opt/3967
3119         * local-alloc.c (contains_replace_regs): LO_SUM may contain
3120         replace regs.
3121
3122 2002-04-02  Richard Henderson  <rth@redhat.com>
3123
3124         * doc/standards.texi: Document required freestanding libc entry points.
3125
3126 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
3127
3128         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
3129         associated splitter.  Remove MQ constraint.
3130         (ctrdi_internal4): Correct CCmode clobber.
3131
3132 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3133
3134         * milli64.S ($$dyncall): New function.
3135         * t-linux (LIB1ASMFUNCS): Revise module list.
3136         (LIB1ASMSRC): Use pa/milli64.S.
3137
3138 2002-04-02  Richard Henderson  <rth@redhat.com>
3139
3140         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
3141         rename solaris_sys_varargs_h.
3142
3143 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3144
3145         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
3146         the same mode as its component.
3147
3148 2002-04-02  Richard Henderson  <rth@redhat.com>
3149
3150         PR opt/190
3151         * final.c (this_is_asm_operands): Export.
3152         * output.h (this_is_asm_operands): Declare.
3153         * config/i386/i386.c (print_operand): Error odd asm operands.
3154
3155 2002-04-02  Richard Henderson  <rth@redhat.com>
3156
3157         PR opt/420
3158         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
3159
3160 2002-04-01  Richard Henderson  <rth@redhat.com>
3161
3162         PR target/1538
3163         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
3164         * fixinc/fixincl.x: Rebuild.
3165
3166 2002-04-01  Richard Henderson  <rth@redhat.com>
3167
3168         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
3169         (atomic_alloc, atomic_free): New.
3170         (SIZE, MASK_FOR, PTR_IN): New.
3171         (emergency_reg_state, emergency_reg_state_free): New.
3172         (emergency_labeled_state, emergency_labeled_state_free): New.
3173         (reg_state_alloced, labeled_state_alloced): New.
3174         (alloc_reg_state, free_reg_state): New.
3175         (alloc_label_state, free_label_state, free_label_states): New.
3176         (push, pop, dup_state_stack, free_state_stack): Use them.
3177         (desc_label_state): Likewise.
3178         (uw_frame_state_for): Free label states and state stack.
3179         (uw_update_reg_address): Eliminate warnings.
3180
3181 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
3182
3183         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
3184         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
3185
3186 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3187
3188         * c-decl.c (grokdeclarator): Update.
3189         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3190         * c-tree.h (c_mark_addressable): New.
3191         * c-typeck.c (default_function_array_conversion, build_unary_op,
3192         build_array_ref, convert_for_assignment): Update.
3193         (mark_addressable): Rename.
3194         * calls.c (try_to_integrate, expand_call): Use langhook.
3195         * expr.c (expand_expr): Use langhook.
3196         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
3197         * langhooks.h (struct lang_hooks): New hook.
3198         * stmt.c (expand_asm_operands): Use langhook.
3199         * tree.h (mark_addressable): Remove.
3200 objc:
3201         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3202
3203 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3204
3205         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
3206         in previous change.
3207
3208 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3209
3210         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
3211         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
3212
3213 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3214
3215         * c-common.c (unsigned_conversion_warning, convert_and_check,
3216         unsigned_type, signed_type, shorten_compare,
3217         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
3218         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
3219         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
3220         New.
3221         * c-decl.c (grokdeclarator): Update.
3222         * c-format.c (check_format_types): Update.
3223         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3224         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3225         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
3226         * convert.c (convert_to_integer): Use new hooks.
3227         * expmed.c (make_tree): Use new hooks.
3228         * expr.c (store_expr): Use new hooks.
3229         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
3230         all_ones_mask_p, unextend, fold): Use new hooks.
3231         * langhooks.h (struct lang_hooks_for_types): New hooks.
3232         * tree.h (signed_or_unsigned_type, signed_type,
3233         unsigned_type): Remove.
3234 objc:
3235         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3236         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3237
3238 2002-03-31  Richard Henderson  <rth@redhat.com>
3239
3240         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
3241         (desc_frgr_mem): Fix reference to f16-f31.
3242
3243 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3244
3245         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3246         RTVEC_ELT): Const-ify.
3247         * varray.h (VARRAY_CHECK): Const-ify.
3248         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
3249         ggc_mark_rtvec, ggc_mark): Const-ify.
3250
3251 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3252
3253         * diagnostic.c: Include langhooks-def.h.
3254         * Makefile.in (diagnostic.o): Update.
3255
3256 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3257
3258         * c-common.c (c_unsafe_for_reeval): Rename.
3259         * c-common.h (c_unsafe_for_reeval): Rename.
3260         * c-decl.c (finish_incomplete_decl): Rename.
3261         (c_init_decl_processing): Don't set langhook.
3262         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3263         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3264         * c-objc-common.c (c_objc_common_init): Don't set langhook.
3265         * c-tree.h (finish_incomplete_decl): Rename.
3266         * langhooks-def.h (lhd_unsafe_for_reeval): New.
3267         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
3268         (LANG_HOOKS_INITIALIZER): Update.
3269         * langhooks.c (lhd_unsafe_For_reeval): New.
3270         * langhooks.h (struct langhooks): New hooks.
3271         * toplev.c (incomplete_decl_finalize_hook): Remove.
3272         (wrapup_global_declarations): Update.
3273         * tree.c (lang_unsafe_for_reeval): Remove.
3274         (unsafe_for_reeval): Update.
3275         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
3276         Remove.
3277 objc:
3278         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3279         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3280
3281 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3282
3283         * diagnostic.c (print_error_function): Remove.
3284         (default_print_error_function): Rename.
3285         (report_error_function): Update.
3286         * diagnostic.h (print_error_function): Remove.
3287         (default_print_error_function): Remove.
3288         * langhooks-def.h (struct diagnostic_context): Predeclare.
3289         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
3290         (LANG_HOOKS_INITIALIZER): Update.
3291         * langhooks.h (struct diagnostic context): Predeclare.
3292         (struct lang_hooks): New hook.
3293
3294 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3295
3296         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
3297         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
3298         !flag_pic.
3299         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
3300         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
3301         of PIC_OFFSET_TABLE_REGNUM thruout.
3302         * config/rs6000/rs6000.md: Likewise.
3303         * config/rs6000/darwin.h: Likewise.
3304
3305 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3306
3307         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
3308         unsigned HOST_WIDE_INT, not unsigned int.
3309
3310 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3311
3312         PR middle-end/6096, middle-end/6098, middle-end/6099
3313         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
3314         CODE_LABELs.
3315         (fill_slots_from_thread): Likewise.
3316
3317 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3318
3319         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
3320         floating fields in float regs.
3321         (function_arg_record_value_2): Likewise.
3322
3323 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3324
3325         * config/mmix/mmix.md (define_constants): Remove misleading
3326         FIXME.  Add MMIX_fp_rO_OFFSET.
3327         ("nonlocal_goto_receiver"): Don't have stack-frame address of
3328         saved rO as part of the pattern.  Remove FIXME.
3329         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
3330         here, at output-time.
3331
3332 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3333
3334         PR middle-end/6100
3335         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
3336         REG_BR_PRED.
3337         (output_v9branch): Likewise.
3338
3339 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3340
3341         * gcc.c: Revert previous patch for now.
3342         * config/i386/djgpp.h: Likewise.
3343
3344 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3345
3346         * config/mmix/crti.asm (_init): Register _fini with atexit.
3347         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
3348
3349 2002-03-31  Richard Henderson  <rth@redhat.com>
3350
3351         PR target/3997
3352         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
3353         (ASM_OUTPUT_DEF_FROM_DECLS): New.
3354
3355 2002-03-31  Richard Henderson  <rth@redhat.com>
3356
3357         * libgcc2.c (__bb_exit_func): Make static.
3358
3359         * config/alpha/alpha.md (trap): New.
3360
3361 2002-03-31  Richard Henderson  <rth@redhat.com>
3362
3363         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
3364         promoted argument types; build trap.
3365         (expand_builtin_trap): New.
3366         (expand_builtin): Use it.
3367         * stmt.c (expand_nl_goto_receivers): Likewise.
3368         * expr.h (expand_builtin_trap): Declare.
3369         * libfuncs.h (LTI_abort, abort_libfunc): New.
3370         * optabs.c (init_optabs): Init abort_libfunc.
3371
3372 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3373
3374         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
3375         (LINK_COMMAND_SPEC): ... from here.
3376         (init_gcc_specs): Duplicate it here too, omitting
3377         shared_name in the second copy.
3378         (init_spec): Test for duplicate
3379         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
3380
3381 2002-03-30  David S. Miller  <davem@redhat.com>
3382
3383         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3384         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
3385
3386 2002-03-30  Roger Sayle <roger@eyesopen.com>
3387             Richard Henderson  <rth@redhat.com>
3388
3389         * regmove.c (combine_stack_adjustments_for_block): Avoid
3390         emitting a stack adjustment of zero bytes.  Let delete_insn
3391         update bb->head.
3392
3393 2002-03-30  Richard Henderson  <rth@redhat.com>
3394
3395         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
3396         (sparc_emitting_epilogue): New.
3397         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
3398         * config/sparc/sparc-protos.h: Update.
3399         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
3400         (TARGET_SWITCHES): Update.
3401         * config/sparc/sparc.md (return): Remove.
3402         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
3403         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
3404         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
3405         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
3406         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
3407         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
3408         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
3409         Remove MASK_EPILOGUE.
3410         * doc/invoke.texi: Update.
3411
3412 2002-03-30  Daniel Berlin  <dan@dberlin.org>
3413
3414         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
3415         CPP will start the file for us.
3416
3417 2002-03-30  Richard Henderson  <rth@redhat.com>
3418
3419         PR target/5446
3420         * config/ia64/ia64.c (group_barrier_needed_p): Special case
3421         prologue_allocate_stack.
3422         (ia64_single_set): Use insn codes for recognition of special
3423         cases, not rtl matching.
3424         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
3425
3426 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
3427
3428         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
3429
3430 2002-03-30  Richard Henderson  <rth@redhat.com>
3431
3432         PR target/6032
3433         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
3434         or -fomit-frame-pointer with profiling.
3435         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3436         (FUNCTION_PROFILER): Do nothing.
3437         (PROFILE_HOOK): New.
3438         * config/sparc/sparc.c (sparc_override_options): Don't check
3439         code models for profiling.
3440         (sparc_function_profiler): Remove.
3441         (sparc_profile_hook): New.
3442         * config/sparc/sparc-protos.h: Update.
3443
3444 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
3445
3446         PR optimization/6086
3447         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
3448         of SUBREG of volatile MEM or because the MEM was mode dependent,
3449         return CLOBBER instead of unmodified SUBREG.
3450
3451 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
3452
3453         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
3454         when not optimizing.
3455
3456         * toplev.c (rest_of_compilation): Cann mark_constant_function
3457         only when optimizing.
3458
3459         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
3460         are NULL.
3461
3462         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
3463         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
3464         (try_optimize_cfg): clear all AUX fields.
3465
3466         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
3467         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
3468         (ix86_address_cost): Be prepared for SUBREGed registers.
3469         (legitimate_address_p): Accept SUBREGed registers.
3470
3471 2002-03-29  Richard Henderson  <rth@redhat.com>
3472
3473         PR target/5672
3474         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
3475
3476 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3477
3478         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
3479         for aggregate and TFmode types.
3480
3481 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3482
3483         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
3484
3485 2002-03-29  Richard Henderson  <rth@redhat.com>
3486
3487         PR target/5886
3488         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
3489         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
3490
3491 2002-03-29  Richard Henderson  <rth@redhat.com>
3492
3493         PR target/6041
3494         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
3495         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
3496         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
3497         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
3498         conditional.
3499         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
3500
3501 2002-03-29  Dale Johannesen <dalej@apple.com>
3502
3503         * loop.c (combine_movables): Do allow combination of pseudos.
3504
3505 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
3506
3507         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
3508         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
3509         No functional change except ...
3510         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
3511         * doc/install.texi (*-*-freebsd*): Document port configuration.
3512
3513 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3514
3515         * Makefile.in (convert.o, calls.o, expmed.o): Update.
3516         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
3517         Use new hooks.
3518         * builtin-types.def (BT_PTRMODE): Update.
3519         * c-common.c (type_for_size): Rename c_common_type_for_size.
3520         (type_for_mode): Similarly.
3521         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
3522         Use new hook.
3523         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
3524         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
3525         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
3526         Redefine.
3527         * c-typeck.c (common_type, comptypes, default_conversion):
3528         Use new hooks.
3529         * calls.c: Include langhooks.h.
3530         (emit_library_call_value_1): Use new hooks.  Avoid redundant
3531         calls.
3532         * convert.c: Include langhooks.h
3533         (convert_to_pointer, convert_to_integer): Use new hooks.
3534         * except.c (init_eh): Similarly.
3535         * expmed.c: Include langhooks.h.
3536         (expand_mult_add): Use new hooks.
3537         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
3538         try_casesi): Similarly.
3539         * fold-const.c (optimize_bit_field_compare, make_range,
3540         decode_field_reference, fold_truthop, fold): Similarly.
3541         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
3542         put_var_into_stack): Similarly.
3543         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
3544         LANG_HOOKS_TYPE_FOR_SIZE): New.
3545         (LANG_HOOKS_TYPES_INITIALIZER): Update.
3546         * langhooks.h (lang_hooks_for_types): New hooks.
3547         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
3548         * tree.c (get_unwidened, get_narrower): Similarly.
3549         * tree.h (type_for_mode, type_for_size): Remove.
3550         * varasm.c (force_const_mem): Use new hooks.
3551         * utils2.c (nonbinary_modular_operation): Update.
3552 objc:
3553         * objc-act.c (handle_impent): Update.
3554         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
3555         Redefine.
3556
3557 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
3558
3559         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
3560         * config/ia64/ia64.c (basereg_operand): New.
3561         * config/ia64/ia64-protos.h (basereg_operand): Declare.
3562         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
3563
3564 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3565
3566         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
3567         unwind information when frame_pointer_needed.
3568         (mmix_assemble_integer): Tweak wording in comment.
3569
3570 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3571
3572         * Makefile.in (except.o): Update.
3573         * except.c: Include langhooks.h.
3574         (init_eh): Use langhook.
3575         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
3576         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
3577         (LANG_HOOKS_INITIALIZER): Update.
3578         * langhooks.h (lang_hooks_for_types): New.
3579         (struct lang_hooks): Add it.
3580         * tree.c (make_lang_type_fn, make_lang_type): Remove.
3581         * tree.h (make_lang_type_fn, make_lang_type): Remove.
3582 config:
3583         * alpha/alpha.c: Include langhooks.h.
3584         (alpha_build_va_list): Use langhook.
3585         * d30v/d30v.c: Include langhooks.h.
3586         (d30v_build_va_list): Use langhook.
3587         * i386/i386.c: Include langhooks.h.
3588         (ix86_build_va_list): Use langhook.
3589         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
3590         * s390/s390.c: Include langhooks.h.
3591         (s390_build_va_list): Use langhook.
3592         * stormy16/stormy16.c: Include langhooks.h.
3593         (stormy16_build_va_list): Use langhook.
3594
3595 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3596
3597         PR c++/5964
3598         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
3599         attributes.
3600         (length): Compute variable length for branches/calls/jumps here.
3601         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
3602         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
3603         define branch_type attribute.
3604         (divsi3_sp32): Maximum length is 6 not 7.
3605         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
3606         call_address_untyped_struct_value_sp32,
3607         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
3608         * config/sparc/sparc.c (empty_delay_slot): New function.
3609         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
3610         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
3611
3612 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3613
3614         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
3615         nonzero_bits if not needed.
3616         (nonzero_bits) [XOR]: Likewise.
3617         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
3618         reg_last_set_mode and mode are both MODE_INT, but not equal.
3619         (record_value_for_reg): Compute reg_last_set_nonzero_bits
3620         in nonzero_bits_mode for MODE_INT modes.
3621
3622 2002-03-28  Richard Henderson  <rth@redhat.com>
3623
3624         PR target/5715
3625         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
3626         to GAS.  Correct drift between alternatives.
3627
3628 2002-03-28  Richard Henderson  <rth@redhat.com>
3629
3630         PR target/6087
3631         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
3632
3633 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
3634
3635         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
3636         emulation to the linker.
3637
3638 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
3639
3640         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
3641         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
3642
3643 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
3644
3645         * combine.c (simplify_and_const_int): Make sure to apply mask
3646         when force_to_mode returns a constant integer.  PR3311.
3647
3648 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3649
3650         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
3651
3652 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3653
3654         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
3655         and Objective-C Dialect Options.
3656
3657 2002-03-28  Richard Henderson  <rth@redhat.com>
3658
3659         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
3660         comparison should be done vs !=0 not >0 return code.  Tidy cases.
3661
3662 2002-03-28  Richard Henderson  <rth@redhat.com>
3663
3664         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
3665         on to c_expand_body.
3666         * c-tree.h (finish_function): Update decl.
3667         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
3668
3669 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
3670
3671         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
3672
3673 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
3674
3675         * rtlanal.c: Include flags.h
3676         (may_trap_p): Do not mark FP operations if trapping
3677         if !flag_trapping_math
3678         * Makefile.in (rtlanal.o): Add dependency on flag.h
3679         * ifcvt.c (noce_operand_ok): Avoid the lameness.
3680
3681 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
3682
3683         * mips.md: Use dconst1, not 1.0, as first argument of
3684         REAL_VALUE_LDEXP.  Don't use union real_extract.
3685
3686 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
3687
3688         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
3689         rather than $target.  Heed program_prefix and
3690         program_transform_name.  Search for gas in cross-compiler case too.
3691         "test -x" rather than "test -f".
3692         (gcc_cv_ld): Likewise.
3693         (gcc_cv_nm): Heed program_prefix and program_transform_name.
3694         (gcc_cv_objdump): Likewise.
3695         * configure: Regenerate.
3696
3697 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3698
3699         * Makefile.in (attribs.o): Update.
3700         * attribs.c: Include langhooks.h.
3701         (decl_attributes): Use langhook.
3702         * c-decl.c (insert_default_attributes): Rename.
3703         * c-tree.h (c_insert_default_attributes): New.
3704         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
3705         (LANG_HOOKS_INITIALIZER): Update.
3706         * langhooks.h (struct lang_hooks): New hook.
3707         * tree.h (insert_default_attributes): Remove.
3708 objc:
3709         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
3710
3711 2002-03-27  Andreas Schwab  <schwab@suse.de>
3712
3713         * config/i386/i386.c (classify_argument): Also check for
3714         QUAL_UNION_TYPE.
3715
3716 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3717
3718         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
3719         any more.
3720
3721 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
3722
3723         * i960.md (ret): Set PC.
3724         (nonlocal_goto): Fix expander.
3725         * builtins.c (epxand_builin_longjmp): Check that we've emitted
3726         some jump or call.
3727
3728 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
3729
3730         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
3731         of libcall regions.
3732
3733 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3734
3735         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
3736         assigning to BLOCK_FOR_INSN directly.
3737
3738 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
3739
3740         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
3741
3742 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3743
3744         * c-common.c (c_expand_expr): Fix prototype.
3745         * c-common.h (c_expand_expr): Always declare, update.
3746         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3747         * c-objc-common.c (c_objc_common_init): No global hook.
3748         * expr.c (expand_expr): Use langhook.
3749         * expr.h (enum expand_modifier): Conditionally declare.
3750         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
3751         (LANG_HOOKS_INITIALIZER): Update.
3752         * langhooks.c (lhd_expand_expr): New.
3753         * langhooks.h (struct lang_hooks): New hook.
3754         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
3755         (lang_independent_init): Don't default hook.
3756 objc:
3757         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3758
3759 2002-03-27  Richard Henderson  <rth@redhat.com>
3760
3761         PR target/6054
3762         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
3763         TARGET_CONST_GP.  Simplify conditions.
3764
3765 2002-03-27  Richard Henderson  <rth@redhat.com>
3766
3767         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
3768         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
3769         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
3770
3771 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
3772
3773         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
3774         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
3775         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
3776         Remove unnecessary masks.
3777         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
3778         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
3779         -mwindows, -mdll switches and their negations.
3780
3781 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3782
3783         * gcc-common.c (lang_mark_false_label_stack): Remove.
3784         * ggc.h (lang_mark_false_label_stack): Similarly.
3785
3786 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3787
3788         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
3789
3790         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
3791         or __rtems_ is defined.
3792
3793 2002-03-26  Richard Henderson  <rth@redhat.com>
3794
3795         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
3796         if a non-trivial load was emitted.
3797         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
3798         in high+extra+low case.
3799
3800 2002-03-26  Richard Henderson  <rth@redhat.com>
3801
3802         * config.gcc (sparc*-solaris): Use float_format=sparc.
3803
3804 2002-03-26  Richard Henderson  <rth@redhat.com>
3805
3806         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
3807         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
3808         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
3809         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
3810         (WINT_TYPE_SIZE): Fix at 32.
3811
3812 2002-03-26  Richard Henderson  <rth@redhat.com>
3813
3814         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
3815         until after eh landing pad generation.
3816         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
3817         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
3818
3819 2002-03-26  Richard Henderson  <rth@redhat.com>
3820
3821         * expr.h (ADD_PARM_SIZE): One more convert for INC.
3822
3823 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
3824
3825         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
3826         and warning switches.
3827         (cc1_options):  Likewise.
3828
3829 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
3830
3831         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
3832         Restore more of the signal context.  Set no_reg_stack_frame.
3833         * config/ia64/unwind-ia64.c (unw_state_record):
3834         Add no_reg_stack_frame, comments.
3835         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
3836         (uw_update_context): Adjust bsp when unwinding from leaf,
3837         but not signal frame.
3838
3839 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
3840
3841         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
3842
3843 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3844
3845         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
3846
3847 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3848
3849         PR target/5621
3850         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
3851         "Add a pool_range attribute", which was lost during the ARM/Thumb
3852         merge.
3853
3854 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
3855
3856         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
3857         a register into the MAC16 accumulator.
3858
3859 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
3860
3861         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
3862         (Warning Options): Document -Wswitch-enum.
3863         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
3864         -Wswitch.
3865         (warn_switch_enum): Define variables.
3866         * flags.h (warn_switch_enum): Declare variables.
3867         * stmt.c (expand_end_case_type): When warn_switch_enum /
3868         -Wswitch-enum, perform switch checks.
3869         Fix PR c/5044.
3870
3871 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
3872
3873         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
3874         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
3875         (reload_muladdsi_compare0_scratch): Delete.
3876
3877 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
3878
3879         * doc/install.texi (*-*-freebsd*): Update.
3880
3881 2002-03-26  Richard Henderson  <rth@redhat.com>
3882
3883         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
3884         (SUB_PARM_SIZE): Cast DEC to ssizetype.
3885
3886         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
3887         types from the normal argument frame.
3888
3889         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
3890         variable sized objects by reference.
3891         (sparc_va_arg): Receive them by reference too.
3892
3893 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
3894
3895         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
3896         code to not restoring global registers.
3897
3898 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
3899
3900         * Makefile.in (ggc-common.o): Update.
3901         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
3902         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3903         * c-tree.h (c_mark_tree): New.
3904         * ggc-common.c: Include langhooks.h.
3905         (gcc_mark_trees): Use new langhook.
3906         * ggc-callbacks.c: Delete file.
3907         * ggc.h (lang_mark_tree): Remove.
3908         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
3909         (LANG_HOOKS_INITIALIZER): Update.
3910         * langhooks.h (struct lang_hooks): New hook.
3911 objc:
3912         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3913
3914 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3915
3916         * doc/cpp.texi: Exclude entire Top node from printed manual.
3917         Move option index after directive index.  Insert page breaks
3918         before GFDL and concept index.  Index environment variables
3919         with command line options.
3920         * doc/cppenv.texi: Use @vtable for environment variable list.
3921         Add paragraph explaining semantics of empty elements in path
3922         variables.  Exclude a cross-reference to Fishkill from the
3923         manpage.  Remove an unnecessary cross-reference of the entry
3924         right above the referer.  Don't use @anchor in text that goes
3925         into manpage.
3926         * doc/cppopts.texi: Cross-reference the environment variables
3927         section, not the specific environment variable, for consistency.
3928
3929 2002-03-25  Richard Henderson  <rth@redhat.com>
3930
3931         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
3932         anywhere in the block.  Don't refer to insns that have been
3933         removed from the chain.  Iterate backward through the new insns.
3934         Don't refer to edges that have been removed.
3935
3936 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
3937
3938         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
3939         test for overflow of constant.
3940
3941 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
3942
3943         PR target/2623
3944         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
3945         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
3946         these patterns on arm_archv4.
3947
3948 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
3949
3950         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
3951         int".
3952
3953 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
3954
3955         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
3956         float_handled, float_handler, float_signal, set_float_handler,
3957         and do_float_handler.  Set handler for SIGFPE to crash_signal.
3958         * toplev.h: Don't prototype do_float_handler.
3959
3960         * c-lex.c: Fold parse_float into lex_number.  Make warning
3961         about portability of hex float constants more informative, and
3962         don't issue it on top of a syntax error.
3963         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
3964         their callers.
3965         * real.h: Define REAL_VALUE_ABS here...
3966         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
3967         simplify_unary_real, simplify_binary_real, and
3968         simplify_binary_is2orm1 into their callers.
3969         * tree.c: Fold build_real_from_int_cst_1 into caller.
3970
3971         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
3972
3973         * tsystem.h: Include float.h here...
3974         * libgcc2.c: ... not here.
3975
3976 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
3977
3978         Fixes for: PR bootstrap/3591, target/5676
3979         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
3980         defined.  Do not disable exceptions or rtti.
3981         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
3982         mcore.h.  Disable exceptions and rtti, since they are not
3983         supported by EPOC.
3984
3985 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3986
3987         * c-decl.c (maybe_build_cleanup): Remove.
3988         * expr.c (expand_expr): Use langhook.
3989         * langhooks-def.h (lhd_return_null_tree,
3990         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
3991         (LANGHOOKS_INITIALIZER): Update.
3992         * langhooks.c (lhd_return_null_tree): New.
3993         * langhooks.h (struct lang_hooks): New hook.
3994         * tree-inline.c (initialize_inlined_parameters): Use langhook.
3995         * tree.h (maybe_build_cleanup): Remove.
3996
3997 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
3998
3999         * regrename.c (build_def_use): Move recog_memoized
4000         before extract_insn.
4001
4002 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4003
4004         PR target/6043
4005         * expr.c (emit_group_store): Handle storing into CONCAT.
4006
4007 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4008
4009         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
4010         corresponding MATCH_DUP.
4011
4012 2002-03-24  Richard Henderson  <rth@redhat.com>
4013
4014         * unroll.c (unroll_loop): Zero label_map.
4015
4016         * gcse.c: Include except.h.
4017         * Makefile.in (gcse.o): Update.
4018
4019 2002-03-24  Richard Henderson  <rth@redhat.com>
4020
4021         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
4022         Do resolve_unique_section before shared data clause.
4023
4024 2002-03-24  Richard Henderson  <rth@redhat.com>
4025
4026         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
4027
4028 2002-03-24  Richard Henderson  <rth@redhat.com>
4029
4030         * recog.c (peephole2_optimize): Split blocks when EH insns are
4031         generated in the middle of a block.  Do global life update if
4032         zapped EH edges.
4033
4034 2002-03-24  Richard Henderson  <rth@redhat.com>
4035
4036         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
4037
4038 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4039
4040         preprocessor/3951
4041         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
4042         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
4043         (init_dependency_output): Don't make no_output decision here.
4044
4045 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
4046
4047         * stmt.c (check_for_full_enumeration_handling): Remove tests of
4048         warn_switch.  Update description.
4049         (expand_end_case_type): Call check_for_full_enumeration_handling
4050         when warn_switch.
4051
4052 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4053
4054         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
4055         (m68hc11_split_move): Call it to see if the source and destination
4056         operands use the same direction auto inc/dec mode, otherwise make the
4057         source an offsetable memory operand and generate an add.
4058
4059 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4060
4061         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
4062         register for operand 2.
4063         ("*subsi3_zero_extendqi"): Likewise.
4064         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
4065         bits so that it is compatible with a pop.
4066         ("*andhi3_gen"): Likewise.
4067         ("xorhi3"): Likewise.
4068
4069 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4070
4071         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
4072         -pedantic here...
4073         (cpp_post_options): ... not here.
4074
4075 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4076             Aldy Hernandez  <aldyh@redhat.com>
4077
4078         Removal of separate preprocessor cpp0.
4079
4080         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
4081         cpp0, install-common): Update.
4082         * c-common.c (flag_preprocess_only): New.
4083         (c_common_init): Preprocess for -E.
4084         * c-common.h (flag_preprocess_only): New.
4085         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
4086         * c-objc-common.c (c_init_decl_processing): Exit quickly
4087         for NULL return from c_common_init.
4088         * cpplib.h (cpp_preprocess_file): New.
4089         * cppmain.c (main, general_init, pfile, progname): Remove.
4090         (do_preprocessing): Rename cpp_preprocess_file, don't call
4091         cpp_finish.  Don't close stdout here.
4092         (setup_callbacks): Update prototype.
4093         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
4094         Update.
4095         * tradcpp.c (main): Ignore -quiet.
4096 objc:
4097         * lang-specs.h (default_compilers): Preprocess with cc1obj.
4098
4099 2002-03-24  Richard Henderson  <rth@redhat.com>
4100
4101         PR optimization/5742
4102         * machmode.def: Add inner mode field to complex modes.
4103         * config/mips/mips.c (mips_function_value): Always define.  Add
4104         new argument to handle libcalls.
4105         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
4106         (FUNCTION_VALUE): Likewise.
4107         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
4108         * config/mips/mips-protos.h: Update.
4109
4110 2002-03-23  Richard Henderson  <rth@redhat.com>
4111
4112         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
4113         * config/sparc/sparc-protos.h: Update.
4114         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
4115
4116 2002-03-23  Richard Henderson  <rth@redhat.com>
4117
4118         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
4119         _start or _init begins the text segment.
4120
4121 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
4122
4123         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
4124         not HOST_WIDEST_INT.
4125         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
4126
4127 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
4128
4129         PR java/5489
4130         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
4131         operand argument to output_return_instruction.
4132         * arm.c (arm_print_operand, case 'd'): If the operand is
4133         const_true_rtx then just return.
4134         (arm_print_operand, case 'D'): If the operand is const_true_rtx
4135         then abort.
4136
4137 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
4138
4139         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
4140         (Warning Options): Document -Wswitch-default.
4141         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
4142         -Wswitch.
4143         (warn_switch_default): Define variable.
4144         (warn_switch): Update comment.
4145         * flags.h (warn_switch_default): Declare variable.
4146         (warn_switch): Update comment.
4147         * stmt.c (expand_end_case): Check for and, when
4148         warn_switch_no_default, warn of a missing default case.
4149
4150 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
4151
4152         * real.h (N): Special case 128 bit doubles.
4153
4154         * combine.c (simplify_comparison): When widening modes, ignore
4155         sign extension on CONST_INTs.
4156
4157 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4158
4159         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
4160         passed to adjust_address.  Fix comment formatting.
4161
4162
4163 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
4164
4165         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
4166         Always make REAL_VALUE_TYPE a struct containing an array of
4167         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
4168         big it is.  Don't declare or use union real_extract.
4169
4170         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
4171         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
4172         (print_operand), config/arm/arm.c (output_move_double),
4173         config/arm/arm.md (consttable_4, consttable_8),
4174         config/romp/romp.c (output_fpops), config/s390/s390.h
4175         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
4176         (xtensa_output_literal): Don't use union real_extract.
4177
4178         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
4179         (sfmode_constant_to_ulong), config/ns32k/merlin.h
4180         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
4181         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
4182         (PRINT_OPERAND): Don't use local version of union
4183         real_extract.
4184
4185         * config/convex/convex.c (check_float_value), config/vax/vax.c
4186         (vax_float_literal), config/m88k/m88k.md (divdf3),
4187         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
4188         config/pdp11/pdp11.c (output_move_quad): Don't do host
4189         arithmetic on target floating point quantities.
4190
4191         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
4192         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
4193
4194         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
4195         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
4196
4197         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
4198         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
4199         INFINITY.
4200         * print-rtl.c (print_rtx): Disable code which needs
4201         floating-point emulator.
4202         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
4203         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
4204         depending on HOST_FLOAT_FORMAT to be defined properly.
4205
4206         * config/1750a/1750a.c (get_double, float_label): Delete.
4207         (print_operand): Delete huge commented-out chunk.  Use
4208         REAL_VALUE_TO_DECIMAL.
4209         * config/1750a/1750a-protos.h: Delete prototypes of deleted
4210         functions.
4211         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
4212         IEEE_FLOAT_FORMAT.
4213         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
4214         Use REAL_VALUE_TO_DECIMAL as ELF version does.
4215         * config/m88k/m88k.c (real_power_of_2_operand,
4216         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
4217         real_extract out of the union; run the input through
4218         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
4219         from that into the union.
4220         * config/pdp11/pdp11.c (output_move_double): Rearrange
4221         parentheses to make automatic indenter happy.
4222
4223         * doc/tm.texi (Cross-compilation): Rename node to "Floating
4224         Point" and rewrite to describe current situation.  Also adjust
4225         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
4226         match code.
4227         * doc/rtl.texi: Adjust cross reference.
4228
4229 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4230
4231         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
4232         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
4233         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
4234         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
4235         prevent use of sp as a reload register.
4236         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
4237         non_acc_reg_operand.
4238         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
4239         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
4240         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
4241         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
4242
4243 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4244
4245         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
4246         * cpplex.c (unterminated): Delete.
4247         (parse_string): No string literal may extend over multiple
4248         lines.  Suppress the error when preprocessing assembly.
4249         * cppmain.c (scan_translation_unit): Strings are single-line.
4250
4251         * doc/cpp.texi: Update to match.
4252
4253 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4254
4255         PR optimization/5854
4256         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
4257         Shut up warnings.
4258         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
4259         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
4260         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
4261         const0 if scratch register was not allocated.
4262         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
4263         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
4264         with GEN_INT (...).
4265         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
4266         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
4267         with GEN_INT (...) everywhere.  Remove constraints in define_split
4268         patterns.
4269         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
4270         require scratch register for setting 0 into regs/non-pushable memory.
4271
4272 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4273
4274         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
4275         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
4276
4277 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
4278
4279         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
4280         * cppinit.c (cpp_create_reader):  On by default.
4281         (cpp_handle_option):  Handle -W[no-]endif-labels.
4282         (cpp_post_options):  Also enable if -pedantic.
4283         * cpplib.c (do_else):  Use it.
4284         (do_endif):  Likewise.
4285         * doc/cppopts.texi:  Document new option.
4286         * doc/invoke.texi:  Document new option.
4287
4288 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
4289
4290         * config/i386/i386.c, config/i386/i386.md: Change all occurences
4291         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
4292
4293 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4294
4295         * flow.c (calculate_global_regs_live): Clear aux fields of
4296         ENTRY and EXIT.
4297
4298 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4299
4300         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
4301         REG or MEM subregs, pass rtx * instead of rtx to it.
4302         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
4303         rtx * instead of rtx to alter_subreg.
4304         * config/m32r/m32r.c (gen_split_move_double): Likewise.
4305         * config/pj/pj.c (pj_output_rval): Likewise.
4306
4307 2002-03-22  Richard Henderson  <rth@redhat.com>
4308
4309         PR target/3177
4310         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
4311         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
4312         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
4313         (ia64_expand_prologue): Look at int_regs, not words, for number
4314         of incomming int regs.
4315
4316 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
4317
4318         * expr.c (expand_expr): A RESULT_DECL is part of a call.
4319
4320 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
4321
4322         * toplev.c (flag_loop_optimize, flag_crossjumping):
4323         New static variables.
4324         (rest_of_compilation): Conditionalize crossjumping and
4325         loop optimizer.
4326         (parse_options_and_default_flags): Default loop_optimize and
4327         crossjumping.
4328         (lang_independent_options): Add -fcrossjumping and -floop-optimize
4329         * invoke.texi (crossjumping, loop-optimize): Document.
4330
4331 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4332
4333         * real.c (eiisneg): Move outside #ifdef NANS.
4334
4335 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4336
4337         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
4338         frequencies match; avoid match on different loop depths.
4339         (try_crossjump_to_bb): Kill tests that no longer brings time
4340         savings.
4341         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
4342         updating code.
4343         (split_edge): Likewise.
4344
4345         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
4346         variable.
4347
4348         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
4349         * cfgrtl.c: Include insn-config.h
4350         (split_block) Dirtify block in presence of conditional execution
4351
4352 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4353
4354         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
4355         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
4356         (function_arg): Constify CUMULATIVE_ARGS.
4357         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
4358         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
4359         (UNITS_PER_DOUBLE): New macro.
4360         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
4361         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
4362         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
4363         fp_regs and stack_words.
4364         (EABI_FLOAT_VARARGS_P): New macro.
4365         * config/mips/mips.c (struct mips_arg_info): New.
4366         (mips_arg_info): New function.
4367         (function_arg_advance): Use it.  Add adjustment instructions here
4368         rather than in function_arg.
4369         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
4370         for VOIDmode at the beginning of the function.
4371         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
4372         (function_arg_pass_by_reference): Likewise.
4373         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
4374         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
4375         (mips_va_start): Likewise.  Use the new stack_words field of
4376         CUMULATIVE_ARGS to set up overflow area.  Reformat.
4377         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
4378         doubles and other types, aligning the overflow pointer for non-doubles
4379         too.  Remove some code duplication.  Replace hard-coded constants.
4380
4381 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4382
4383         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
4384         (CLASS_UNITS): Undefine.
4385         (CLASS_MAX_NREGS): Use FP_INC.
4386         * config/mips/mips.c (compute_frame_size): Likewise.
4387         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
4388
4389 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4390
4391         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
4392         prototype, and handle lexing numbers and identifiers.
4393         (parse_identifier): Update to new form of parse_slow.
4394         (parse_number): Fast path only, use parse_slow otherwise.
4395         (_cpp_lex_direct): Update calls to parse_number.
4396
4397 2002-03-21  DJ Delorie  <dj@redhat.com>
4398
4399         * bb-reorder.c (make_reorder_chain_1): Protect against
4400         when redundant edges are omitted.
4401         * predict.c (dump_prediction): Likewise.
4402
4403 2002-03-21  Richard Henderson  <rth@redhat.com>
4404
4405         PR target/5996
4406         * fixinc/inclhack.def (solaris_stdio_tag): New.
4407         * fixinc/fixincl.x: Regenerate.
4408
4409 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4410
4411         PR c/5597
4412         * c-typeck.c (process_init_element): Flag non-static
4413         initialization of a flexible array member as illegal.
4414
4415 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
4416
4417         * config/rs6000/t-linux64: New.
4418         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
4419         t-ppccomm.  Use t-rs6000 and t-linux64.
4420         (powerpc64-*-gnu* <tmake_file>): Likewise.
4421         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
4422         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
4423         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
4424
4425 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
4426
4427         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
4428         flag_really_no_inline instead of optimize == 0.
4429
4430         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
4431
4432         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
4433
4434         * flags.h (flag_really_no_inline): New.
4435
4436         * c-common.c (c_common_post_options): Initialize
4437         flag_really_no_inline.
4438
4439         * toplev.c (flag_really_no_inline): New.
4440
4441 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4442
4443         * config/avr/avr.md (length): Fix length computation for
4444         conditional branches.
4445
4446 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4447
4448         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
4449         sdbout.o, profile.o): Update.
4450         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
4451         langhook.
4452         * c-common.h (gettags): Move here from tree.h.
4453         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
4454         insert_block, getdecls, kept_level_p, global_bindings_p): New.
4455         * dbxout.c (dbxout_init): Use getdecls langhook.
4456         * expr.c (expand_expr): Use insert_block langhook.
4457         * fold-const.c: Include langhooks.h.
4458         (fold_range_test, fold_binary_op_with_conditional_arg,
4459         fold): Use global_bindings_p langhook.
4460         * integrate.c (expand_inline_function): Use insert_block langhook.
4461         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
4462         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
4463         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
4464         LANG_HOOKS_GETDECLS): New.
4465         (LANG_HOOKS_INITIALIZER): Update.
4466         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
4467         langhook.
4468         * langhooks.h (struct lang_hooks_for_decls): New.
4469         (struct lang_hooks): Update.
4470         * profile.c: Include langhooks.h.
4471         (output_func_start_profiler): Use new langhooks.
4472         * sdbout.c: Include langhooks.h.
4473         (sdbout_init, sdbout_finish): Use getdecls langhook.
4474         * stmt.c: Include langhooks.h.
4475         (expand_fixup, fixup_gotos): Use new langhooks.
4476         * stor-layout.c: Include langhooks.h.
4477         (variable_size): Use global_bindings_p langhook.
4478         * toplev.c (compile_file): Use getdecls langhook.
4479         * tree-inline.c (remap_block): Use insert_block langhook.
4480         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
4481         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
4482
4483 2002-03-21  Richard Henderson  <rth@redhat.com>
4484
4485         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
4486         constants in .data when -fpic.
4487
4488 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4489
4490         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
4491         where appropriate.
4492
4493 2002-03-21  Tom Tromey  <tromey@redhat.com>
4494
4495         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
4496
4497 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4498
4499         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
4500
4501         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
4502
4503 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4504             Richard Henderson  <rth@redhat.com>
4505
4506         PR c/5354
4507         * c-common.c (c_expand_expr): Preserve result of a statement
4508         expression if needed.
4509
4510 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4511
4512         PR bootstrap/4195
4513         * genrecog.c (maybe_both_true_mode): Remove.
4514         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
4515         * machmode.def (Pmode): Likewise.
4516
4517 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
4518
4519         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
4520         (nonlocal_mentioned_p_1): New function.
4521         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
4522         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
4523         (mark_constant_function): Recognize pure functions.
4524         * rtl.h (global_reg_mentioned_p): New prototype.
4525         * rtlanal.c (global_reg_mentioned_p,
4526         global_reg_mentioned_p_1): New function.
4527
4528 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4529
4530         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
4531         UNIX assert.h.
4532         * fixinc/fixincl.x: Regenerate.
4533
4534 2002-03-20  Jason Merrill  <jason@redhat.com>
4535
4536         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
4537
4538 2002-03-20  Michael Meissner  <meissner@redhat.com>
4539
4540         * doc/invoke.texi (Optimize Options): Document that -O2 sets
4541         -fstrict-aliasing.
4542
4543 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4544
4545         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
4546         ".literal_position" directive before the constant pool.
4547
4548 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4549
4550         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
4551         Add Craig Rodrigues.
4552         Add Brad Lucier to testers.
4553
4554 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4555
4556         PR target/4792
4557         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
4558         to if_then_else.
4559         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
4560         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
4561         instead of insn_extract.
4562
4563 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4564
4565         PR bootstrap/4192
4566         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
4567
4568         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
4569         stmt if some case has been output.
4570
4571 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4572
4573         PR c/5972
4574         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
4575         movsfcc_1, movdfcc_1): Add %O2.
4576         * config/i386/i386.c (print_operand): Handle %ON.
4577         Print . before float condition codes in Sun as cmov syntax.
4578         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
4579         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
4580         no longer true.
4581
4582 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
4583
4584         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
4585         return instruction if PC was popped.
4586
4587 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4588
4589         * config/xtensa/xtensa.md: Remove unused type attributes.
4590         (adddi_carry, subddi_carry): Change type attribute to "multi".
4591
4592 2002-03-19  Dale Johannesen  <dalej@apple.com>
4593
4594         PR optimization/5999, middle-end/5731
4595         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
4596         multiplications by reciprocals.
4597
4598 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4599
4600         * Makefile.in: Update.
4601         * c-common.c: Include langhooks.h.
4602         (inline_forbidden_p): Use new hook.
4603         * diagnostic.c: Include langhooks.h.
4604         (format_with_decl, announce_function,
4605         default_print_error_function): Use new hook.
4606         * dwarf2out.c (dwarf2_name): Use new hook.
4607         * function.c: Include langhooks.h.
4608         (init_function_start): Use new hook.
4609         * langhooks-def.h (lhd_decl_printable_name): New.
4610         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
4611         (LANGHOOKS_INITIALIZER): Update.
4612         * langhooks.c (lhd_decl_printable_name): New.
4613         * langhooks.h (struct lang_hooks): New hook.
4614         * toplev.c (decl_name, decl_printable_name): Remove.
4615         (open_dump_file): Use new hook.
4616         (process_options): Remove old hook.
4617         * tree.h (decl_printable_name): Remove.
4618 objc:
4619         * objc-act.c (objc_init): Remove old hook.
4620         (objc_printable_name): Export.
4621         * objc-act.h (objc_printable_name): New.
4622         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
4623
4624 2002-03-19  Jim Blandy  <jimb@redhat.com>
4625
4626         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
4627         the start_source_file debug hook, not the current line number.
4628
4629 2002-03-19  Richard Henderson  <rth@redhat.com>
4630
4631         * flow.c (EH_USES): Provide default.
4632         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
4633         * doc/tm.texi (EH_USES): New.
4634
4635         * config/ia64/ia64.c (ia64_eh_uses): New.
4636         * config/ia64/ia64-protos.h: Update.
4637         * config/ia64/ia64.h (EH_USES): New.
4638
4639 2002-03-19  Richard Henderson  <rth@redhat.com>
4640
4641         * varasm.c (output_constant_def): Fix stupid typo.
4642
4643 2002-03-19  Richard Henderson  <rth@redhat.com>
4644
4645         PR 5879
4646         * except.c (current_function_has_exception_handlers): New.
4647         * except.h: Declare it.
4648         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
4649         Combine tests that disable all sibcalls for the function.
4650
4651 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
4652
4653         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
4654         for INTEGER_CST.
4655
4656 2002-03-19  Richard Henderson  <rth@redhat.com>
4657
4658         PR 5977, 5991
4659         * config/ia64/ia64.c: Revert 2002-03-01 patch.
4660         * config/ia64/ia64.h (INIT_EXPANDERS): New.
4661
4662 2002-03-19  Jim Blandy  <jimb@redhat.com>
4663
4664         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
4665         name, even if the replacement list contains no tokens, as required
4666         by Dwarf.
4667
4668 2002-03-19  Jason Merrill  <jason@redhat.com>
4669
4670         * varasm.c (globalize_decl): Get the name from the RTL, not
4671         DECL_ASSEMBLER_NAME.
4672
4673         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
4674
4675 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
4676
4677         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
4678         subdi_carry): Define.
4679
4680 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4681
4682         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
4683         about -fpic/-fPIC if extra_warnings set.
4684
4685 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4686
4687         * expr.c (expand_expr): Sign-extend CONST_INT generated from
4688         TREE_STRING_POINTER.
4689         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
4690
4691 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4692
4693         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
4694         in favor of SP if FRAME_POINTER_REQUIRED is false.
4695
4696 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
4697
4698         * emit-rtl.c (gen_int_mode): New function.
4699         * rtl.h: Prototype for it.
4700         * combine.c (make_extraction, simplify_comparison), expmed.c
4701         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
4702         (convert_modes, store_field), optabs.c (expand_fix),
4703         simplify-rtx.c (neg_const_int, simplify_unary_real),
4704
4705         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
4706         Use it instead of GEN_INT (trunc_int_for_mode (...)).
4707
4708 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
4709
4710         PR c/5656
4711         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
4712         convert_parm_for_inlining.
4713         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
4714         Define.
4715         * langhooks-def.h: Likewise.
4716         * objc/objc-lang.c: Likewise.
4717         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
4718         function.
4719         * tree-inline.c (initialize_inlined_parameters):
4720         Call convert_parm_for_inlining lang hook if needed.
4721         * c-typeck.c (c_convert_parm_for_inlining): New function.
4722         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
4723
4724 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
4725
4726         * calls.c (precompute_arguments): Do not assume that temporaries
4727         can be destroyed after expanding the argument.
4728         (expand_call): Likewise.
4729
4730 2002-03-15  Eric Christopher  <echristo@redhat.com>
4731
4732         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
4733         Fix register preference on last change.
4734         * config/mips/mips.c (mips_return_in_memory): New function.
4735         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
4736         * config/mips/mips-protos.h: Declare.
4737         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
4738         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
4739
4740 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
4741
4742         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
4743         a register too.
4744         (anddi3, iorsi3): Likewise.
4745
4746         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
4747         use %gprel for symbols that are going to be placed in linkonce
4748         sections.
4749
4750         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
4751         RETURN_ADDRESS_POINTER_REGNUM to $ra.
4752         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
4753         not needed.  Disregard leaf_function_p().
4754         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
4755         mips16 frame pointer.
4756         * config/mips/mips.md (store ra): Only to small SP offsets.
4757         2001-08-22  Graham Stott  <grahams@redhat.com>
4758         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
4759         return a REG rtx for the return address register.
4760
4761 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
4762
4763         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
4764         constant-pool addresses as "mode-dependent".
4765         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
4766
4767 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
4768
4769         PR target/5740
4770         * expr.c (emit_group_load): Use extract_bit_field if
4771         needed for CONCAT arguments.
4772
4773 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
4774
4775         PR target/4863
4776         * arm.md (tablejump): Make this a define_expand.  For PIC add the
4777         offset to the base of the table.
4778         (thumb_tablejump): Matcher for Thumb tablejump insn.
4779         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
4780         as the difference of two labels.
4781         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4782         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
4783         tables in the code.
4784         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
4785         * arm.c (get_jump_table_size): If the table is not in the text
4786         section, return zero.
4787
4788 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
4789
4790         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
4791         of gen_rtx_SUBREG.
4792         (arm_reload_out_hi): Use gen_lowpart instead of
4793         gen_rtx_SUBREG to access QImode components.
4794         * config/arm/arm.md: Disable zero_extend split for QImode
4795         subregs in BIG_ENDIAN mode.
4796         (storehi_bigend): Match use of least significant byte.
4797         (storeinthi): Remove extraneous SUBREG.
4798         Add missing construction of operands[2].
4799         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
4800         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
4801         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
4802
4803 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
4804
4805         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
4806         any_operand.
4807
4808 2002-03-17  Richard Henderson  <rth@redhat.com>
4809
4810         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
4811         explicitly.
4812
4813 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
4814
4815         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
4816         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
4817
4818 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4819
4820         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
4821
4822         * predict.c (estimate_bb_frequencies): Delete unused variables.
4823
4824 2002-03-17  Richard Henderson  <rth@redhat.com>
4825
4826         * config/ia64/ia64.c (ia64_attribute_table): Move before
4827         targetm definition.  Make static.
4828
4829 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4830
4831         * c-common.h (yyparse, c_common_parse_file): New.
4832         * c-lang.c: Include c-common.h.
4833         (LANG_HOOKS_PARSE_FILE): Redefine.
4834         * c-lex.c: Include c-common.h.
4835         (yyparse): Rename c_common_parse_file.  Call yyparse.
4836         * c-parse.in (yyparse): Remove macro.
4837         * c-tree.h (yyparse_1): Remove.
4838         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
4839         (LANG_HOOKS_INITIALIZER): Update.
4840         * langhooks.h (struct lang_hoooks): New hook parse_file.
4841         * toplev.c (compile_file): Use parse_file hook.
4842         * tree.h (yyparse): Remove.
4843         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
4844
4845 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
4846
4847         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
4848         float_truncate, not fix.
4849         ("*truncdfsf2_real"): Ditto.
4850         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
4851
4852         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
4853
4854 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
4855
4856         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
4857         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
4858         where appropriate.  Make the second reference to
4859         leaf_function_p a function call, as intended.  Reindented.
4860
4861         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
4862         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
4863
4864         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
4865         add register to non-constant into sp.
4866
4867         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
4868         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
4869         (mips16_gp_pseudo_rtx): Lose.
4870         (INIT_EXPANDERS): Deleted.
4871         * config/mips/mips.c (mips_init_machine_status): New.
4872         (mips_free_machine_status): New.
4873         (mips_mark_machine_status): New.
4874         (override_options): Set them.
4875         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
4876         (struct machine_function): ... new.  Replaced all references.
4877         (mips_add_gc_roots): Don't mark them.
4878         (embedded_pic_fnaddr_reg): New, extracted from...
4879         (embedded_pic_offset): ... here.
4880         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
4881         (movsi): Likewise.
4882
4883 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4884
4885         * cppinit.c: Revert -MD removal.
4886
4887 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4888
4889         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
4890         soft registers by default for 68HC12.
4891         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
4892         when compiling with -fomit-frame-pointer.
4893         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
4894         (expand_epilogue): Likewise.
4895         (m68hc11_gen_rotate): Use exg when rotating by 8.
4896
4897 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4898
4899         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
4900         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
4901         (splits): Remove unused add splits.
4902         ("*addhi3_68hc12"): Tune constraints.
4903         ("addhi_sp"): Try to use X instead of Y in all cases and if the
4904         constant fits in 8-bits and D is dead use abx/aby instructions.
4905         ("*addhi3"): Remove extern declaration of ix_reg.
4906         ("*subsi3"): Optimize and provide new split.
4907         ("subhi3"): Cleanup.
4908         ("*subhi3_sp"): Avoid saving X if we know it is dead.
4909         (arith splits): For 68hc12 save the address register on the stack
4910         and do the arithmetic operation with a pop.
4911
4912 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4913
4914         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
4915         allocating QImode in address registers.
4916         ("*movqi_m68hc11"): Likewise.
4917
4918 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
4919
4920         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
4921
4922 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4923
4924         * cppinit.c (print_help): Display -MD and -MMD.
4925         Don't display usage string.  Update assertion syntax and
4926         typo.
4927         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
4928         (cpp_handle_option): Update.
4929
4930 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
4931
4932         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
4933         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
4934         and define it so that regardless of target CPU size,
4935         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
4936         of "int" rather than "long."
4937
4938 2002-03-15  Richard Henderson  <rth@redhat.com>
4939
4940         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
4941         size as a tree.
4942
4943 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4944
4945         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
4946         ("tstqi" split): Avoid using memory for tstqi on address register.
4947         (splits): Remove constraints.
4948         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
4949         ("cmpdf", "cmpsf"): Remove since not used.
4950         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
4951         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
4952
4953 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4954
4955         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
4956         ("neghi2"): Tighten constraints.
4957         ("one_cmplsi2"): Optimize and simplify split.
4958         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
4959
4960 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4961
4962         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
4963         and split of AND operation to clear the upper bits.
4964         ("*logicalsi3_zextqi"): Likewise.
4965         ("*logicallhi3_zexthi_ashift8"): Likewise.
4966         ("*logicalsi3_silshr16"): Likewise.
4967         ("logicalsi3_silshl16"): Likewise.
4968         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
4969
4970 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4971
4972         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
4973         (m68hc11_indirect_p): New function.
4974         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
4975         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
4976         TARGET_M6812.
4977         (asm_print_register): Likewise.
4978         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
4979         (m68hc11_indirect_p): Declare.
4980         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
4981         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
4982         (TARGET_SWITCHES): New option -mrelax.
4983         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
4984         destination.
4985         ("iorsi3", "xorsi3"): Likewise.
4986         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
4987         ("*andhi3_mem"): New to handle destination in memory with bclr
4988         and a scratch register.
4989         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
4990         ("*andhi3_const"): New when operand2 is constant.
4991         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
4992         ("*andhi3_gen"): Cleanup of the old "andhi3".
4993         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
4994         ("xorqi3"): Update constraints.
4995
4996 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4997
4998         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
4999         for reg_equiv_memory_loc when the operand is a register that does
5000         not get a hard register (stack location).
5001         (tst_operand): After reload, accept all memory operand.
5002         (symbolic_memory_operand): Fix detection of symbolic references.
5003         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
5004         accept symbols and any constant.
5005
5006 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5007
5008         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
5009         note on the insn that sets the soft frame register.
5010         (must_parenthesize): ix and iy are also reserved names.
5011         (print_operand_address): One more place where parenthesis are required
5012         to avoid confusion with register names.
5013         (m68hc11_gen_movhi): Allow push of stack pointer.
5014         (m68hc11_check_z_replacement): Fix handling of parallel with a
5015         clobber.
5016         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
5017         the replacement register is.
5018         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
5019         and D8_REGS classes.
5020         (MODES_TIEABLE_P): All modes are tieable except QImode.
5021
5022 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5023
5024         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
5025         (___subdi3): Likewise.
5026         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
5027         (__map_data_section): Optimize 68hc11 case.
5028
5029 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5030
5031         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
5032         than a shift to avoid adding a register with itself.
5033         (m68hc11_memory_move_cost): Take into account NO_REGS.
5034         (m68hc11_register_move_cost): Update and use memory move cost
5035         for soft registers.
5036         (m68hc11_address_cost): Make cost of valid offset not 0 so that
5037         it gives more opportunities to cse to optimize.
5038         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
5039         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
5040
5041 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
5042
5043         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
5044         * c-common.def (CLEANUP_STMT): New tree node.
5045         * c-common.h (CLEANUP_DECL): New macro.
5046         (CLEANUP_EXPR): Likewise.
5047         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
5048         * expr.c (expand_expr): Tidy.
5049         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
5050         * tree-inline.c (initialize_inlined_parameters): Clean up
5051         new local variables.
5052
5053 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5054
5055         PR bootstrap/4128
5056         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
5057         before movrXX only, use reg_overlap_mentioned_p.
5058         Only special case NE if just one insn can be generated.
5059
5060 2002-03-15  Jason Merrill  <jason@redhat.com>
5061
5062         * varasm.c (assemble_variable): Call resolve_unique_section before
5063         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
5064         of error_mark_node.
5065
5066 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5067
5068         PR target/5170
5069         * arm.md (split pattern for thumb shiftable immediates): Add comment
5070         explaining non-obvious test.
5071
5072 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5073
5074         PR target/5712
5075         * arm.md (movaddr, movaddr_insn): Delete.
5076
5077 2002-03-15  Jason Merrill  <jason@redhat.com>
5078
5079         * toplev.c (wrapup_global_declarations): Clarify variable handling.
5080         -fkeep-static-consts doesn't apply to comdats.
5081
5082 2002-03-14  Richard Henderson  <rth@redhat.com>
5083
5084         * c-decl.c: Include c-pragma.h.
5085         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5086         (finish_function): Tidy.
5087         * c-pragma.c: Include c-common.h.
5088         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
5089         (handle_pragma_weak): Use them.
5090         (init_pragma): Register pending_weaks.
5091         * c-pragma.h (maybe_apply_pragma_weak): Declare.
5092         * print-tree.c (print_node): Print DECL_WEAK.
5093         * varasm.c (mark_weak_decls): Remove.
5094         (remove_from_pending_weak_list): Remove.
5095         (add_weak): Remove.
5096         (asm_emit_uninitialised): Call globalize_decl for weak commons.
5097         (weak_decls): Make a tree_list.
5098         (declare_weak): Cons weak_decls directly.
5099         (globalize_decl): Remove weak_decls elements directly.
5100         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
5101         symbols.  Don't pretend to handle aliases.
5102         (init_varasm_once): Update weak_decls registry.
5103         * Makefile.in: Update dependencies.
5104
5105 2002-03-14  Richard Henderson  <rth@redhat.com>
5106
5107         PR target/5312
5108         * config/ia64/ia64.c: Include tm_p.h last.
5109         (gen_nop_type): Remove duplicate definition.
5110         (cycle_end_fill_slots): Set sched_data for second L slot.
5111         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
5112         (nop_cycles_until): Fix typos.
5113
5114 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5115
5116         PR optimization/5891
5117         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
5118
5119 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
5120
5121         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
5122           descriptors correctly.
5123
5124 2002-03-14  Michael Meissner  <meissner@redhat.com>
5125
5126         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
5127         100, allowing MAX_UNROLLED_INSNS to be overridden.
5128
5129         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
5130         --param.
5131
5132         * unroll.c (params.h): Include.
5133         (MAX_UNROLLED_INSNS): Delete, now in params.h.
5134
5135         * doc/invoke.texi (--param max-unroll-insns): Document.
5136
5137         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
5138
5139 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5140
5141         * arm.md: Fix warnings about constraints in peepholes and splits.
5142
5143 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
5144
5145         * cpphash.h (struct lexer_state): Remove line_extension member.
5146         * cpplib.c (dequote_string, do_linemarker): New functions.
5147         (linemarker_dir): New data object.
5148         (DIRECTIVE_TABLE): No longer need to interpret #line in
5149         preprocessed source.  Delete obsolete comment about return
5150         values of handlers.
5151         (end_directive, directive_diagnostics, _cpp_handle_directive):
5152         Don't muck with line_extension.
5153         (directive_diagnostics): No need to issue warnings for
5154         linemarkers here.
5155         (_cpp_handle_directive): Issue warnings for linemarkers here,
5156         when appropriate.  Dispatch linemarkers to do_linemarker, not
5157         do_line.
5158         (do_line): Code to handle linemarkers split out to do_linemarker.
5159         Convert escape sequences in filename argument, both places.
5160
5161         * cppmacro.c (quote_string): Rename cpp_quote_string and
5162         export.  All callers changed.
5163         * cpplib.h (cpp_quote_string): Prototype.
5164         * cppmain.c (print_line): Call cpp_quote_string on to_file
5165         before printing it.
5166
5167         * doc/cpp.texi: Document that escapes are now interpreted in
5168         #line and in linemarkers, and that non-printing characters are
5169         converted to octal escapes when linemarkers are generated.
5170
5171 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
5172
5173         * emit-rtl.c (try_split): Use delete_insns.
5174         * recog.c (split_all_insns): Fix terminating condition.
5175
5176 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5177             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5178
5179         PR target/5828
5180         * arm.c (arm_output_epilogue): Fix floating-point register save
5181         adjustment when using a frame pointer.
5182
5183 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
5184
5185         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
5186         * config/mips/mips.c (compute_frame_size): Retrofit them here.
5187         (save_restore_insns, mips_expand_epilogue): And here.
5188         (build_mips16_call_stub): And here.
5189         (mips_function_value): Use the new macros to decide whether a single
5190         or complex float can be returned in floating-point registers.  Return
5191         a parallel rtx in the complex case.
5192
5193 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
5194
5195         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
5196         call after liveness analysis.
5197
5198         * recog.c (split_insn): Use delete_insn_and_edges.
5199
5200         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
5201         instructions to have branch prediction notes.
5202         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
5203
5204 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
5205
5206         * configure.in: Don't pass -Wno-long-long to a ADA compiler
5207         that doesn't support it.
5208         * configure: Regenerate.
5209
5210 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5211
5212         PR target/5626
5213         * config/sparc/sparc.md (normal_branch, inverted_branch,
5214         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5215         inverted_fp_branch): Adjust calls to output_cbranch.
5216         Set length attribute.
5217         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
5218         output_v9branch.  Set length attribute.
5219         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
5220         predicates.
5221         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
5222         (output_cbranch): Likewise.  Handle far branches.
5223         (output_v9branch): Handle far branches.
5224         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
5225         Adjust prototypes.
5226         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
5227         noov_compare64_op predicates.
5228
5229 2002-03-13  Jason Merrill  <jason@redhat.com>
5230
5231         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
5232         into the function and constify it.
5233         * gthr-dce.h, gthr-solaris.h: Likewise.
5234
5235 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
5236
5237         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
5238         * config/rs6000/rs6000.c (rs6000_va_arg): Use
5239         std_expand_builtin_va_arg if not ABI_V4.
5240
5241 2002-03-13  Jason Merrill  <jason@redhat.com>
5242
5243         * varasm.c (globalize_decl): New fn.
5244         (assemble_start_function): Use it.
5245         (asm_emit_uninitialized): Use it.
5246         (assemble_alias): Use it.
5247         (assemble_variable): Use it.
5248
5249 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
5250
5251         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
5252         2002-03-12 internal visibility change.
5253         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
5254         visibility into SYMBOL_REF_FLAG.
5255
5256 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
5257
5258         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
5259         VOIDmode operand.  Add compile-time optimization for constant results.
5260
5261 2002-03-12  Jason Merrill  <jason@redhat.com>
5262
5263         * c-typeck.c (convert_for_assignment): Don't allow conversions
5264         between pointers and references.  Only allow lvalues to convert to
5265         reference.
5266
5267 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
5268
5269         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
5270         before prologue, to avoid scheduling problems.
5271
5272 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5273
5274         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
5275         (ELIMINABLE_REGS): Add sfp->sp.
5276         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
5277
5278 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5279
5280         PR optimization/5892
5281         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
5282
5283 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5284
5285         * loop.c (basic_induction_var): Don't call convert_modes if mode
5286         classes are different.
5287
5288 2002-03-12  Richard Henderson  <rth@redhat.com>
5289
5290         PR optimization/5901
5291         * function.c (reposition_prologue_and_epilogue_notes): Position
5292         the markers after/before the last/first insn not deleted.
5293
5294 2002-03-12  Richard Henderson  <rth@redhat.com>
5295
5296         PR optimization/5878
5297         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
5298         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
5299         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5300
5301         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
5302         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
5303         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
5304
5305         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
5306         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
5307         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
5308         also.  Don't set it if not flag_pic.
5309         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
5310         to be INVALID_REGNUM when not used.
5311
5312 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
5313
5314         * expmed.c (store_bit_field): Reset alias set for memory.
5315         (extract_bit_field): Same.
5316
5317 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5318
5319         * c-common.c (c_tree_code_type, c_tree_code_length,
5320         c_tree_code_name, add_c_tree_codes): Delete.
5321         * c-common.h (add_c_tree_codes): Delete.
5322         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
5323         Define.
5324         * c-objc-common.c (c_objc_common_init): Don't call
5325         add_c_tree_codes, instead set lang_unsafe_for_reeval.
5326         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
5327         objc_tree_code_name, add_objc_tree_codes): Delete.
5328         (objc_init): Don't call add_objc_tree_codes.
5329         * objc/objc-lang.c (tree_code_type, tree_code_length,
5330         tree_code_name): Define.
5331         * toplev.c (lang_independent_init): Don't set
5332         tree_code_length[IDENTIFIER_NODE].
5333         * tree.c (tree_code_type, tree_code_length, tree_code_name):
5334         Delete definitions, moved to language front-ends.
5335         * tree.def (IDENTIFIER_NODE): Hardwire the length.
5336         * tree.h (tree_code_type, tree_code_length, tree_code_name):
5337         Const-ify.
5338         (tree_code_length): Change type to unsigned char.
5339
5340 2002-03-12  Richard Henderson  <rth@redhat.com>
5341
5342         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
5343         internal visibility change.
5344
5345 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5346
5347         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
5348         validize_mem() instead of change_address to avoid clobbering
5349         memory attributes.
5350
5351 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5352
5353         * c-lex.h (position_after_whitespace): Remove.
5354
5355 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
5356
5357         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
5358         (lex_string): Use unsigned char pointers.
5359
5360 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5361
5362         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
5363         is not a valid memory_operand.
5364
5365 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5366
5367         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
5368         * config/xtensa/lib1funcs.asm: Fix copyright to include
5369         special case for libgcc files.
5370         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
5371         (__divsi3): Likewise.
5372         (__umodsi3): Likewise.
5373         (__modsi3): Likewise.
5374         * config/xtensa/lib2funcs.S: Fix copyright to include
5375         special case for libgcc files.
5376
5377 2002-03-12  Tom Rix  <trix@redhat.com>
5378
5379         * collect2.c (resolve_lib_name): Move outside of
5380         OBJECT_FORMAT_COFF ifdef.
5381         (ignore_library): Same.
5382
5383 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5384
5385         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
5386
5387 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5388
5389         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
5390         to function_section before writing out the constant pool.
5391
5392 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
5393
5394         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
5395         zero_constant.
5396         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
5397
5398 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
5399
5400         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
5401         (adddi3): Likewise.
5402         (movdf): Likewise.
5403         (movdi): Likewise.
5404         (cmpsi splitter): Likewise.
5405         (modsi3): Fail if <= 0.
5406         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
5407         redundant test when HOST_BITS_PER_WIDE_INT != 32.
5408         (reg_or_sub_cint64_operand): Likewise.
5409         (num_insns_constant_wide): Optimize sign extension.
5410         (rs6000_legitimize_address): Likewise.
5411
5412 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5413
5414         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5415         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5416
5417 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5418
5419         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
5420         address calculation.
5421
5422 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5423
5424         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
5425         scratch register to DImode / TImode.
5426         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
5427         register used does not overlap the target.
5428
5429 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5430
5431         * Makefile.in (debug.o): Depend on debug.h.
5432         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
5433         * debug.c (do_nothing_debug_hooks): Likewise.
5434         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
5435         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
5436         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
5437         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
5438         * dwarfout.c (dwarf_debug_hooks): Likewise.
5439         * integrate.c (output_inline_function): Likewise.
5440         * objc/objc-act.c (synth_module_prologue): Likewise.
5441         * sdbout.c (sdb_debug_hooks): Likewise.
5442         * toplev.c (debug_hooks): Likewise.
5443         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5444
5445 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5446
5447         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
5448         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
5449         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
5450         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
5451         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
5452         * defaults.h (POINTER_SIZE): Define.
5453         * doc/tm.texi (POINTER_SIZE): Document default.
5454
5455 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5456
5457         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
5458
5459 2002-03-11  Richard Henderson  <rth@redhat.com>
5460
5461         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
5462         if rebuild_label_notes_after_reload.
5463
5464 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
5465
5466         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
5467         emit pic register load if "internal" visibility.
5468         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
5469         (cris_expand_builtin_va_arg): Do all computations on trees.
5470
5471 2002-03-11  Richard Henderson  <rth@redhat.com>
5472
5473         * rtlanal.c: Include recog.h.
5474         (keep_with_call_p): Fix thinko.
5475         * Makefile.in (rtlanal.o): Update dependencies.
5476
5477 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
5478
5479         * genflags.c (gen_insn): Use IS_VSPACE.
5480         * genoutput.c (output_insn_data): Likewise.
5481         (process_template): Likewise.
5482
5483 2002-03-11  Richard Henderson  <rth@redhat.com>
5484
5485         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
5486
5487 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5488
5489         * Makefile.in: Update.
5490         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
5491         Update documentation.
5492         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
5493         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
5494
5495 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
5496
5497         * Makefile.in: Give texi2pod its input file as a command line
5498         argument, not on stdin.
5499
5500 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
5501             Daniel Berlin  <dan@dberlin.org>
5502
5503         C++ alias analysis improvement.
5504         * alias.c (record_component_aliases): Record aliases for base
5505         classes too.
5506
5507 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5508
5509         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
5510
5511 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
5512
5513         * toplev.c (vms_fopen): Remove, not needed.
5514
5515         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
5516
5517         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
5518
5519         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
5520         for FP, already done later.
5521
5522         * toplev.c (debug_args): Add entry for VMS_DEBUG.
5523         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
5524
5525 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
5526
5527         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
5528         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
5529         LARGEST_EXPONENT_IS_NORMAL for the given mode.
5530         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
5531         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
5532         (ediv, emul, eldexp, esqrt): Likewise.
5533         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
5534         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
5535         (saturate): New function.
5536         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
5537         (make_nan): Use a saturation value instead of a NaN if
5538         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
5539         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
5540         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
5541         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
5542         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
5543         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
5544         !ROUND_TOWARDS_ZERO.
5545         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
5546         (ROUND_TOWARDS_ZERO): Document.
5547
5548 2002-03-11  Andreas Jaeger  <aj@suse.de>
5549
5550         * cfg.c (dump_flow_info): Remove unused variable.
5551
5552 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
5553
5554         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
5555         computations on trees.
5556
5557 2002-03-10  Richard Henderson  <rth@redhat.com>
5558
5559         PR 5693:
5560         * reload.c (copy_replacements_1): New.
5561         (copy_replacements): Use it to recurse through the rtx.
5562
5563 2002-03-10  Richard Henderson  <rth@redhat.com>
5564
5565         * loop.c (strength_reduce): Compute number of iterations as
5566         unsigned HOST_WIDE_INT.
5567
5568 2002-03-10  Richard Henderson  <rth@redhat.com>
5569
5570         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
5571         to move away from the end of the block.
5572
5573 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5574
5575         PR preprocessor/5899
5576         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
5577
5578 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5579
5580         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
5581
5582         * attribs.c (decl_attributes): Fix signed/unsigned warning.
5583
5584 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
5585
5586         * config/mmix/mmix.c: Improve comments.
5587         (mmix_target_asm_function_prologue): Drop variable
5588         empty_stack_frame.  Don't allocate unused slot above fp.
5589         (mmix_target_asm_function_epilogue): Mirror prologue changes.
5590         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
5591         brace in first column.
5592         (enum reg_class): Ditto.
5593         (FIRST_PARM_OFFSET): Now 0.
5594         (USER_LABEL_PREFIX): Remove #if 0:d definition.
5595
5596 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5597
5598         * combine.c (make_extraction): Fix error in last change.
5599
5600 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5601
5602         * c4x.c (c4x_fp_reglist): Const-ify.
5603         * cris.c (cris_print_operand): Likewise.
5604         * i386.c (ix86_va_arg): Likewise.
5605         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
5606         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
5607         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
5608         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
5609         * mcore.h (regno_reg_class): Likewise.
5610         * mips.c (gen_int_relational): Likewise.
5611         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
5612         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
5613         * pdp11.c (move_costs): Likewise.
5614         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
5615         * s390.c (s390_branch_condition_mnemonic, regclass_map):
5616         Likewise.
5617         * s390.h (regclass_map): Likewise.
5618         * sh.c (shift_amounts): Likewise.
5619         * sh.md (rotlsi3): Likewise.
5620
5621 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5622
5623         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
5624         (ne0+5): Use new clobber to generate proper shift pattern.
5625         Patch by Michael Matz <matz@kde.org>.
5626
5627 2002-03-09  Andreas Schwab  <schwab@suse.de>
5628
5629         * gcc.c (validate_all_switches): Also handle `%W{...}'.
5630
5631 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5632
5633         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
5634
5635 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
5636
5637         PR middle-end/5877
5638         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
5639         even for non-representable constants.
5640
5641 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5642
5643         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
5644         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
5645         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
5646         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
5647         (pop_function_context): Compute MAY_SHARE parameter for
5648         fixup_var_refs.
5649         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
5650         (gen_mem_addressof): Call fixup_var_refs with new parm.
5651
5652         * combine.c (make_extraction): Don't make extension of CONST_INT.
5653
5654 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5655
5656         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
5657         in o32 and o64 ABIs.
5658         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
5659         but getting fixed-size structs passed in registers regardless of
5660         padding in o32 and o64 ABIs.
5661
5662         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
5663         offset before loading address of argument passed by transparent
5664         reference.
5665
5666 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5667
5668         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
5669
5670 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5671
5672         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
5673         marker such that registers after it are saved.
5674
5675 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5676
5677         * sparc.c (arith_4096_operand): Fix error in last change.
5678
5679 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5680
5681         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
5682         defaults for MEABI.
5683
5684 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5685
5686         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
5687         vectors.
5688
5689 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5690
5691         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
5692
5693 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
5694
5695         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
5696         removed; fix return value.
5697         * combine.c (combine_instructions): Dirtify blocks where we failed to
5698         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
5699         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
5700
5701 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5702
5703         * gcse.c (insert_insn_end_bb): Fix typo in last change.
5704
5705 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
5706
5707         * recog.c (peephole2_optimize): Re-distribute EH edges.
5708
5709 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5710
5711         * expr.c (expand_expr): Use unsave lang hook.
5712         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
5713         (LANG_HOOKS_INITIALIZER): Update.
5714         * langhooks.h (struct lang_hooks): New hook unsave.
5715         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
5716         (unsave_expr_1): Remove unused lang_unsave_expr_now.
5717         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
5718         (unsave_expr_now): Remove.
5719         * tree.h (unsave_expr_now, lang_unsave,
5720         lang_unsave_expr_now): Remove.
5721         (lhd_unsave): New.
5722
5723 2002-03-08  Andreas Jaeger  <aj@suse.de>
5724
5725         * flow.c (propagate_block_delete_insn): Remove unused variable.
5726
5727 2002-03-08  Kazu Hirata  <kazu@hxi.com>
5728
5729         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
5730         insn length for memory load/store.
5731
5732 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5733
5734         * doc/install.texi (--with-libiconv-prefix): Document.
5735
5736 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
5737
5738         * doc/sourcebuild.texi: Fix typo.
5739
5740 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
5741
5742         PR c/3711
5743         * builtins.c (std_expand_builtin_va_arg): Do all computations on
5744         trees.
5745
5746 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5747
5748         * rtl.c (copy_most_rtx): Move from here ...
5749         * emit-rtl.c (copy_most_rtx): ... to here.
5750
5751 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5752
5753         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
5754         SUBTARGET_CPP_SIZE_SPEC.
5755         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
5756
5757         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
5758
5759 2002-03-07  Matt Hiller  <hiller@redhat.com>
5760
5761         * gensupport.c (first_dir_md_include): Renamed from include;
5762         change all references.
5763         (last_dir_md_include): Renamed from last_include; change all
5764         references.
5765         (init_md_reader): Unconditionally initialize base_dir whether or
5766         not filename is a relative path.
5767
5768 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
5769
5770         * config/fp-bit.c (_unord_f2): Compile it in even if
5771         US_SOFTWARE_GOFAST is enabled.
5772
5773         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
5774         NULL_RTX.  Set all HFmode operations as NULL_RTX.
5775         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
5776         NULL_RTX, try reversing the comparison and the operands.
5777
5778 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
5779
5780         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
5781         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
5782         and MATCH_OP_DUP.
5783
5784 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
5785
5786         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
5787
5788 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
5789
5790         * basic-block.h (fixup_abnormal_edges): Declare.
5791         * reload1.c (fixup_abnormal_edges): New function.
5792         * reg-stack.c (convert_regs): Use it.
5793
5794         * gcse.c (insert_insn_end_bb): Handle trapping insns.
5795
5796         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
5797
5798 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
5799
5800         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
5801         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
5802         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
5803         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
5804         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
5805         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
5806         unless x and y could be infinite.
5807         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
5808         Check that the common type of both arguments is a real, even for
5809         targets without unordered comparisons.  Allow an integer argument
5810         to be compared against a real.
5811         (expand_tree_builtin): Use expand_unordered_cmp.
5812         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
5813         * cse.c (fold_rtx): Likewise.  Fix indentation.
5814         * fold-const.c (fold_real_zero_addition_p): New.
5815         (fold): Use it, and the new HONOR_... macros.
5816         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
5817         * jump.c (reversed_comparison_code_parts): After searching for
5818         the true comparison mode, use HONOR_NANS to decide whether it
5819         can be safely reversed.
5820         (reverse_condition_maybe_unordered): Remove IEEE check.
5821         * simplify-rtx.c (simplify_binary_operation): Use the new macros
5822         to decide which simplifications are valid.  Allow the following
5823         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
5824         and (a - -b) to (a + b).
5825         (simplify_relational_operation): Use HONOR_NANS.
5826         * doc/tm.texi: Document the MODE_HAS_... macros.
5827
5828 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
5829
5830         * combine.c (simplify_comparison): If simplifying a logical shift
5831         right and compare with constant, force the comparison to unsigned.
5832
5833 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
5834
5835         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
5836
5837         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
5838         -mabi=no-altivec
5839         (alt_reg_names): Remove % for vrsave.
5840
5841 2002-03-06  Richard Henderson  <rth@redhat.com>
5842
5843         PR optimization/5844
5844         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
5845         if used indicates we've already emitted one copy of an operand.
5846         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
5847         (gen_split): Supply a non-null used.
5848
5849 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
5850
5851         * reload1.c (reload): Unshare all rtl after reload is done.
5852
5853         * simplify-rtx.c (simplify_plus_minus): Do not abort,
5854         but simply fail if the expression is too complex to simplify.
5855         (simplify_gen_binary): Handle simplify_plus_minus failures.
5856
5857 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
5858
5859         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
5860         consistently call delete_trivially_dead_insns after CSE and GCSE;
5861         fix DFI_life dumping; do jump threading after liveness; do crossjumping
5862         after liveness2; update comment in last crossjumping.
5863         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
5864
5865 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
5866
5867         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
5868         after completing fast dead code elimination.
5869
5870         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
5871         COMPARE operator.
5872
5873 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
5874
5875         * version.c:  Fix misplaced leading blanks on first line.
5876
5877 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
5878
5879         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
5880
5881 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
5882
5883         * cfgcleanup.c (mentions_nonequal_regs): New function.
5884         (thread_jump): Use it.
5885         * toplev.c (rest_of_compilation): Run jump threading after
5886         liveness.
5887
5888 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
5889
5890         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
5891         patch.
5892
5893 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
5894
5895         * predict.c (estimate_bb_frequencies): Do not reload the
5896         frequencies from notes.
5897
5898 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
5899
5900         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
5901         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
5902
5903         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
5904         delete_noop_moves): Return indeger.
5905         * flow.c (ndead): New variable.
5906         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
5907         BB argument; update callers.
5908         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
5909         (life_analysis): Do not call purge_all_dead_edges.
5910         (update_life_info): Return number of deleted insns; print statistics.
5911         (update_life_info_in_dirty_blocks): likewise.
5912         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
5913         return number of insns deleted.
5914
5915         * cse.c: Include timevar.h
5916         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
5917         iterate until stabilizes; print statistics; return number of killed
5918         insns.
5919         * Makefile.in: (cse.o): Add timevar.h dependency
5920         * rtl.h (delete_trivially_dead_insns): New.
5921         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
5922         * toplev.c (rest_of_compilation): Update callers.
5923
5924         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
5925         (try_optimize_cfg): Do not update liveness.
5926         (cleanup-cfg): Loop until try_optimize_cfg and dead code
5927         removal stabilizes; use delete_trivially_dead_insns.
5928
5929         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
5930
5931 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
5932
5933         * cppmain.c (setup_callbacks): Disable #pragma and #ident
5934         callbacks when processing assembly language.
5935
5936 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5937
5938         * pa.h (ASM_FILE_END): Define.
5939         * som.h (ASM_FILE_END): Delete.
5940
5941         * pa.c (function_arg): Don't pass floats in general registers in
5942         indirect calls if TARGET_ELF32.
5943
5944 2002-03-05  Richard Henderson  <rth@redhat.com>
5945
5946         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
5947
5948 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
5949
5950         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
5951
5952 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
5953
5954         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
5955         -r command line.  Don't hide any symbols if not building
5956         shared libgcc.
5957
5958 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
5959
5960         * cfg.c (dump_flow_info): Warn about profile mismatches.
5961         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
5962         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
5963
5964 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
5965
5966         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
5967         wide volatile memory by parts.
5968
5969 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
5970
5971         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
5972         is NULL.
5973
5974 2002-03-05  Richard Henderson  <rth@redhat.com>
5975
5976         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
5977
5978 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
5979
5980         * toplev.c (documented_lang_options): Document more
5981         language-specific options.
5982         * doc/invoke.texi (Warning Options): Correct documentation for
5983         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
5984         * c-decl.c (c_decode_option): Use a table to handle warning options.
5985
5986 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
5987
5988         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
5989         parameter to mmix_encode_section_info.
5990         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
5991         relocatably.  Always produce ELF, not mmo if linking relocatably.
5992         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
5993         first is non-zero, don't add symbol prefix.
5994         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
5995         prototype accordingly.
5996
5997 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
5998
5999         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
6000
6001 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
6002
6003         * configure.in: Increase required makeinfo version to 4.1.
6004         * configure: Regenerate.
6005
6006 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6007
6008         * .cvsignore: Remove *.info* and genrtl*; these files are generated
6009         elsewhere now.
6010
6011 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
6012
6013         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
6014         * doc/invoke.texi: Fix @math uses.
6015
6016 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6017
6018         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
6019         removal
6020
6021 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
6022
6023         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
6024         (powerpc-*-eabisimaltivec*): Same.
6025
6026         * config/rs6000/t-ppcendian: New.
6027
6028 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6029
6030         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
6031         nonimmediate_src_operand and nonimmediate_lsrc_operand to
6032         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
6033
6034 2002-03-03  Richard Henderson  <rth@redhat.com>
6035
6036         * toplev.c (rest_of_decl_compilation): Revert last two changes.
6037
6038 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
6039
6040         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
6041         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
6042         tree.c, config/m68k/m68k.c:
6043         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
6044         REAL_ARITHMETIC blocks unconditional.  Delete some further
6045         #ifdef blocks predicated on REAL_ARITHMETIC.
6046         * flags.h, toplev.c: Delete remaining references to
6047         flag_pretend_float.
6048
6049         * doc/invoke.texi: Remove documentation of -fpretend-float.
6050         * doc/tm.texi: Describe the various REAL_* macros as provided by
6051         real.h, not by the target configuration files.
6052
6053         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
6054         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
6055         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
6056         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
6057         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
6058         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
6059         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
6060         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
6061         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6062         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
6063         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
6064         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6065         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
6066         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
6067         config/xtensa/xtensa.h:
6068         Do not define, undefine, or mention in comments any of
6069         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
6070         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
6071         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
6072         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
6073         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
6074         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
6075         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
6076         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
6077         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
6078
6079 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6080
6081         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
6082         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
6083         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
6084         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
6085         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
6086         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
6087         Delete.
6088         * defaults.h (BITS_PER_WORD): Define.
6089         * doc/tm.texi (BITS_PER_WORD): Document default value.
6090
6091         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
6092         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
6093         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
6094
6095 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6096
6097         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
6098         lieu of explicit sizeof/sizeof.
6099         * i386.c (override_options, ix86_init_mmx_sse_builtins,
6100         ix86_expand_builtin): Likewise.
6101         * mips.c (mips_add_gc_roots): Likewise.
6102         * mmix.c (mmix_output_condition): Likewise.
6103         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
6104         altivec_init_builtins): Likewise.
6105         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
6106         * cppexp.c (Nsuff, parse_number): Likewise.
6107         * cppinit.c (builtin_array_end): Likewise.
6108         * gcc.c (n_default_compilers, process_command): Likewise.
6109         * genpreds.c (output_predicate_decls): Likewise.
6110         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
6111         * lcm.c (N_ENTITIES): Likewise.
6112         * stor-layout.c (set_sizetype): Likewise.
6113
6114 2002-03-03  Richard Henderson  <rth@redhat.com>
6115
6116         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
6117         for types or labels.
6118
6119 2002-03-03  Richard Henderson  <rth@redhat.com>
6120
6121         * c-decl.c (start_decl): Initialized variables are not common.
6122
6123 2002-03-02  Per Bothner  <per@bothner.com>
6124
6125         * gcc.c (option_map):  Suport new --bootclasspath option.
6126         --CLASSPATH is now just an alias for --classpath.
6127
6128 2002-03-02  Richard Henderson  <rth@redhat.com>
6129
6130         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
6131         load if "internal" visibility.
6132         * doc/extend.texi: Document visibility meanings.
6133
6134 2002-03-02  Richard Henderson  <rth@redhat.com>
6135
6136         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
6137         to functions as well.
6138
6139 2002-03-02  Richard Henderson  <rth@redhat.com>
6140
6141         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
6142         (handle_visibility_attribute): Don't call assemble_visibility.
6143         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
6144         without asmspec.  Invoke assemble_alias when needed.
6145         * varasm.c (maybe_assemble_visibility): New.
6146         (assemble_start_function, assemble_variable, assemble_alias): Use it.
6147
6148 2002-03-02  Richard Henderson  <rth@redhat.com>
6149
6150         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
6151         invoke ENCODE_SECTION_INFO with first call flag.
6152
6153         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
6154         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
6155         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
6156         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
6157         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
6158         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
6159         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
6160         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
6161         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
6162         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
6163         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6164         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
6165         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
6166         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
6167         config/mcore/mcore-protos.h, config/mcore/mcore.c,
6168         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
6169         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
6170         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6171         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
6172         config/sh/sh.h, config/sparc/sparc.h,
6173         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
6174         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
6175         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
6176         FIRST argument.  As needed, examine it and do nothing.
6177
6178         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
6179         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
6180         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
6181
6182         * config/arm/t-pe (pe.o): Add dependencies.
6183
6184 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6185
6186         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
6187         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
6188         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
6189         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
6190         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
6191         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
6192         * defaults.h (BITS_PER_UNIT): Define.
6193         * doc/tm.texi (BITS_PER_UNIT): Document default value.
6194
6195 2002-03-02  Kazu Hirata  <kazu@hxi.com>
6196
6197         * config/h8300/h8300-protos.h: Add a prototype for
6198         compute_a_shift_length.
6199         * config/h8300/h8300.c (h8300_asm_insn_count): New.
6200         (compute_a_shift_length): Likewise.
6201         (h8300_adjust_insn_length): Do not adjust insn length of shift
6202         insns.
6203         * config/h8300/h8300.md (anonymous shift patterns): Use
6204         compute_a_shift_length.
6205
6206 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6207
6208         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
6209         trunc_int_for_mode.
6210
6211         * emit-rtl.c (offset_address): Call update_temp_slot_address.
6212
6213 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6214
6215         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
6216         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
6217         * flags.h (flag_zero_initialized_in_bss): Declare.
6218         * toplev.c (flag_zero_initialized_in_bss): New flag.
6219         (lang_independent_options): Add flag_zero_initialized_in_bss.
6220         * tree.c (initializer_zerop): New function.
6221         * tree.h (initializer_zerop): Declare.
6222         * varasm.c (assemble_variable): If we can emit bss, put zero
6223         initializers in the bss section.
6224
6225 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
6226
6227         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
6228         like more than one symbol per .weak directive.
6229
6230 2002-03-01  Richard Henderson  <rth@redhat.com>
6231
6232         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
6233         adjust argument_pointer by pretend_args_size.
6234         (ia64_va_start): Adjust va_start address by -pretend_args_size.
6235
6236 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6237
6238         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
6239
6240 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
6241
6242         * toplev.c (rest_of_compilation): Delete dead jumptables before
6243         loop.
6244         * flow.c (delete_dead_jumptables): Make global.
6245         * rtl.h (delete_dead_jumptables): Declare.
6246
6247 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
6248
6249         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
6250         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
6251         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
6252
6253 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6254
6255         * config/h8300/h8300-protos.h: Fix formatting.
6256         * config/h8300/h8300.c: Likewise.
6257         * config/h8300/h8300.h: Likewise.
6258
6259 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6260
6261         * config/h8300/h8300.c (print_operand): Support 16-bit
6262         constant addresses.
6263         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
6264
6265 2002-02-28  Richard Henderson  <rth@redhat.com>
6266
6267         * expmed.c (store_bit_field): Prevent generation of CONCATs;
6268         pun complex values as integers; use gen_lowpart instead of
6269         gen_rtx_SUBREG.
6270         (extract_bit_field): Likewise.
6271
6272 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
6273             David Edelsohn  <edelsohn@gnu.org>
6274
6275         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
6276         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
6277         (SUPPORTS_WEAK): Likewise.
6278         * output.h (add_weak): Add tree param.
6279         * varasm.c (add_weak): Likewise.  Save decl.
6280         (struct weak_syms): Add decl field.
6281         (mark_weak_decls): New function.
6282         (init_varasm_once): ggc_add_root mark_weak_decls.
6283         (assemble_start_function): Use ASM_WEAKEN_DECL.
6284         (assemble_variable): Likewise.
6285         (assemble_alias): Likewise.
6286         (declare_weak): Pass decl to add_weak.
6287         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
6288         (remove_from_pending_weak_list): Declare and define for
6289         ASM_WEAKEN_DECL.
6290         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
6291         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
6292         * defaults.h (SUPPORTS_WEAK): Likewise.
6293         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6294         .weak for code sym.  Do emit .size for descriptor sym.
6295         (ASM_DECLARE_FUNCTION_SIZE): Define.
6296         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
6297         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
6298         .lglobl unless TARGET_XCOFF.  Formatting fixes.
6299         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6300         .weak for code sym.
6301         (HANDLE_PRAGMA_WEAK): Remove.
6302         (ASM_WEAKEN_LABEL): Remove.
6303         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
6304
6305 2002-03-01  Jason Merrill  <jason@redhat.com>
6306
6307         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
6308         (TARGET_EXPR_CLEANUP): New macro.
6309
6310 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
6311
6312         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
6313         to take ptr_extend into account as third type of extension.
6314         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
6315         fields used by SUBREG_PROMOTED_UNSIGNED_P.
6316         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
6317         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
6318         * calls.c (precompute_arguments): Use new macro.
6319         (expand_call): Ditto.
6320         * combine.c (nonzero_bits): Ditto.
6321         (record_promoted_value): Ditto.
6322         * expr.c (store_expr): Ditto.
6323         (expand_expr): Ditto.
6324         * function.c (assign_parms): Ditto.
6325
6326 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
6327
6328         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
6329         override -shared and -shared-libgcc.
6330
6331 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
6332
6333         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
6334         of "ultrasparc".
6335         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
6336         to be broken.
6337
6338 2002-02-28  Richard Henderson  <rth@redhat.com>
6339
6340         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
6341         4 cycle latency from MM producers.
6342         (ia64_internal_sched_reorder): Likewise with pipeline flush.
6343
6344 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
6345
6346         * mklibgcc.in: Don't use GNU make extension.
6347
6348 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6349
6350         * c-parse.in (STATIC): New terminal.
6351         (scspec): New non-terminal.  Update productions accordingly.
6352         (program): Remove bogus ifc / end ifc.
6353         (array_declarator): Simplify production using STATIC.
6354
6355 2002-02-28  Jim Meyering  <meyering@lucent.com>
6356
6357         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
6358         \a still means TARGET_BELL.
6359
6360 2002-02-28  Richard Henderson  <rth@redhat.com>
6361
6362         * haifa-sched.c (sched_emit_insn): New.
6363         (schedule_block): Use last_scheduled_insn to track last insn.
6364         * sched-int.h (sched_emit_insn): Prototype.
6365         * config/ia64/ia64.c (last_issued): Remove.
6366         (ia64_variable_issue): Don't set it.
6367         (nop_cycles_until): Use sched_emit_insn.
6368
6369 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
6370
6371         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
6372         extended constants.
6373
6374 2002-02-28  Kazu Hirata  <kazu@hxi.com>
6375
6376         * config/h8300/h8300.c: Fix formatting.
6377         * config/h8300/h8300.h: Likewise.
6378
6379 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6380
6381         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
6382         which may overwrite the high byte of the frame pointer.
6383
6384 2002-02-28  Bo Thorsen  <bo@suse.de>
6385
6386         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
6387         (STARTFILE_SPEC): Add 64 bit files.
6388         (ENDFILE_SPEC): Likewise.
6389
6390 2002-02-28  Jason Merrill  <jason@redhat.com>
6391
6392         * c-decl.c (finish_function): Only warn about missing return
6393         statement with -Wreturn-type.
6394
6395 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6396
6397         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
6398
6399         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
6400         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
6401
6402 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6403
6404         * basic-block.h (BB_REACHABLE): Renumber.
6405         (BB_DIRTY, BB_NEW): New flags.
6406         (clear_bb_flags): Declare.
6407         (update_life_info_in_dirty_blocks): Declare.
6408         * cfg.c (clear_bb_flags): New function.
6409         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
6410         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
6411         reorder_insns, emit_insn_after): Mark block as dirty.
6412         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
6413         (update_life_info_in_dirty_blocks): New function.
6414         * recog.c (apply_change_group): Dirtify block.
6415
6416         * cse.c (cse_insn): Reorder emitting of jump insn to keep
6417         cfg consistent.
6418         * gcse.c (delete_null_pointer_checks): Likewise.
6419
6420         * toplev.c (dump_file_index): Move cse2 after bp,
6421         add DFI_null
6422         (dump_file_info): Similary.
6423         (rest_of_compilation): Avoid most of CFG rebuilds;
6424         do first if converision after null pointer checks, do cse2
6425         after branch prediction; avoid full liveness rebuild after
6426         initializing subregs.
6427         * invoke.texi (-d options): Document -du, renumber.
6428
6429         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
6430         (notice_new_block): Do not set BB_UPDATE_LIFE.
6431         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
6432          merge_blocks_move_successor_nojumps, merge_blocks,
6433          try_crossjump_to_edge): Likewise.
6434         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
6435         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
6436         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
6437         (merge_of_block): Do not use life_data_ok.
6438         (find_if_case_1): Do not use SET_UPDATE_LIFE.
6439         (if_convert): Use BB_DIRTY mechanizm to update life.
6440         * lcm.c (optimize_mode_switching): Update
6441         update_life_info_in_dirty_blocks
6442
6443 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6444
6445         * Makefile.in (integrate.o): Update.
6446         * c-decl.c (copy_lang_decl): Rename.
6447         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6448         * integrate.c: Include langhooks.h.
6449         (copy_decl_for_inlining): Update to use langhook.
6450         * langhooks-def.h (lhd_do_nothing_t,
6451         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
6452         (LANG_HOOKS_INITIALIZER): Update.
6453         * langhooks.c (lhd_do_nothing_t): New.
6454         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
6455         * tree.h (copy_lang_decl): Remove.
6456 objc:
6457         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6458
6459 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
6460
6461         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
6462         POST_DEC, and POST_MODIFY.
6463
6464 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6465
6466         * c-typeck.c (digest_init): Remove unused parameter; all
6467         callers changed.
6468
6469 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
6470
6471         * expmed.c (expand_shift): Correctly test for low part of a
6472         subreg.
6473
6474 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
6475
6476         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
6477         insn UIDs with insn addresses.
6478
6479 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6480
6481         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
6482         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
6483         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
6484         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
6485         gcc.c, toplev.c: Delete code implementing -traditional mode.
6486
6487         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
6488         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
6489         Document removal of -traditional mode for compilation, and
6490         remove documentation only relevant to that mode.
6491
6492         * config/nextstep.h, config/ptx4.h, config/svr4.h,
6493         config/convex/convex.h, config/d30v/d30v.h,
6494         config/i386/dgux.h, config/i386/osf1elf.h,
6495         config/i386/osfelf.h, config/i386/osfrose.h,
6496         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
6497         config/m68k/hp310.h, config/m88k/dgux.h,
6498         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
6499         config/m88k/m88k.h, config/m88k/openbsd.h,
6500         config/mips/abi64.h, config/mips/osfrose.h,
6501         config/mips/svr4-5.h, config/mips/svr4-t.h,
6502         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6503         config/stormy16/stormy16.h: Remove all references to
6504         -traditional from target specs.  Delete all mention of the
6505         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
6506         delete a couple of commented-out definitions of
6507         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
6508         to -traditional.
6509
6510         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
6511         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
6512
6513 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6514
6515         * mklibgcc.in: Don't use \n in a line subject to
6516         interpretation by echo.
6517
6518 2002-02-27  Graham Stott  <grahams@redhat.com>
6519
6520         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
6521         Constify NAME.
6522
6523         * loop.c (prescan_loop): Handle PARALLEL.
6524
6525         * unroll.c (loop_iterations): Return 0 if the add_val for
6526         a BIV is REG.
6527
6528         * final.c (output_operand_lossage): Constify PFX_STR.
6529
6530         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
6531
6532 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6533
6534         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
6535         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
6536
6537 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
6538
6539         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6540
6541 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6542
6543         * cpplex.c (_cpp_lex_token): Handle directives in macro
6544         arguments.
6545         * cpplib.c (_cpp_handle_directive): Save and restore state
6546         if parsing macro args when entering a directive.
6547         * cppmacro.c (collect_args): No need to handle directives
6548         in macro arguments.
6549         (enter_macro_context, replace_args): Use the original macro
6550         definition in case it was redefined whilst collecting arguments.
6551 doc:
6552         * cpp.texi: Update.
6553
6554 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
6555
6556         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
6557         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
6558         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
6559         method on AIX.
6560         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
6561         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
6562         (load_toc_v4_PIC_2): Same.
6563
6564 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
6565
6566         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
6567
6568 2002-02-26  Richard Henderson  <rth@redhat.com>
6569
6570         * config/alpha/alpha.md (ashldi_se): Re-enable.
6571
6572 2002-02-26  Richard Henderson  <rth@redhat.com>
6573
6574         * config/alpha/alpha.c (alpha_encode_section_info): Examine
6575         MODULE_LOCAL_P; improve commentary.
6576
6577 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
6578
6579         * doc/cpp.texi: Clarify documentation of relationship between
6580         #line and #include.
6581
6582 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6583
6584         * config/h8300/h8300-protos.h: Update the prototype for
6585         compute_logical_op_length.  Add the prototype for
6586         compute_logical_op_cc.
6587         * config/h8300/h8300.c (compute_logical_op_length): Figure out
6588         code from operands.
6589         (compute_logical_op_cc): New.
6590         * config/h8300/h8300.md: Combine all the logical op patterns
6591         in HImode and SImode.  Use compute_logical_op_cc.
6592
6593 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
6594
6595         * config/i386/i386.c (print_operand): Don't append ATT-style
6596         length suffixs to x87 opcodes when in Intel mode.
6597
6598 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
6599
6600         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
6601         (init_emit_once): Update calls.
6602         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
6603         (init_syntax_once): Prototype.
6604
6605 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6606
6607         * pa-linux.h (LIB_SPEC): Update definition.
6608         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6609
6610 2002-02-26  Richard Henderson  <rth@redhat.com>
6611
6612         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
6613         if we emitted a stop bit.
6614
6615 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6616
6617         * configure.in (libgcc_visibility): Substitute.
6618         * configure: Rebuilt.
6619         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
6620         defined symbols .hidden.
6621
6622 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6623
6624         * attribs.c (c_common_attribute_table): Add visibility.
6625         (handle_visibility_attribute): New function.
6626         * varasm.c (assemble_visibility): New function.
6627         * output.h (assemble_visibility): Add prototype.
6628         * tree.h (MODULE_LOCAL_P): Define.
6629         * crtstuff.c (__dso_handle): Use visibility attribute.
6630         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
6631         for MODULE_LOCAL_P symbols too.
6632         * config/ia64/ia64.c (ia64_encode_section_info): Handle
6633         MODULE_LOCAL_P symbols the same way as local symbols.
6634         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
6635         into .sdata/.sbss by the user.
6636         * doc/extend.texi (Function Attributes): Document visibility
6637         attribute.
6638
6639 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6640
6641         PR debug/5770
6642         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
6643         STRING_CST initializer spanning the whole variable without
6644         embedded zeros.
6645         If expand_expr returned MEM, don't use it.
6646
6647 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
6648
6649         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
6650         generate a die for the lexical block.
6651
6652 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6653
6654         * config/h8300/h8300-protos.h: Add a prototype for
6655         compute_logical_op_length.
6656         * config/h8300/h8300.c (compute_logical_op_length): New.
6657         * config/h8300/h8300.md (anonymous logical patterns): Use
6658         compute_logical_op_length for length.
6659
6660 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6661
6662         * dwarf2out.c (modified_type_die): Do not call type_main_variant
6663         for vectors.
6664         (gen_type_die): Same.
6665
6666         * attribs.c (handle_vector_size_attribute): Set debug information.
6667
6668 2002-02-26  Daniel Egger  <degger@fhm.edu>
6669
6670         * config/rs6000/rs6000.md: Swap define_insn attributes to
6671         fix incorrect generation of merge high instructions instead
6672         of merge low.
6673
6674 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6675
6676         * c-typeck.c (really_start_incremental_init): Use
6677         bitsize_zero_node for vectors.
6678
6679 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6680
6681         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
6682         ("*set_vrsave_internal"): Same.
6683
6684 2002-02-25  Richard Henderson  <rth@redhat.com>
6685
6686         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
6687         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
6688
6689 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
6690
6691         PR target/5755
6692         * config/i386/i386.c (ix86_return_pops_args): Only pop
6693         fake structure return argument if it was passed on the stack.
6694
6695 2002-02-25  Jason Merrill  <jason@redhat.com>
6696
6697         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
6698         RESULT_DECL.
6699
6700 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6701
6702         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
6703         link with shared_name only.
6704         * doc/invoke.texi (Link Options): Document new behavior.
6705
6706 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6707
6708         * c-typeck.c (push_init_level): Handle vectors.
6709
6710 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6711
6712         * config/sparc/sparc.c (const64_high_operand): Zero-extend
6713         operands of SPARC_SETHI_P.
6714         (input_operand): Likewise.
6715         (sparc_emit_set_const32): Likewise.
6716         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
6717         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
6718         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
6719         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
6720         (movdi_insn_sp64_vis): Likewise.
6721         (movdi split, movdf split): Use SETHI32.
6722         * doc/md.texi: Document SPARC constraints L, M and N.
6723
6724 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6725
6726         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
6727         ("*set_vrsave_internal"): use mfspr for Darwin.
6728
6729         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
6730         gen_get_vrsave_internal.
6731
6732 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6733
6734         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
6735
6736 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6737
6738         * cpplex.c (cpp_interpret_charconst): Get signedness or
6739         otherwise of wide character constants correct.
6740         * cppexp.c (lex): Get signedness of wide charconsts correct.
6741
6742 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6743
6744         * optabs.c (widen_operand): Only call convert_modes for
6745         promoted SUBREG if signedness matches.
6746         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
6747
6748 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6749
6750         * cpplib.c (glue_header_name): Use local buffer to build up
6751         header name.
6752
6753 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6754
6755         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
6756
6757 2002-02-23  Kazu Hirata  <kazu@hxi.com>
6758
6759         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
6760         H8/300[HS] separately.
6761         * config/h8300/h8300.md: Remove the early clobber constraint
6762         from bit field patterns.
6763
6764 2002-02-23  Kazu Hirata  <kazu@hxi.com>
6765
6766         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
6767         register_operand.
6768         (mulhisi3): Likewise.
6769         (umulqisi3): Likewise.
6770         (umulhisi3): Likewise.
6771
6772 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
6773
6774         * cppinit.c (output_deps): Correct test for stdout output.
6775         (init_dependency_output): Cure warning.
6776
6777 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6778
6779         * expr.c (store_expr): When converting expression to promoted
6780         equivalent type, allow using SUBREG_REG of TARGET as the target
6781         of the expansion of EXP.
6782         * loop.c (basic_induction_var, case SUBREG): Always look inside.
6783         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
6784         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
6785         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
6786         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
6787
6788 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
6789
6790         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
6791         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
6792         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
6793
6794 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
6795
6796         PR optimization/5747
6797         * loop.c (scan_loop): Update reg info if move_movables created new
6798         pseudos.
6799
6800 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
6801
6802         * gcc.c (init_gcc_spec): Revert last change.
6803
6804 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
6805
6806         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
6807         gpc_reg_operand constraint.
6808
6809 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
6810
6811         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
6812         Simplify comparison of `low'.
6813         (add_operand): Fix formatting.
6814         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
6815         (mask_operand): Disallow mask to wrap in 64-bit mode.
6816         (rs6000_stack_info): Remove redundant test setting push_p.
6817         (output_toc): Fix formatting.
6818         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
6819         cc_reg_not_cr0_operand constraint.
6820         (booldi3, boolcdi3 splitters): Same.
6821
6822 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
6823
6824         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
6825
6826 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
6827
6828         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
6829         gcc invoked with -shared-libgcc.
6830
6831 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
6832
6833         PR c++/5748
6834         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
6835         decl if any of elements was TREE_USED.
6836
6837 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
6838
6839         * config/sparc/sol2.h: Don't include sys/mman.h.
6840         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
6841         (arith_4096_operand): Don't throw high bits away.
6842         (const64_operand): Take sign extension of CONST_INTs into account.
6843         (const64_high_operand, sparc_emit_set_const32): Likewise.
6844         (GEN_HIGHINT64): Likewise.
6845         (sparc_emit_set_const64_quick1): Likewise.
6846         (const64_is_2insns): Likewise.
6847         (print_operand): Use trunc_int_for_mode for sign extension.
6848         * config/sparc/sparc.h (SMALL_INT32): Likewise.
6849         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
6850         chars.  Assume CONST_INT is already properly sign-extended.
6851         (movdi split): Sign-extend each SImode part.
6852         (andsi3 split): Don't mask high bits off, so that result
6853         remains properly sign-extend.
6854         (iorsi3 split): Likewise.
6855         (xorsi3 split): Likewise.
6856
6857 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
6858
6859         * fold-const.c (fold): Fix typo in comments.
6860
6861 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
6862
6863         * Makefile.in (langhooks.o): Update dependencies.
6864
6865 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
6866
6867         * langhooks.c: Include flags.h.
6868
6869 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
6870
6871         * testsuite/gcc.dg/attr-alwaysinline.c: New.
6872
6873         * c-common.c (c_common_post_options): Set inline trees by
6874         default.
6875
6876         * doc/extend.texi (Function Attributes): Document always_inline
6877         attribute.
6878         Update documentation about inlining when not optimizing.
6879
6880         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
6881
6882         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
6883         unless DECL_ALWAYS_INLINE.
6884
6885         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
6886         unless DECL_ALWAYS_INLINE.
6887         (c_disregard_inline_limits): Disregard if always_inline set.
6888
6889         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
6890         Disregard if always_inline set.
6891         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
6892         unless DECL_ALWAYS_INLINE.
6893
6894         * attribs.c (handle_always_inline_attribute): New.
6895         (c_common_attribute_table): Add always_inline.
6896
6897         * config/rs6000/altivec.h: Add prototypes for builtins
6898         requiring the always_inline attribute.
6899
6900 2002-02-21  Eric Christopher  <echristo@redhat.com>
6901
6902         * expmed.c (store_bit_field): Try to simplify the subreg
6903         before generating a new one when when the mode size of
6904         value is less than maxmode.
6905
6906 2002-02-21  Richard Henderson  <rth@redhat.com>
6907
6908         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
6909         than gen_rtx_PLUS to form the sum.
6910         * explow.c (force_reg): Rearrange to not allocate new pseudo
6911         when force_operand returns a register.
6912         * expr.c (expand_assignment): Allow offset_rtx expansion to
6913         return a sum.  Do not force addresses into registers.
6914         (expand_expr): Likewise.
6915         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
6916         to canonicalize arithmetic that didn't simpify.
6917         (simplify_plus_minus): New argument force; update
6918         all callers.  Don't split CONST unless we can do something with it,
6919         and wouldn't lose the constness of the operands.
6920
6921         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
6922         that we generated earlier.
6923
6924 2002-02-21  Tom Tromey  <tromey@redhat.com>
6925
6926         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
6927         (output_line_info): Use constant `1', with a long explanatory
6928         comment.
6929         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
6930
6931 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
6932
6933         * jump.c (redirect_jump): If old label has no UID, don't try to
6934         delete it.
6935
6936 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
6937
6938         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
6939         If input is constant, do shifts at compile time.
6940
6941 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6942
6943         * doc/extend.texi: Fix some more overfull hboxes.
6944
6945 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
6946
6947         PR optimization/4994
6948         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
6949         register moves.
6950
6951 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
6952
6953         PR c++/4574
6954         * expr.h (expand_and): Add mode argument.
6955         * expmed.c (expand_and): Add mode argument.
6956         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
6957         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
6958         * except.c (expand_builtin_extract_return_addr): Likewise.
6959         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6960         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
6961         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
6962         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
6963         * config/c4x/c4x.md: Use GEN_INT (x) instead of
6964         gen_rtx (CONST_INT, VOIDmode, x).
6965
6966 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
6967
6968         PR c/4697:
6969         * stmt.c (warn_if_unused_value): Move side effects test once more.
6970
6971 2002-02-20  Torbjorn Granlund  <tege@swox.com>
6972
6973         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
6974         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
6975
6976 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
6977
6978         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
6979         SUBREG or ZERO_EXTEND.
6980
6981 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
6982
6983         * sh.h (current_function_anonymous_args): Remove.
6984         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
6985         of current_function_varargs and current_function_stdarg is set.
6986         * sh.c (sh_expand_prologue): Check current_function_varargs /
6987         current_function_stdarg / TARGET_SH5 instead of
6988         current_function_anonymous_args.
6989
6990         * sh64.h (TARGET_VERSION): Define.
6991
6992 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
6993
6994         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
6995         VRSAVE_REGNO on TARGET_ALTIVEC.
6996
6997 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
6998
6999         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
7000         bits of SImode const_int.
7001         (includes_rshift_p): Likewise.
7002         (print_operand): Call mask_operand and mask64_operand with correct
7003         mode.
7004         (rs6000_output_function_epilogue): Pad traceback table to word.
7005         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
7006         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
7007         mask64_operand with correct mode.
7008         (FUNCTION_ARG_REGNO_P): Correct parentheses.
7009
7010 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7011
7012         PR debug/4461
7013         * varasm.c (get_pool_constant_mark): New.
7014         * rtl.h (get_pool_constant_mark): Add prototype.
7015         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
7016         be represented if it has not been output.
7017
7018 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7019
7020         * combine.c (do_SUBST): Sanity check substitutions of
7021         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
7022         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
7023         CONST_INT into its operand.
7024         (known_cond): Likewise, for ZERO_EXTEND.
7025         * simplify-rtx.c (simplify_unary_operation): Fix condition to
7026         allow for simplification of wide modes.  Reject CONST_INTs in
7027         ZERO_EXTEND when their actual mode is not given.
7028
7029 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7030
7031         * c-decl.c (pushdecl): If no global declaration is found for an
7032         extern declaration in block scope, try a limbo one.
7033
7034 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7035
7036         PR c++/4401
7037         * c-common.c (pointer_int_sum): Moved from...
7038         * c-typeck.c (pointer_int_sum): ...here.
7039         * c-common.h (pointer_int_sum): Add prototype.
7040
7041 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7042
7043         PR c++/5713
7044         * c-decl.c (duplicate_decls): Return 0 if issued error about
7045         redeclaration.
7046
7047 2002-02-20  Roger Sayle  <roger@eyesopen.com>
7048             Jakub Jelinek  <jakub@redhat.com>
7049
7050         PR c/4389
7051         * tree.c (host_integerp): Ensure that the constant integer is
7052         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
7053         when pos is zero or non-zero respectively.  Clarify comment.
7054         * c-format.c (check_format_info_recurse): Fix host_integerp
7055         usage; the pos argument should be zero when assigning to a
7056         signed HOST_WIDE_INT.
7057
7058 2002-02-20  Richard Henderson  <rth@redhat.com>
7059
7060         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
7061         of the operand, rather than assuming TImode.
7062         (ix86_expand_binop_builtin): Cope with commutative patterns
7063         using nonimmediate_operand for both operands.
7064         (ix86_expand_timode_binop_builtin): Likewise.
7065         (ix86_expand_store_builtin): Validate operand 1.
7066         (ix86_expand_unop1_builtin): Likewise.
7067
7068 2002-02-20  Philip Blundell  <philb@gnu.org>
7069
7070         PR 5705
7071         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
7072
7073 2002-02-20  Richard Henderson  <rth@redhat.com>
7074
7075         PR c/5615
7076         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
7077
7078 2002-02-20  Tom Tromey  <tromey@redhat.com>
7079
7080         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7081         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7082         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7083         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7084         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
7085         unconditionally.
7086
7087 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
7088
7089         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
7090           for (const_int 0) in X not just INTVAL.
7091
7092 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7093
7094         * doc/extend.texi: Avoid or reduce overfull hboxes.
7095
7096 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
7097
7098         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
7099         operations if the field does not start at a mode boundary.
7100
7101 2001-02-20      Joel Sherrill <joel@OARcorp.com>
7102
7103         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
7104         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
7105         Also done for -Acpu and -Amachine.
7106
7107 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7108
7109         * cppinit.c (init_dependency_output): Take deps output file
7110         from -o if none given with -MF.  Suppress normal output.
7111         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
7112         * doc/cpp.texi, doc/invoke.texi: Update.
7113
7114 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7115
7116         * toplev.c (output_quoted_string): Write unprintable
7117         characters with octal escapes.
7118
7119 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7120
7121         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
7122         really_call_used[VRSAVE_REGNO] if not Altivec.
7123
7124 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
7125
7126         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
7127         MODE_MASK.
7128         (constant_pool_expr_1): Fix formatting.
7129         (rs6000_legitimize_reload_address): Likewise.
7130
7131 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7132
7133         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
7134         now that we have one.
7135
7136 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7137
7138         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
7139         end of first block of bitfields (which was only seven bits);
7140         rename dummy to unused_1; remove comment which is no longer true.
7141
7142 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7143
7144         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
7145
7146 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7147
7148         PR 5399
7149         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
7150         if generating PIC.
7151
7152         PR 5054
7153         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
7154         arm_is_longcall_p rather than inspecting call-type cookie
7155         directly.
7156         (call_value_insn) [TARGET_THUMB]: Likewise.
7157
7158 2002-02-19  Graham Stott  <grahams@redhat.com>
7159
7160         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
7161
7162 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7163
7164         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
7165         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
7166         (FP_SAVE_INLINE): Delete.
7167
7168         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
7169         * config/rs6000/eabi.asm: Remove ABI save restore routines.
7170         * config/rs6000/t-ppccomm: Build crtsavres.o.
7171         * config/rs6000/crtsavres.asm: New file.
7172
7173 2002-02-19  Philip Blundell  <philb@gnu.org>
7174
7175         * config/arm/arm.c (use_return_insn): Don't reject interrupt
7176         functions.
7177         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
7178         (output_return_instruction): Allow interrupt functions to return with
7179         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
7180         (arm_expand_prologue): Subtract 4 before stacking LR in an
7181         interrupt function.
7182
7183 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7184
7185         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
7186         decl, not just FUNCTION_DECL.
7187         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
7188         (arm_assemble_integer): Likewise.
7189         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
7190         marked local.
7191
7192 2002-02-19  matthew green  <mrg@eterna.com.au>
7193
7194         * config.gcc (sparc-*-netbsdelf*): Enable target.
7195         (sparc64-*-netbsd*): New target.
7196         * config/sparc/netbsd-elf.h: New file.
7197         * config/sparc/t-netbsd64: New file.
7198
7199 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7200
7201         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
7202
7203 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
7204
7205         * doc/invoke.texi: explicitly list the style guidelines that
7206         -Weffc++ checks for.
7207
7208 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
7209
7210         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
7211
7212 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7213
7214         PR other/5718
7215         * gcc.c (cpp_unique_options): Treat -o as indicating object file
7216         only if not -E.  If -E, pass -o through to the preprocessor.
7217
7218 2002-02-19  Kazu Hirata  <kazu@hxi.com>
7219
7220         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
7221         register number with an appropriate macro.
7222
7223 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7224
7225         * doc/rtl.texi (Constants): Close @code tag.
7226
7227 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
7228
7229         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
7230         ("mmx_uavgv4hi3"): Same.
7231         ("pmulhrwv4hi3"): Same.
7232
7233         * tree-inline.c (walk_tree): Handle vectors.
7234
7235         * c-common.c (constant_expression_warning): Handle vectors.
7236         (overflow_warning): Same.
7237
7238         * sched-deps.c (sched_analyze_2): Handle vectors.
7239
7240         * rtlanal.c (rtx_unstable_p): Handle vectors.
7241         (rtx_varies_p): Same.
7242         (count_occurrences): Same.
7243         (regs_set_between_p): Same.
7244         (modified_between_p): Same.
7245         (modified_in_p): Same.
7246         (volatile_insn_p): Same.
7247         (volatile_refs_p): Same.
7248         (side_effects_p): Same.
7249         (may_trap_p): Same.
7250         (inequality_comparisons_p): Same.
7251         (replace_regs): Same.
7252         (computed_jump_p_1): Same.
7253
7254         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
7255         argument.
7256         (inner_mode_array): New.
7257         (copy_rtx): Handle vectors.
7258         (copy_most_rtx): Same.
7259         (rtx_equal_p): Same.
7260         (get_mode_alignment): Adjust for vectors.
7261
7262         * resource.c (mark_referenced_resources): Handle vectors.
7263         (mark_set_resources): Same.
7264
7265         * reload1.c (eliminate_regs): Handle vectors.
7266         (elimination_effects): Same.
7267         (scan_paradoxical_subregs): Same.
7268
7269         * reload.c (subst_reg_equivs): Handle vectors.
7270
7271         * regrename.c (scan_rtx): Handle vectors.
7272
7273         * regclass.c (reg_scan_mark_refs): Handle vectors.
7274
7275         * recog.c (find_single_use_1): Handle vectors.
7276
7277         * local-alloc.c (equiv_init_varies_p): Handle vectors.
7278         (contains_replace_regs): Same.
7279         (memref_referenced_p): Same.
7280
7281         * integrate.c (copy_rtx_and_substitute): Handle vectors.
7282         (subst_constants): Same.
7283
7284         * genattrtab.c (attr_copy_rtx): Handle vectors.
7285         (encode_units_mask): Same.
7286         (clear_struct_flag): Same.
7287         (count_sub_rtxs): Same.
7288
7289         * gcse.c (want_to_gcse_p): Handle vectors.
7290         (oprs_unchanged_p): Same.
7291         (hash_expr_1): Same.
7292         (oprs_not_set_p): Same.
7293         (expr_killed_p): Same.
7294         (compute_transp): Same.
7295         (store_ops_ok): Same.
7296
7297         * function.c (purge_addressof_1): Do not allow paradoxical subregs
7298         of vectors.
7299         (fixup_var_refs_1): Same.
7300         (instantiate_virtual_regs_1): Same.
7301
7302         * fold-const.c (operand_equal_p): Handle vectors.
7303         (fold): Same.
7304         (rtl_expr_nonnegative_p): Same.
7305
7306         * flow.c (mark_used_regs): Handle vectors.
7307
7308         * df.c (df_uses_record): Handle vectors.
7309
7310         * cselib.c (cselib_subst_to_values): Handle vectors.
7311         (cselib_mem_conflict_p): Same.
7312         (hash_rtx): Same.
7313
7314         * cse.c (canon_reg): Handle vectors.
7315         (fold_rt): Same.
7316         (cse_process_notes): Same.
7317         (count_reg_usage): Same.
7318         (canon_hash): Same.
7319
7320         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
7321
7322         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
7323
7324         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
7325         (gen_rtx): Handle CONST_VECTOR.
7326         (gen_const_vector_0): New.
7327         (copy_rtx_if_shared): CONST_VECTORs can be shared.
7328         (reset_used_flags): Same.
7329         (copy_insn_1): Same.
7330         (initializer_constant_valid_p): Handle VECTOR_CST.
7331
7332         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
7333
7334         * doc/rtl.texi (Constants): Document const_vector.
7335         (CONST0_RTX): Update for vectors.
7336         (RTL sharing): Same.
7337
7338         * print-tree.c (print_node): Add case for VECTOR_CST.
7339
7340         * tree.h (TREE_VECTOR_CST_ELTS): New.
7341         (struct tree_vector): New.
7342         (union tree_node): Add vector node.
7343         (build_vector): Add prototype.
7344
7345         * tree.def (VECTOR_CST): New.
7346
7347         * tree.c (build_vector): New.
7348
7349         * expmed.c (make_tree): Handle CONST_VECTOR.
7350
7351         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
7352         (CONST_VECTOR_ELT): New.
7353         (CONST_VECTOR_NUNITS): New.
7354
7355         * machmode.h (GET_MODE_INNER): New.
7356         (DEF_MACHMODE): Accept 8th arg.
7357
7358         * machmode.def: Add 8th argument for vector inner mode.
7359         Add inner vector modes for vectors.
7360
7361         * rtl.def (VEC_CONST): Remove.
7362         (CONST_VECTOR): New.
7363
7364         * expr.c (clear_storage): Allow vectors.
7365         (is_zeros_p): Handle VECTOR_CST.
7366
7367         * varasm.c (output_constant_pool): Handle vectors.
7368         (rtx_const): Add veclo and vechi fields.
7369         (kind): Add RTX_VECTOR.
7370         (decode_rtx_const): Add case for vector.
7371
7372         * config/rs6000/rs6000-protos.h: Add zero_constant.
7373
7374         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
7375         constants.  Force easy vector constants into memory.
7376         (easy_vector_constant): New.
7377         (emit_easy_vector_constant): New.
7378         (rs6000_legitimize_reload_address): Do not generate bad reloads on
7379         darwin.
7380
7381         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
7382         instruction does.
7383         ("altivec_lvxl"): Same.
7384         (altivec_lvebx): Same.
7385         (altivec_lvehx): Same.
7386         (altivec_lvewx): Same.
7387         ("*movv4si_const0"): New.
7388         ("*movv4sf_const0"): New.
7389         ("*movv8hi_const0"): New.
7390         ("*movv16qi_const0"): New.
7391
7392 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7393
7394         * config/h8300/h8300.c (notice_update_cc): Use
7395         cc_status.value2.
7396
7397 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7398
7399         * config/h8300/h8300.md (divmod patterns): Change the
7400         constraints for operands[1] to register_operand.
7401
7402 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7403
7404         * config/h8300/h8300-protos.h: Remove the prototype for
7405         p_operand.
7406         * config/h8300/h8300.c (p_operand): Remove.
7407         * config/h8300/h8300.md: Replace p_operand with
7408         const_int_operand.
7409
7410 2002-02-18 Philip Blundell <pb@nexus.co.uk>
7411
7412         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
7413         comment.
7414         (output_return_instruction): Allow use of LDR to unstack
7415         return addresss even for interrupt handlers or when
7416         interworking.  If compiling for ARMv5, use interworking-safe
7417         return instructions by default.  Remove duplicated code and
7418         lengthy "strcat" sequences.
7419
7420 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7421
7422         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
7423         (LINK_EH_SPEC): Define.
7424         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
7425
7426 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7427
7428         * config/s390/s390.c (s390_emit_prologue): Do not set the
7429         frame_related flag for call-clobbered registers.
7430
7431 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7432
7433         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
7434         (construct_container): Fix handling of SSE operands.
7435         (ix86_expand_builtin): Fix handling of 64bit pointers.
7436         (mmx_maskmovq_rex): New pattern.
7437
7438 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7439
7440         * regrename.c (kill_set_value): Handle subregs properly.
7441
7442 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
7443
7444         * objc/objc-act.c (handle_impent): Remove leading '*'
7445         from objc_class_name.
7446
7447 2002-02-17  Richard Henderson  <rth@redhat.com>
7448
7449         * config/alpha/alpha.c (some_small_symbolic_operand,
7450         some_small_symbolic_operand_1, split_small_symbolic_operand,
7451         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
7452         Handle small SYMBOL_REFs anywhere, not just inside memories.
7453         * config/alpha/alpha-protos.h: Update.
7454         * config/alpha/alpha.h (PREDICATE_CODES): Update.
7455         * config/alpha/alpha.md (small symbolic operand splitter): Update.
7456
7457 2002-02-17  Roland McGrath  <roland@frob.com>
7458
7459         * config.gcc (powerpc-*-gnu-gnualtivec*,
7460         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
7461         * config/rs6000/gnu.h: New file.
7462         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
7463         Grok "gnu" in rs6000_abi_name.
7464         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
7465         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
7466         Grok -mcall-gnu analogous to -mcall-linux et al.
7467         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7468         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
7469         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
7470
7471 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
7472
7473         PR c/3444:
7474         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
7475         shortening.
7476
7477 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7478
7479         * config/cris/cris.h: Undefine STARTFILE_SPEC and
7480         ENDFILE_SPEC before (re)defining them.
7481
7482 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7483
7484         * config/h8300/h8300.c: Fix formatting.
7485         * config/h8300/h8300.h: Likewise.
7486
7487 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7488
7489         * doc/tm.texi: Explain why empty strings should not be
7490         marked for translation.
7491
7492 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7493
7494         * final.c (output_operand_lossage): Changed to accept
7495         printf style arguments. Change calls where necessary.
7496         * output.h (output_operand_lossage): Change declaration
7497         accordingly. Update copyright.
7498         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
7499         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
7500         Update copyright date where necessary.
7501
7502         * config/i386/i386.c (print_operand): Likewise. Remove use of
7503         sprintf.
7504
7505         * config/cris/cris.c (cris_operand_lossage): Likewise.
7506         Rename parameter so that exgettext recognizes it as
7507         translatable message.
7508         (LOSE_AND_RETURN): Rename parameter to msgid.
7509
7510 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7511
7512         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
7513         hard coded register number with an appropriate macro.
7514         (HARD_REGNO_MODE_OK): Likewise.
7515         (ARG_POINTER_REGNUM): Likewise.
7516         (STATIC_CHAIN_REGNUM): Likewise.
7517         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
7518         * config/h8300/h8300.md (define_constants): Define more
7519         register numbers.
7520
7521 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7522
7523         * config/i386/i386.h: Don't mark empty strings for translation.
7524
7525 2002-02-16  H.J. Lu <hjl@gnu.org>
7526
7527         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
7528
7529 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
7530
7531         * cppinit.c (merge_include_chains): Check for brack being
7532         NULL before attempting to merge it with qtail.
7533
7534 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
7535
7536         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
7537         DBX_DEBUG.
7538
7539 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7540
7541         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
7542
7543 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7544
7545         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
7546         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
7547         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
7548
7549 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7550
7551         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
7552         now only if !TARGET_FIX.
7553         (*movsi_nt_vms_fix): New pattern.
7554
7555 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
7556
7557         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
7558         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
7559         (alpha_sa_mask, alpha_sa_size): Reflect above change.
7560         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
7561         (alpha_start_function, alpha_expand_epilogue): Likewise.
7562         (unicosmk_gen_dsib): Likewise.
7563
7564 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7565
7566         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
7567
7568 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
7569
7570         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
7571         check_and_change_labels, s390_final_chunkify): Delete.
7572         (s390_split_branches, s390_chunkify_pool): New functions.
7573         (s390_function_prologue): Call them.
7574
7575         * config/s390/s390.h (S390_REL_MAX): Delete.
7576         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
7577
7578         * config/s390/s390.md (cjump, icjump, jump): Fix length
7579         attribute calculation.
7580
7581
7582 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
7583
7584         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
7585         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
7586
7587 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7588
7589         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
7590         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
7591         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
7592
7593 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7594
7595         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
7596
7597 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7598
7599         * reload.c (find_dummy_reload): Check that an output register
7600         is valid for its mode.
7601
7602 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
7603
7604         * combine.c (known_cond): After replacing the REG of a SUBREG, try
7605         to simplify it.
7606
7607         * function.c (assign_parms): Demote promoted argument passed by
7608         transparent reference.
7609
7610 2001-02-14      Joel Sherrill <joel@OARcorp.com>
7611
7612         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
7613         -Acpu() and -Amachine() to eliminate warnings.
7614
7615 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
7616
7617         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
7618
7619 2002-02-14  Kazu Hirata  <kazu@hxi.com>
7620
7621         * config/h8300/h8300-protos.h: Update the prototype for
7622         const_costs.
7623         * config/h8300/h8300.c (const_costs): Treat SET as a little
7624         more expensive operation.
7625         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
7626         reference to const_costs.
7627
7628 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
7629
7630         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
7631
7632 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
7633
7634         PR c/5503:
7635         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
7636         use arguments from newtype.
7637
7638 2002-02-13  Eric Christopher  <echristo@redhat.com>
7639
7640         * config/mips/mips.c (override_options): Add check for march/mipsX
7641         on the same command line. Fix error message in cpu processing.
7642         Remove architecture and ISA checks.
7643
7644 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7645
7646         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
7647
7648         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
7649
7650 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7651
7652         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
7653         alternatives.
7654         ("*movv8hi_internal1"): Same.
7655         ("*movv16qi_internal1"): Same.
7656         ("*movv4sf_internal1"): Same.
7657
7658         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
7659         not push_reload for altivec modes.
7660
7661 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
7662
7663         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
7664         all RTEMS targets including removal of #includes from config/*/rtems*.h
7665         file and adding them to tm_file setting. Added xm_defines=POSIX to
7666         many targets.
7667         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
7668         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
7669         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
7670         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
7671         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
7672         config/m68k/rtemself.h: Ditto.
7673         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
7674         config/mips/rtems64.h: Ditto.
7675         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
7676         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
7677         Ditto.
7678         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
7679         config/sparc/rtemself.h: Ditto.
7680         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
7681         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
7682         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
7683         more like arm-elf.
7684         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
7685         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
7686         target made more similar to i386-elf.
7687         * config/i386/t-rtems-i386: Added soft float support and multilibs.
7688         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
7689         be similar to config/m68k/t-m68kelf.
7690         * gthr-rtems.h: Encapsulate with extern "C" for C++.
7691
7692 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
7693
7694         * regmove.c (kill_value): Handle subregs.
7695
7696 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7697
7698         * i386.md (mul patterns): Allow memory operand to be first;
7699         add expanders where needed; fix constraints.
7700         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
7701         Allow memory operand to be the first.
7702
7703         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
7704         operands.
7705
7706 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7707
7708         PR c/5681:
7709         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
7710         GET_MODE (x).
7711
7712 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7713
7714         PR optimization/5547:
7715         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
7716         all valid IA-32 address modes involving non-scaled %ebx and
7717         GOT/GOTOFF as displacement.
7718
7719 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
7720
7721         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
7722         after emitting ltorg insns.
7723
7724         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
7725         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
7726         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
7727         *abssf2): Fix "op_type" attribute.
7728
7729 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
7730
7731         * mkconfig.sh: Avoid using a subshell redirect.
7732         ($output.T): Change to $(output)T.
7733         (ENABLE_NLS): Remove unneeded undef.
7734
7735         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
7736         * config/alpha/x-vms (libsubdir): Define.
7737
7738         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
7739         register frame procedures. Optimize retrieving context.
7740
7741         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
7742         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
7743         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
7744
7745 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7746
7747         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
7748         Make same change as for find_base_value.
7749
7750 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7751
7752         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
7753         of QImode and SImode.
7754
7755 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7756
7757         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
7758         length computation of movsi.
7759         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
7760
7761 2002-02-13  Kazu Hirata  <kazu@hxi.com>
7762
7763         * config/h8300/h8300.md (subqi3): Tighten the predicate for
7764         operands[2] to register_operand.
7765
7766 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
7767
7768         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
7769
7770 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
7771
7772         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
7773         for altivec_lvx* and altivec_stvx*.
7774         ("*movv4si_internal"): Add constraint for loading from GPRs.
7775         ("*movv8hi_internal1"): Same.
7776         ("*movv16qi_internal1"): Same.
7777         ("*movv4sf_internal1"): Same.
7778
7779         * config/rs6000/rs6000.c (altivec_register_operand): New.
7780
7781         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7782         altivec_register_operand.
7783
7784 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
7785
7786         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
7787         handle SYMBOL_REF.
7788
7789 2002-02-13  Stan Shebs  <shebs@apple.com>
7790
7791         * c-typeck.c (digest_init): Handle vectors.
7792         (really_start_incremental_init): Same.
7793         (pop_init_level): Same.
7794         (process_init_element): Same.
7795
7796         * varasm.c (output_constant): Same.
7797
7798         * expr.c (clear_storage): Same.
7799         (store_constructor): Same.
7800
7801 2002-02-12  Eric Christopher  <echristo@redhat.com>
7802
7803         * explow.c (hard_function_value): Add comment explaining
7804         signed/unsigned comparison.
7805
7806 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
7807
7808         * jump.c (never_reached_warning): Add finish argument.
7809         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
7810         real insn after end.
7811         * rtl.h (never_reached_warning): Adjust prototype.
7812         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
7813         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
7814         never_reached_warning.
7815
7816 2002-02-12  Graham Stott  <grahams@redhat.com>
7817
7818         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
7819
7820 2002-02-12  Kazu Hirata  <kazu@hxi.com>
7821
7822         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
7823         logical shifts on H8/300.
7824         (shift_alg_si): Improve several shifts on H8/300.
7825         (get_shift_alg): Likewise.
7826
7827 2002-02-12  Graham Stott  <grahams@redhat.com>
7828
7829         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
7830
7831 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7832
7833         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
7834         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
7835
7836 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
7837
7838         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
7839         non-CONST_INT through default_assemble_integer.
7840         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
7841         <case 8>: Abort for CONST_DOUBLE.
7842
7843 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7844
7845         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
7846         is specified.
7847         * config/pa/pa-linux.h (LIB_SPEC): Delete.
7848         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
7849
7850 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
7851
7852         * config/stormy16/stormy16.md (zero_extendqihi2): New.
7853
7854 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
7855
7856         * regrename.c (regrename_optimize): Don't accept a
7857         part-clobbered register if the replaced register is not part
7858         clobbered.
7859
7860         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
7861         take padding into account when computing the argument value.
7862
7863         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
7864
7865         * combine.c (try_combine): Apply substitutions in
7866         CALL_INSN_FUNCTION_USAGE too.
7867
7868 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
7869
7870         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
7871         __builtin_altivec_abs*.
7872         (bdesc_abs): New.
7873
7874         * config/rs6000/rs6000.h (rs6000_builtins): Add
7875         ALTIVEC_BUILTIN_ABS*.
7876
7877         * config/rs6000/altivec.h: Use const char for builtins expecting
7878         literals.
7879         (vec_abs): New versions for C and C++.
7880         (vec_abss): Same.
7881
7882 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7883
7884         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
7885         using Pmode.
7886
7887 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7888
7889         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
7890         constant definition from h8300.md.
7891         (FRAME_POINTER_REGNUM): Likewise.
7892         * config/h8300/h8300.md (define_constants): Add FP_REG.
7893
7894 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7895
7896         * config/h8300/h8300.c (print_operand): Remove redundant code.
7897
7898 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7899
7900         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
7901         * config/h8300/h8300.c (byte_reg): Make it static.
7902
7903 2002-02-10  Richard Henderson  <rth@redhat.com>
7904
7905         PR c/5623
7906         * c-typeck.c (incomplete_type_error): Handle flexible array members.
7907
7908 2002-02-10  Richard Henderson  <rth@redhat.com>
7909
7910         PR c++/5624
7911         * tree.c (append_random_chars): Don't abort if main_input_filename
7912         does not exist.
7913
7914 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
7915
7916         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
7917
7918 2002-02-10  Kazu Hirata  <kazu@hxi.com>
7919
7920         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
7921         (pushhi1): Likewise.
7922
7923 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7924
7925         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
7926         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
7927
7928 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
7929
7930         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
7931         remove MASK_VIS.
7932         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
7933
7934 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7935
7936         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
7937         a half of an SImode register on H8/300.
7938
7939 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
7940
7941         * i386.md (movdi_2): Add missing '!'.
7942
7943 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7944
7945         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
7946         definitions.
7947
7948 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7949
7950         * config/h8300/h8300.md (length): Correct the distance valid
7951         for the short branch.
7952
7953 2002-02-09  Kazu Hirata  <kazu@hxi.com>
7954
7955         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
7956
7957 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
7958
7959         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
7960         registers in SImode.
7961         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
7962         part-clobbered.
7963
7964         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
7965         patch.
7966
7967         Contribute sh64-elf.
7968         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
7969         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
7970         (sh_cannot_modify_jumps_p): New function.
7971         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
7972         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
7973         (sh_ms_bitfield_layout_p): New function.
7974         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
7975                     Zack Weinberg  <zack@codesourcery.com>
7976         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
7977         expand_simple_binop instead of expand_binop.
7978         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
7979         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
7980         use of .quad and .uaquad.
7981         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
7982         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
7983         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7984         * config/sh/sh.md (movdi_const, movdi_const_32bit,
7985         movdi_const_16bit): Make sure all CONSTs have modes.
7986         (sym2PIC): Ditto, but by adjusting all callers.
7987         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
7988         if the prologue calls the SHmedia argument decoder or register
7989         saver.
7990         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
7991         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
7992         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
7993         (sh_expand_epilogue): Don't emit USE of return target register.
7994         (prepare_move_operands): Legitimize DImode PIC addresses.
7995         (sh_media_register_for_return): Skip tr0, used to initialize the
7996         PIC register.
7997         (sh_expand_prologue): Remove explicit USE of return register.
7998         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
7999         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
8000         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
8001         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
8002         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
8003         EXTRA_CONSTRAINT_T.
8004         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
8005         (MOVI_SHORI_BASE_OPERAND_P): New.
8006         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
8007         (EXTRA_CONSTRAINT_T): Define in terms of them.
8008         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
8009         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
8010         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
8011         alternatives supporting TARGET_REGS.
8012         (UNSPEC_GOTPLT): New constant.
8013         (movdi split): Move incrementing of LABEL_NUSES...
8014         (movdi_const, movdi_const_32bit): Here.  Use
8015         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
8016         (movdi_const_16bit): New.
8017         (call, call_value) [flag_pic]: Use GOTPLT.
8018         (call_pop, call_value_pop): New expands.
8019         (call_pop_compact, call_pop_rettramp): New insns.
8020         (call_value_pop_compact, call_value_pop_rettramp): New insns.
8021         (sibcall) [flag_pic]: Use GOT.
8022         (builtint_setjmp_receiver): Remove bogus, unused expand.
8023         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
8024         (*pt, *ptb, ptrel): New insns.
8025         (sym2GOT): Handle DImode GOT.
8026         (sym2GOTPLT, symGOTPLT2reg): New expands.
8027         (sym2PIC): New expand.
8028         (shcompact_return_tramp): Use GOTPLT to return trampoline.
8029         (shcompact_return_tramp_i): Use return register explicitly.
8030         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
8031         disable flag_reorder_blocks.
8032         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8033         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
8034         clobbers, for clarity.
8035         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
8036         restoring of r0 in macl as MAYBE_DEAD.
8037         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
8038         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
8039         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
8040         alter_subreg all over.
8041         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
8042         reload, instead of emitting instructions that would require
8043         reloading.
8044         (casesi_load_media): Add missing modes.
8045         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
8046         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
8047         as used if the argument decoder is called.
8048         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8049         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
8050         Pmode, then extend it to DImode if necessary.
8051         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8052         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
8053         constants in FPU-enabled SHmedia, let them be loaded from memory.
8054         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8055         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
8056         Adjust whitespace in assembly output templates.
8057         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8058         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
8059         mode of if_then_else.
8060         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
8061         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
8062         sh.h.
8063         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
8064                     Joern Rennecke <amylaar@redhat.com>
8065         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
8066         (SUBTARGET_CPP_PTR_SPEC): New.
8067         (SUBTARGET_CPP_SPEC): Remove.
8068         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8069         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8070         Fix typo in previous checkin.
8071         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
8072         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
8073         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
8074                     Alexandre Oliva  <aoliva@redhat.com>
8075         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
8076         what single FP register can hold for SHmedia target.
8077         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8078                     Alexandre Oliva  <aoliva@redhat.com>
8079         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8080         Do not split into SUBREG.
8081         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
8082         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
8083         and added new functions as specified in SH5 ABI r9.
8084         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
8085         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
8086         8-byte boundary.
8087         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
8088         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
8089         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
8090         and consttable_window_ends.
8091         2001-06-03  Graham Stott  <grahams@redhat,com>
8092         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
8093         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
8094         * config/sh/sh.c (print_operand): Handle floating-point pair,
8095         vector and matrix registers.
8096         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
8097         vector modes into account.
8098         * config/sh/sh.md (movv2sf): Split move between registers into
8099         movdf.
8100         (movv4sf, movv16sf): Introduce insns that get split only after
8101         reload.
8102         * config/sh/shmedia.h: Fix Copyright dates.
8103         * config/sh/ushmedia.h: Likewise.  Move loop counter
8104         declarations into conditionals that uses them.
8105         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
8106         loop boundary.
8107         * config/sh/sshmedia.h: Fix Copyright dates.
8108         (sh_media_PUTCFG): Fix constraints.
8109         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
8110         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
8111         ptrmemfunc_vbit_in_delta for SH5.
8112         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
8113         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
8114         * invoke.texi: Likewise.
8115         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
8116         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
8117         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
8118         GCC_pop_shmedia_regs_nofpu): New global symbols.
8119         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
8120         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
8121         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
8122         compact function with nonlocal labels.
8123         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
8124         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
8125         (initial_elimination_offset): Account for their stack space.
8126         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
8127         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
8128         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
8129         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
8130         least one of the operands to be a register.
8131         (movv2sf): Likewise.  Renamed to movv2sf_i.
8132         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
8133         prepare_move_operands() before emitting SHmedia insns.
8134         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
8135         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
8136         Don't save nor initialize r12.  Don't mis-align the stack.
8137         Pad the code with a nop.
8138         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
8139         stack.
8140         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
8141         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
8142         [__SHMEDIA__]: Implement.
8143         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
8144         * config/sh/sh.md: Set latency of `pt' closer to reality.
8145         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
8146         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
8147         Set move, load and store type attributes.
8148         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
8149         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
8150         profiling.
8151         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
8152         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
8153         * config/sh/sh.c (sh_media_register_for_return): New function.
8154         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
8155         branch-target register.
8156         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
8157         * config/sh/sh.md (return_media_i): Use any call-clobbered
8158         branch-target register.
8159         (return_media): If r18 wasn't copied in the prologue, copy it
8160         here.
8161         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
8162         Clear class FP0_REGS.
8163         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
8164         from elf.h.
8165         2001-03-08  DJ Delorie  <dj@redhat.com>
8166         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
8167         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
8168         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
8169         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8170         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
8171         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
8172         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
8173         return value correctly for call_cookie.
8174         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
8175         * config/sh/crt1.asm (start): Modified so as to call
8176         ___setup_argv_and_call_main.
8177         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
8178         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
8179         SHmedia mode.
8180         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
8181         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
8182         (STRIP_NAME_ENCODING): Use it.
8183         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
8184         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
8185         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
8186         prepare_scc_operands().
8187         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
8188         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
8189         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
8190         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
8191         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8192         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
8193         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
8194         used in shcompact_incoming_args.
8195         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
8196         change.
8197         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
8198         mode.
8199         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
8200         Adjust accordingly.
8201         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8202         Simplify.  Adjust.  Add sanity check.
8203         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
8204         FPU_SINGLE_BIT.
8205         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
8206         TARGET_SHCOMPACT.
8207         (udivsi3, divsi3): Use them.
8208         (force_mode_for_call): New insn.
8209         (call, call_value, sibcall_value): Emit it before SHcompact
8210         calls.
8211         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8212         * config/sh/sh.md (call, call_value, sibcall): Make sure the
8213         call cookie is non-NULL before taking its value.
8214         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
8215         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
8216         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8217         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
8218         block.
8219         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
8220         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
8221         temporary for stack adjusts.  Use MACL and MACH to pass
8222         arguments to shcompact_incoming_args.
8223         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
8224         clobber r1.
8225         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
8226         (nested_trampoline): Load static chain address into r1.
8227         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
8228         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
8229         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
8230         fp_arith_reg_operand().
8231         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
8232         * config/sh/sh.md (casesi): Sign-extend the first two operands,
8233         and use signed compares for them.
8234         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
8235         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
8236         ones properly aligned.
8237         (find_barrier): Account for extra alignment needed for 8-byte wide
8238         constants.
8239         (machine_dependent_reorg): Require a label for the second 4-byte
8240         constant after an 8-byte one.
8241         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
8242         change.
8243         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8244         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
8245         last_float when switching float modes.
8246         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
8247         auto-increment for general-purpose registers.
8248         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
8249         result.
8250         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
8251         for stack adjust.
8252         * config/sh/sh.c (sh_builtin_saveregs): Support using all
8253         registers for varargs.
8254         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
8255         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
8256         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
8257         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
8258         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
8259         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
8260         call_cookie accordingly.
8261         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
8262         (SHCOMPACT_BYREF): Likewise.
8263         (SHCOMPACT_FORCE_ON_STACK): New macro.
8264         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
8265         (sh_builtin_saveregs): Likewise.
8266         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8267         shcompact_incoming_args): Use new shift values.  Support
8268         sequences of consecutive and non-consecutive pushes/pops.
8269         * config/sh/sh.md (return): Don't explicitly use PR_REG.
8270         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
8271         * config/sh/sh.h (TEXT_SECTION): Define.
8272         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
8273         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8274         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
8275         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
8276         return values on FPU-enabled SHmedia.
8277         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
8278         FPU-enabled SHmedia.
8279         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
8280         value is returned in a non-FP reg and is not returned by
8281         reference.
8282         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
8283         jump_ind.
8284         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
8285         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
8286         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
8287         quad-aligned to be passed by callee-copy reference.
8288         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
8289         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
8290         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
8291         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
8292         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
8293         copying low-numbered FP regs to r7 and r8.
8294         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
8295         FP regs to general-purpose regs only if the copy was passed on the
8296         stack.
8297         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
8298         copying FP reg to r9.
8299         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
8300         copy FP regs to general-purpose regs only in outgoing calls.
8301         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
8302         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
8303         HOST_WIDE_INT.
8304         * config/sh/sh.h (struct sh_args): Document all fields.
8305         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
8306         passed partially on the stack should not consider making
8307         sibcalls.
8308         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
8309         stack_regs only for incoming calls.  When passing FP args,
8310         make sure there are FP regs available before modifying
8311         call_cookie.
8312         (SHCOMPACT_BYREF): Pass double args in general-purpose
8313         registers by reference.
8314         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
8315         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
8316         attempt to generate sibcalls if the caller got any arguments
8317         by reference.
8318         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
8319         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
8320         to 8-byte boundaries.
8321         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
8322         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
8323         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
8324         stored in the stack.
8325         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
8326         for the offsets to have the ISA bit set.
8327         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
8328         invocation.  Use beq instead of bgt to mark end of sequence of
8329         loads.
8330         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
8331         bgt to mark end of sequence of stores.
8332         * config/sh/sh.c (arith_operand): Don't check whether
8333         CONST_OK_FOR_J for now.
8334         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
8335         instead of long for conversion.
8336         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
8337         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
8338         before passing it to fprintf.
8339         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
8340         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
8341         Call set_fpscr before reading/writing SR.
8342         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
8343         Call set_fpscr.
8344         * config/sh/lib1funcs.asm: Add `.align 2' directives before
8345         SHmedia code.
8346         (FMOVD_WORKS): Define on SH5 with FPU.
8347         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
8348         setting.
8349         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
8350         _fpscr_values.
8351         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
8352         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
8353         address.
8354         (ia_main_table): Ditto.
8355         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
8356         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8357         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
8358         the definitions from sh.h.
8359         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
8360         TARGET_SH5.
8361         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
8362         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
8363         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8364         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
8365         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
8366         Increment LABEL_NUSES.
8367
8368         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
8369         TARGET_SH5.
8370         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
8371         defined.
8372         * config/sh/elf.h (SIZE_TYPE): Likewise.
8373         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8374         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8375         shcompact_incoming_args): Load switch table addresses using
8376         datalabel.
8377         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8378         (NO_BUILTIN_SIZE_TYPE): Define.
8379         (SIZE_TYPE): Don't define.
8380         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8381         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
8382         definition of __SH5__=32 for -m5-compact-nofpu.
8383         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
8384         ADDR_DIFF_VEC.
8385         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
8386         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
8387         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
8388         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
8389         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
8390         (INSN_LENGTH_ALIGNMENT): Likewise.
8391         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8392         * config/sh/sh.md (call, call_value, sibcall): Simplify
8393         copying of non-branch-target register.
8394         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8395         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
8396         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
8397         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8398         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
8399         floating-point values as structs.
8400         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
8401         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
8402         general-purpose register.
8403         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
8404         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8405         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
8406         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
8407         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
8408         (ENCODE_SECTION_INFO): Enclose variables and constants in
8409         DATALABEL unspecs.
8410         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
8411         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
8412         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
8413         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
8414         only for LABEL_REFs.  For SYMBOL_REFs, prepend
8415         SH_DATALABEL_ENCODING to the symbol name.
8416         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
8417         convert_mode().
8418         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8419         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
8420         UNSPEC_DATALABEL.
8421         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
8422         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
8423         (DATALABEL_REF_P): Don't require CONST.
8424         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
8425         REL label.
8426         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
8427         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
8428         right.
8429         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8430         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
8431         Use shallow_copy_rtx and PUT_MODE to change the mode of
8432         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
8433         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
8434         on SHmedia using GENERAL_REGs.
8435         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8436         bltu_media_i): Fix reversion of conditions.
8437         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8438         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
8439         * config/sh/sh.c (output_far_jump): Save r13 in macl.
8440         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
8441         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
8442         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
8443         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
8444         (GCC_nested_trampoline): Likewise.
8445         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
8446         * config/sh/sh.c (gen_datalabel_ref): Define.
8447         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
8448         (INITIALIZE_TRAMPOLINE): Likewise.
8449         (TRAMPOLINE_ADJUST_ADDRESS): Define.
8450         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
8451         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
8452         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
8453         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
8454         (ic_invalidate): Adjust for SH5.
8455         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
8456         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
8457         _nested_trampoline.
8458         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
8459         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
8460         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
8461         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8462         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
8463         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
8464         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8465         * config/sh/sh.c (target_reg_operand): Match only target-branch
8466         registers and pseudos that aren't virtual registers.
8467         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8468         Copy operands that don't match target_reg_operand to pseudos.
8469         (call_media, call_value_media, sibcall_media): Use
8470         target_reg_operand instead of target_operand.
8471         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
8472         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
8473         * config/sh/sh.c (target_reg_operand): Match hardware registers
8474         other than branch-target registers.
8475         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
8476         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
8477         (fpscr_values) [SH5 == 32]: Define.
8478         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
8479         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8480         Handle function addresses coming in SUBREGs.
8481         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
8482         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8483         shcompact_return_trampoline): Use datalabel where appropriate.
8484         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
8485         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
8486         general-purpose register to copy one branch-target register to
8487         another.
8488         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8489         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
8490         SYMBOL_REFs with VOIDmode.
8491         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8492         bltu_media_i): New insns.
8493         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8494         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
8495         (INIT_CUMULATIVE_ARGS): Likewise.
8496         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
8497         * machmode.def (V16SFmode): New mode.
8498         * c-common.c (type_for_mode): Support V2SF and V16SF.
8499         * tree.c (build_common_tree_nodes_2): Likewise.
8500         * tree.h (tree_index): Likewise.
8501         * calls.c (emit_call_1): Take args_so_far.  Adjust all
8502         callers.  Introduce CALL_POPS_ARGS.
8503         * tm.texi (CALL_POPS_ARGS): Document.
8504         * config/sh/crt1.asm: Implement in SHmedia mode.
8505         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
8506         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
8507         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
8508         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
8509         Implement divsi and udivsi in SHmedia mode.  Introduce
8510         SHcompact trampolines.
8511         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
8512         only in SHmedia64.
8513         (regno_reg_class): Rewrite.
8514         (fp_reg_names): Remove.
8515         (sh_register_names, sh_additional_register_names): New.
8516         (print_operand): Added `u'.  Support SUBREGs in addresses.
8517         Add parentheses around shifted CONSTs.
8518         (output_file_start): Output .mode and .abi directives.
8519         (shiftcosts, addsubcosts, multcosts): Adjust.
8520         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
8521         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
8522         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
8523         bytes, not registers.  Take into account the need for the
8524         SHcompact incoming args trampoline.  Adjust all callers.
8525         (sh_expand_prologue): Take stack_regs into account.  Call
8526         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
8527         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
8528         stack aligned as per SH5 ABI.
8529         (sh_builtin_saveregs): Support SH5 ABI.
8530         (sh_build_va_list, sh_va_start): Likewise.
8531         (initial_elimination_offset): Take alignment into account.
8532         Compute location of PR according to the SH5 stack frame.
8533         (arith_reg_operand): Reject branch-target registers.
8534         (shmedia_6bit_operand): New.
8535         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
8536         (target_reg_operand): Match DImode only.  Accept SUBREGs.
8537         (target_operand): New.
8538         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
8539         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
8540         SIBCALL_REGS for SHmedia.
8541         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
8542         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
8543         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
8544         (TARGET_SWITCHES): New SH5 flags.
8545         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
8546         VALID_REGISTER_P to disable unsupported registers.
8547         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
8548         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
8549         (FUNCTION_ARG_PADDING): Define.
8550         (FASTEST_ALIGNMENT): Adjust.
8551         (SH_REGISTER_NAMES_INITIALIZER): New.
8552         (sh_register_names): Declare.
8553         (DEBUG_REGISTER_NAMES): Define.
8554         (REGISTER_NAMES): Define based on sh_register_names.
8555         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
8556         (sh_additional_register_names): Declare.
8557         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
8558         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
8559         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
8560         (REGISTER_NATURAL_MODE): Define.
8561         (FIRST_PSEUDO_REGISTER): Adjust.
8562         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
8563         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
8564         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
8565         (VECTOR_MODE_SUPPORTED_P): Define.
8566         (REG_CLASS_CONTENTS): Adjust.
8567         (SMALL_REGISTER_CLASSES): Adjust.
8568         (REG_ALLOC_ORDER): Adjust.
8569         (INDEX_REG_CLASS): Adjust.
8570         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
8571         (CONST_OK_FOR_LETTER_P): Adjust.
8572         (PREFERRED_RELOAD_CLASS): Adjust.
8573         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
8574         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
8575         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
8576         (FIRST_FP_PARM_REG): Adjust.
8577         (CALL_POPS_ARGS): Define.
8578         (FUNCTION_ARG_REGNO_P): Adjust.
8579         (struct sh_args): New fields.
8580         (GET_SH_ARG_CLASS): Adjust.
8581         (INIT_CUMULATIVE_ARGS): Adjust.
8582         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
8583         (FUNCTION_ARG_ADVANCE): Adjust.
8584         (FUNCTION_ARG): Adjust.
8585         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
8586         (FUNCTION_ARG_CALLEE_COPIES): Define.
8587         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
8588         (STRICT_ARGUMENT_NAMING): Define.
8589         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
8590         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
8591         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
8592         (SETUP_INCOMING_VARARGS): Adjust.
8593         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
8594         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
8595         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
8596         (SUBREG_OK_FOR_INDEX_P): Adjust.
8597         (EXTRA_CONSTRAINT_S): Update.
8598         (EXTRA_CONSTRAINT_T): New.
8599         (EXTRA_CONSTRAINT): Adjust.
8600         (GO_IF_LEGITIMATE_INDEX): Adjust.
8601         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
8602         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
8603         (MOVE_MAX): Adjust.
8604         (MAX_MOVE_MAX): Define.
8605         (Pmode): Adjust.
8606         (CONST_COSTS): Adjust.
8607         (REGISTER_MOVE_COST): Adjust.
8608         (BRANCH_COST): Adjust.
8609         (TEXT_SECTION_ASM_OP): Adjust.
8610         (DBX_REGISTER_NUMBER): Adjust.
8611         (ASM_OUTPUT_DOUBLE_INT): New.
8612         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
8613         (PREDICATE_CODES): Adjust.
8614         (PROMOTE_MODE): Adjust.
8615         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
8616         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
8617         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
8618         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
8619         (DR0_REG, DR2_REG, DR4_REG): Renumber.
8620         (TR0_REG, TR1_REG, TR2_REG): New.
8621         (XD0_REG): Renumber.
8622         (UNSPEC_COMPACT_ARGS): New.
8623         (type): Added pt and ptabs.
8624         (length): Default to 4 on SHmedia.  Default pt length to 12
8625         and     20 on SHmedia32 and SHmedia64, respectively.
8626         (pt): New function unit.
8627         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
8628         Add whitespace between operands of SHmedia instructions.
8629         (movdicc): Fix.
8630         (adddi3_media, addsi3_media): Adjust constraints.
8631         (subsi3) [SHmedia]: Force operand 1 into a register.
8632         (udivsi3_i1_media, udivsi3_i4_media): New.
8633         (udivsi3): Support SHmedia.
8634         (divsi3_i1_media, divsi3_i4_media): New.
8635         (divsi3): Support SHmedia.
8636         (anddi3, iordi3, xordi3): Adjust constraints.
8637         (zero_extendhidi2, zero_extendqidi2): New.
8638         (extendsidi2, extendhidi2, extendqidi2): New.
8639         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
8640         (pop_e, pop_fpul, pop_4): Likewise.
8641         (movsi_media): Support FP and BT registers.
8642         (movsi_media_nofpu): New.  Adjust splits to DImode.
8643         (lduw, ldub): Renamed to zero_extend* above.
8644         (movqi_media): Fix typo.
8645         (movdi_media): Support FP and BT registers.
8646         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
8647         (movdi_const_32bit): New.
8648         (shori_media): Require immediate operand.  Use `u' for output.
8649         (movdf_media, movsf_media): Simplified.
8650         (movdf_media_nofpu, movsf_media_nofpu): New.
8651         (movdf, movsf): Adjust
8652         (movv2sf, movv2sf, movv16sf): New.
8653         (beq_media, beq_media_i): Adjust constraints.  Don't use
8654         scratch BT register.
8655         (bne_media, bne_media_i): Likewise.
8656         (bgt_media, bgt_media_i): Likewise.
8657         (bge_media, bge_media_i): Likewise.
8658         (bgtu_media, bgtu_media_i): Likewise.
8659         (bgeu_media, bgeu_media_i): Likewise.
8660         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
8661         bunordered): Emit jump insn.  Force operands to registers when
8662         needed.
8663         (jump_media, jump): Simplify.
8664         (call_compact, call_compact_rettramp): New.
8665         (call_value_compact, call_value_compact_rettramp): New.
8666         (call_media, call_value_media): Simplify.
8667         (sibcall_compact, sibcall_media): New.
8668         (call, call_value): Adjust for SHmedia and SHcompact.
8669         (sibcall, sibcall_value, untyped_call): Likewise.
8670         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
8671         (indirect_jump): Adjust for SHmedia.
8672         (casesi_jump_media): New.
8673         (nop): Re-enable for SHmedia.
8674         (call_site): Restrict to SH1.
8675         (casesi): Adjust for SHmedia.
8676         (casesi_shift_media, casesi_load_media): New.
8677         (return): Explicitly use PR register.  Call return trampoline
8678         on SHcompact.
8679         (return_i): Explicitly use PR register.
8680         (shcompact_return_tramp, shcompact_return_tramp_i): New.
8681         (return_media): Adjust.
8682         (shcompact_incoming_args): New.
8683         (epilogue): Adjust.
8684         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8685         (movstrsi): Disable on SH5.
8686         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
8687         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
8688         (subsf3, subsf3_media): Likewise.
8689         (mulsf3, mulsf3_media, mac_media): Likewise.
8690         (divsf3, divsf3_media): Likewise.
8691         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
8692         (floatsisf2, fux_truncsfsi2): Likewise.
8693         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
8694         constraints.
8695         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
8696         (cmpunsf_media, cmpsf): Likewise.
8697         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
8698         (abssf2, abssf2_media): Likewise.
8699         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
8700         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
8701         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
8702         (floatsidf2, fix_truncdfsi2): Likewise.
8703         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
8704         constraints.
8705         (cmpeqdf_media, cmpgtdf_media): Likewise.
8706         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
8707         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
8708         (absdf2, absdf2_media): Likewise.
8709         (extendsfdf2, extendsfdf2_media): Likewise.
8710         (truncsfdf2, truncsfdf2_media): Likewise.
8711         * config/sh/sh64.h: New file.
8712         * config/sh/t-sh64: New file.
8713         * config/sh/shmedia.h: New file.
8714         * config/sh/ushmedia.h: New file.
8715         * config/sh/sshmedia.h: New file.
8716         * configure.in: Added sh64-*-elf.
8717         * configure: Rebuilt.
8718         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
8719         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
8720         (reg_class_from_letter): Use `b' for TARGET_REGS.
8721         (print_operand): Support `%M', `%m', `AND' and
8722         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
8723         (andcosts): Adjust for SHmedia.
8724         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
8725         Likewise.
8726         (target_reg_operand): New function.
8727         * config/sh/sh-protos.h (target_reg_operand): Declare.
8728         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
8729         FP registers on SH5.
8730         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
8731         on SH4.
8732         (TARGET_REGISTER_P): New macro.
8733         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
8734         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
8735         (EXTRA_CONSTRAINT_S): New macro.
8736         (EXTRA_CONSTRAINT): Adjust.
8737         (FLOAT_TYPE_SIZE): Define to 32.
8738         (Pmode): DImode on SHmedia.
8739         (CONST_COSTS): Adjust for SHmedia literals.
8740         (PREDICATE_CODES): Added target_reg_operand.
8741         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
8742         * config/sh/sh.md: Remove all attrs from SHmedia insns.
8743         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
8744         (cmpdi): Accept SHmedia.
8745         (movdicc_false, movdicc_true): New insns.
8746         (movdicc): New expand.
8747         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
8748         no_new_pseudos.
8749         (addsi3_media): Match `S' constraint.
8750         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
8751         (negdi2): Expand for SHmedia.
8752         (one_cmpldi2): New expand.
8753         (zero_extendsidi2): Change from expand to insn.
8754         (extendsidi2): Add constraints.
8755         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
8756         LD/ST address.  Fix SI immediate loading split.
8757         (movhi_media, movqi_media, lduw, ldub): New insns.
8758         (movhi, movqi): Accept SHmedia.
8759         (shori_media, movdi_media): Relax input constraints.  Split
8760         symbolic constants.
8761         (movdf_media, movsf_media): New insn.  New split to movdi.
8762         (movdf, movsf): Match on SHmedia.
8763         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
8764         bgeu_media): New insns and splits.  New insns with `_i' suffix.
8765         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
8766         (bunordered): New expand.
8767         (jump_compact): Renamed from `jump'.
8768         (jump_media): New insn.
8769         (jump): New expand.
8770         (call_media, call_value_media): New insns.
8771         (call, call_value): Adjust.
8772         (indirect_jump_compact): Renamed from `indirect_jump'.
8773         (indirect_jump_media): New insn.
8774         (indirect_jump): New expand.
8775         (untyped_call, return): Accept SHmedia.
8776         (return_media): New insn.
8777         (prologue, epilogue, blockage): Accept SHmedia.
8778         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8779         (sunordered): New expand.
8780         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
8781         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
8782         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
8783         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
8784         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
8785         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
8786         abssf2_media): New insns.
8787         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
8788         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
8789         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
8790         floatdidf2, floatsidf2_media, fix_truncdfdi2,
8791         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
8792         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
8793         absdf2_media): New insns.
8794         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
8795         (extendsfdf2_media, truncdfsf2_media): New insns.
8796         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
8797         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
8798         * config/sh/sh.h (CONST_OK_FOR_J): Document.
8799         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
8800         * config/sh/sh.md (adddi3): New expand.
8801         (adddi3_media, adddi3z_media): New insns.
8802         (adddi3_compact): Renamed from adddi3.
8803         (addsi3_media): Use add.l r63 to add constant zero.
8804         (subdi3): New expand.
8805         (subdi3_media): New insn.
8806         (subdi3_compact): Renamed from subdi3.
8807         (mulsidi3): New expand.
8808         (mulsidi3_media): New insn.
8809         (mulsidi3_compact): Renamed from mulsidi3.
8810         (umulsidi3): New expand.
8811         (umulsidi3_media): New insn.
8812         (umulsidi3_compact): Renamed from umulsidi3.
8813         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
8814         (ashlsi3, ashrsi3, lshrsi3): Use them.
8815         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
8816         (ashldi3, ashrdi3, lshrdi3): Use them.
8817         (zero_extendsidi2): New expand.
8818         (extendsidi2): New insn.
8819         (movsi_media): New insn.  Split to movdi to load constants.
8820         (movsi): Enable for shmedia.
8821         (movdi_media): New insn.  Use shori_media to load wide constants.
8822         (short_media): New insn.
8823         (movdi): Enable for shmedia.
8824         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
8825         * config/sh/sh.h (CPP_SPEC): Added `m5'.
8826         (SUBTARGET_CPP_SPEC): Added `!m5'.
8827         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
8828         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
8829         to all other SH variants.
8830         (TARGET_DEFAULT): Set to SH1_BIT.
8831         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
8832         (BITS_PER_WORD): Raise to 64 on shmedia.
8833         (MAX_BITS_PER_WORD): Change to 64.
8834         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
8835         (INT_TYPE_SIZE): Keep as 32.
8836         (UNITS_PER_WORD): Raise to 8 on shmedia.
8837         (MIN_UNITS_PER_WORD): Keep as 4.
8838         (POINTER_SIZE): Raise to 64 on shmedia.
8839         (CONST_OK_FOR_J): New macro.
8840         (CONST_OK_FOR_LETTER_P): Use it.
8841         (processor_type): Add PROCESSOR_SH5.
8842         * config/sh/sh.md: Conditionalize all expands, insns and
8843         splits to TARGET_SH1.
8844         (cpu): Added sh5.
8845         (addsi3_compact): Renamed from...
8846         (addsi3): Now an expand.
8847         (addsi3_media, subsi3_media): New insns.
8848         (subsi3): Don't negate constants with SHmedia.
8849
8850         * hooks.c: New file.
8851         * hooks.h: New file.
8852         * Makefile.in (HOOKS_H): New.
8853         (TARGET_DEF_H): Added $(HOOKS_H).
8854         (OBJS): Added hooks.o.
8855         (cfgcleanup.o, bb-reorder.o): Added target.h.
8856         (hooks.o): Added dependencies.
8857         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
8858         (TARGET_INITIALIZER): this.
8859         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
8860         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
8861         * bb-reorder.c: Include target.h.
8862         (reorder_basic_blocks): Skip if cannot modify jumps.
8863         * cfgcleanup.c: Include target.h.
8864         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
8865
8866 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
8867
8868         * config/mips/mips.md (casesi_internal, casesi_internal_di):
8869         Protect jump delay slot instructions with .set noreorder and
8870         .set nomacro.
8871
8872 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
8873
8874         * config/mips/mips.md (casesi_internal_di): Calculate
8875         the index into the target offset table correctly.
8876
8877 2002-02-08  Richard Henderson  <rth@redhat.com>
8878
8879         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
8880         * final.c (output_addr_const): Accept and discard SUBREG.
8881         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
8882         mark them unknown instead.
8883         (simplify_subtraction): Handle RTX_UNKNOWN.
8884         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
8885
8886 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
8887
8888         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
8889
8890 2002-02-08  Richard Henderson  <rth@redhat.com>
8891
8892         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
8893
8894 2002-02-08  Andreas Jaeger  <aj@suse.de>
8895
8896         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
8897         * config/i386/t-linux64: New file.
8898
8899 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
8900
8901         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
8902         * c-parse.in (compstmt): Clear last_expr_type.
8903
8904 2002-02-07  Richard Henderson  <rth@redhat.com>
8905
8906         * loop.c (strength_reduce): Sink final_value when not
8907         eliminating a biv.
8908
8909 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
8910
8911         * config/sparc/freebsd.h: Fix mismatched spec {.
8912
8913 2002-02-07  Richard Henderson  <rth@redhat.com>
8914
8915         * cfgrtl.c: Include recog.h and insn-config.h.
8916         (keep_with_call_p): Fix general_operand invocation.
8917         * Makefile.in (cfgrtl.o): Update dependencies.
8918
8919 2002-02-07  Kazu Hirata  <kazu@hxi.com>
8920
8921         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
8922         comment.  Accept HImode only if TARGET_H8300.
8923
8924 2002-02-07  Eric Christopher  <echristo@redhat.com>
8925
8926         * config/mips/crtn.asm: Cleanup #ifdefs.
8927
8928 2002-02-07  Eric Christopher  <echristo@redhat.com>
8929
8930         * config/mips/crti.asm: Add changes for mips16. mips16 uses
8931         register 7 as RA instead of $31.
8932         * config/mips/crtn.asm: Ditto.
8933         * config/mips/mips.c (mips_move_2words): Add case for
8934         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
8935         (compute_frame_size): Fix typo.
8936         (save_restore_insns): Ditto.  Make documentation about using
8937         register $7 as return register more precise.
8938         (mips_expand_epilogue): Fix comment. Add code to work around not
8939         being able to add to the stack pointer directly.
8940         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
8941         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
8942         epilogue.
8943
8944 2002-02-07  Tom Rix  <trix@redhat.com>
8945
8946         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
8947         immediates in ldu and stdu DS opcode field.
8948         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
8949         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
8950         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
8951
8952 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
8953
8954         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
8955         offset for stack bias.
8956
8957 2002-02-07  H.J. Lu <hjl@gnu.org>
8958
8959         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
8960
8961 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
8962
8963         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
8964
8965 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
8966
8967         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
8968         * i386.c (x86_order_regs_for_local_alloc): New global function.
8969         * i386.h (REG_ALLOC_ORDER): CLeanup.
8970         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
8971
8972 2002-02-07  Richard Henderson  <rth@redhat.com>
8973
8974         PR optimization/2463
8975         * alias.c (find_base_value): Recall base values for fixed hard regs.
8976         * loop.c (loop_regs_update): Don't use single_set on non-insns.
8977
8978 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
8979
8980         * config/mips/mips.md (define_delay) [mips16]: Adjust required
8981         length.
8982
8983 2002-02-06  Richard Henderson  <rth@redhat.com>
8984
8985         PR c/5609
8986         * stmt.c (resolve_operand_name_1): Take more care with mixed
8987         named and unnamed operands.
8988
8989 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
8990             Jan Hubicka  <jh@suse.cz>
8991
8992         * loop.c (remove_constant_addition): Avoid clobbering a shared
8993         CONST expression.
8994
8995 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
8996
8997         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
8998         * config/s390/t-linux64: New file.
8999         * config/s390/libgcc-glibc.ver: New file.
9000
9001 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9002
9003         * config/s390/linux64.h: Delete file.
9004         * config/s390/s390x.h: New file.
9005         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
9006         as target header file.
9007         * config/s390/linux.h (TARGET_VERSION): Define depending on
9008         DEFAULT_TARGET_64BIT.
9009         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
9010         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
9011         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
9012         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
9013         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
9014         (EXTRA_SPEC): New define.
9015         * config/s390/s390.h (TARGET_VERSION): Define depending on
9016         DEFAULT_TARGET_64BIT.
9017         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
9018
9019 2002-02-06  Jason Merrill  <jason@redhat.com>
9020
9021         * c-decl.c (finish_function): Warn about a non-void function with
9022         no return statement and no abnormal exit.
9023         (current_function_returns_abnormally): New variable.
9024         (start_function): Clear it.
9025         (struct c_language_function): Add returns_abnormally.
9026         (push_c_function_context): Save it.
9027         (pop_c_function_context): Restore it.
9028         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
9029         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
9030         an explicit return type.
9031         * c-tree.h: Declare current_function_returns_abnormally.
9032         (C_FUNCTION_IMPLICIT_INT): New macro.
9033         * c-typeck.c (build_function_call): Set it.
9034         (c_expand_return): Set current_function_returns_value even if the
9035         value is erroneous.
9036
9037 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9038
9039         PR c/5420:
9040         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
9041         unsafe for reevaluation.
9042
9043 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9044
9045         PR c/5482:
9046         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
9047         EXPR_STMT, but COMPOUND_STMT, recurse into it.
9048
9049 2002-02-06  Richard Henderson  <rth@redhat.com>
9050
9051         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
9052         be a general_operand.  Dest for function value must be a pseudo.
9053
9054 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
9055
9056         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
9057         as SYMBOL_REFs from the constant pool.
9058
9059 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
9060
9061         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
9062         passed by invisible reference.
9063
9064 2002-02-05  Richard Henderson  <rth@redhat.com>
9065
9066         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
9067
9068 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
9069
9070         Implement using "base addresses" in insn operands as default.
9071         * config/mmix/mmix.c (mmix_conditional_register_usage): if
9072         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
9073         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
9074         used to read the rtx value.
9075         (mmix_target_asm_function_epilogue): Fix spacing.
9076         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
9077         (mmix_legitimate_address): Ditto.
9078         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
9079         should be loaded with a GETA insn.  Don't allocate needless extra
9080         char for nul termination and fix misleading comment.
9081         (mmix_print_operand_address): Handle constants if
9082         TARGET_BASE_ADDRESSES.
9083         (mmix_output_register_setting): Use base addressing if
9084         TARGET_BASE_ADDRESSES and the number of insns is 3.
9085         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
9086         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
9087         to use R as constraint, add LDA to match s.
9088         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
9089         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
9090         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
9091         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
9092         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
9093         order with other fixed registers.
9094         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
9095         other parameter/call-clobbered registers.
9096         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
9097         -mbase-addresses, -mno-base-addresses.
9098         (MMIX Options): Ditto.
9099
9100 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9101
9102         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
9103
9104 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
9105
9106         * config/rs6000/altivec.h: Change elem to _S_elem.
9107
9108 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9109
9110         * config/netbsd.h (WCHAR_TYPE): Define.
9111         (WCHAR_TYPE_SIZE): Ditto.
9112         (WINT_TYPE): Ditto.
9113         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
9114         (WCHAR_UNSIGNED): Ditto.
9115         (WCHAR_TYPE_SIZE): Ditto.
9116         (WINT_TYPE): Ditto.
9117         * config/arm/netbsd.h: Likewise.
9118         * config/i386/netbsd-elf.h: Likewise.
9119         * config/i386/netbsd.h: Likewise.
9120         * config/m68k/netbsd-elf.h: Likewise.
9121         * config/m68k/netbsd.h: Likewise.
9122         * config/ns32k/netbsd.h: Likewise.
9123         * config/sparc/netbsd.h: Likewise.
9124         * config/vax/netbsd.: Likewise.
9125
9126 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
9127
9128         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
9129         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
9130         (TARGET_INITIALIZER): this.
9131         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
9132         (BITFIELD_NBYTES_LIMITED): Markup fix.
9133         * tree.h (default_ms_bitfield_layout_p): Declare.
9134         (record_layout_info): Added prev_field.
9135         * tree.c (default_ms_bitfield_layout_p): New fn.
9136         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
9137         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
9138         * stor-layout.c: Include target.h.
9139         (start_record_layout): Initialize prev_field.
9140         (place_field): Handle MS bit-field layout, and disregard
9141         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
9142         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
9143         * Makefile.in (stor-layout.o): Adjust dependencies.
9144
9145 2002-02-05  Jason Merrill  <jason@redhat.com>
9146
9147         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
9148
9149 2002-02-05  Andreas Jaeger  <aj@suse.de>
9150
9151         * crtstuff.c: Fix comments.
9152
9153 2002-02-05  Richard Henderson  <rth@redhat.com>
9154
9155         PR fortran/3393
9156         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
9157         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
9158
9159         PR fortran/3392
9160         * config/mips/mips.c (function_arg): Handle TImode.
9161         (function_arg_advance): Likewise.
9162
9163 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9164
9165         * config/rs6000/altivec.h (vec_step_help): Rename to
9166         __vec_step_help.
9167
9168 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9169
9170         * config/rs6000/altivec.h: Fix typos.
9171
9172 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9173
9174         * config/arm/netbsd.h: Correct a comment.
9175
9176 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9177
9178         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
9179         building void typed builtins.
9180
9181         * config/rs6000/altivec.h (vec_ld*): Fix typos.
9182         (vec_step): Implement for C++.
9183
9184 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9185
9186         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
9187
9188 2002-02-04  Richard Henderson  <rth@redhat.com>
9189
9190         * combine.c (nonzero_bits): Re-introduce special case for
9191         sp/fp/ap wrt REGNO_POINTER_ALIGN.
9192
9193 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9194
9195         * doc/extend.texi: Warn about unsupported usage of altivec
9196         builtins.
9197
9198         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
9199         (altivec_predicate_*): New.
9200
9201         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
9202         Add C++ version of vec_*() functions.
9203
9204         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
9205         (bdesc_2arg): Remove altivec predicates.
9206         (altivec_expand_builtin): Handle predicates.
9207         (altivec_init_builtins): Handle predicates.
9208         (altivec_expand_predicate_builtin): New.
9209
9210 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9211
9212         * pa.c (DO_FRAME_NOTES): Move forward.
9213         (store_reg): Revise handling of frame notes.
9214         (load_reg): Likewise.
9215         (set_reg_plus_d): Likewise.
9216         (hppa_expand_prologue): Likewise.
9217         (hppa_expand_epilogue): Likewise.
9218
9219 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9220
9221         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
9222
9223 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9224
9225         PR c/4475, c++/3780:
9226         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
9227         * c-common.h (SWITCH_TYPE): Define.
9228         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
9229         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
9230         Rename spareness variable to sparseness.
9231         (expand_end_case_type): Renamed from expand_end_case, use orig_type
9232         if non-NULL instead of TREE_TYPE (orig_index).
9233         * tree.h (expand_end_case_type): Renamed from expand_end_case.
9234         (expand_end_case): Define using expand_end_case_type.
9235         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
9236         to expand_end_case_type.
9237         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
9238
9239 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9240
9241         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
9242         (BIGGEST_ALIGNMENT): Change to 128.
9243
9244 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9245
9246         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
9247
9248 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9249
9250         * pa.md (call_internal_reg_64bit): Remove unused variable.
9251
9252 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
9253
9254         * config/arm/arm.h (machine_function): Add uses_anonymous_args
9255         field.
9256         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
9257         * config/arm/arm.c (current_function_anonymous_args): Delete,
9258         replace uses with cfun->machine->uses_anonymous_args.
9259         (arm_reorg): Do not reset uses_anonymous_args.
9260
9261         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
9262         any geenral register.
9263
9264 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
9265
9266         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
9267         the entry block.
9268
9269 2002-02-04  Richard Henderson  <rth@redhat.com>
9270
9271         * combine.c (force_to_mode): Remove STACK_BIAS code.
9272         (nonzero_bits): Likewise.  Replace sp/fp special case with
9273         REGNO_POINTER_ALIGN.
9274
9275         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
9276         (HARD_FRAME_POINTER_REGNUM): New.
9277         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
9278         (FIXED_REGS, CALL_USED_REGS): Update.
9279         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
9280         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
9281         (HARD_REGNO_NREGS): Update for SFP.
9282         (STACK_POINTER_OFFSET): Include bias here ...
9283         (FIRST_PARM_OFFSET): ... not here.
9284         (STACK_BIAS): Remove.
9285         (INIT_EXPANDERS): New.
9286         (STARTING_FRAME_OFFSET): Do not include bias.
9287         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
9288         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
9289         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
9290         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
9291         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
9292         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
9293         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
9294         (MUST_SAVE_REGISTER): Likewise.
9295         (sparc_flat_function_prologue): Likewise.
9296         (sparc_flat_function_epilogue): Likewise.
9297         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
9298         (sparc_init_modes): SFP is GENERAL_REGS.
9299         (sparc_builtin_saveregs): SFP does not have bias applied.
9300
9301 2002-02-04  Richard Henderson  <rth@redhat.com>
9302
9303         * config/alpha/alpha.c (current_function_is_thunk): Don't check
9304         current_function_is_thunk.
9305         (alpha_sa_mask): Distinguish between current_function_is_thunk
9306         called from ASM_OUTPUT_MI_THUNK and not.
9307         (alpha_does_function_need_gp): Thunks always need gp.
9308         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9309         (alpha_output_mi_thunk_osf): New.
9310         * config/alpha/alpha-protos.h: Update.
9311         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
9312
9313 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
9314
9315         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
9316         function types, not when they're taken away.
9317
9318 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
9319
9320         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
9321         CODE_LABEL and jump table when replacing a table jump with a
9322         simple jump.
9323
9324 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9325
9326         * config/s390/s390-protos.h (legitimize_la_operand,
9327         s390_secondary_input_reload_class, s390_plus_operand,
9328         s390_expand_plus_operand): Add prototypes.
9329
9330         config/s390/s390.c (s390_secondary_input_reload_class,
9331         s390_plus_operand, s390_expand_plus_operand): New functions.
9332
9333         (struct s390_address): New member 'pointer'.
9334         (s390_decompose_address): Compute it.
9335         (legitimate_la_operand_p): Use it.
9336         (legitimize_la_operand): New function.
9337         (movti, movdi, movdf splitters): Call it.
9338
9339         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
9340         (PREDICATE_CODES): Add s390_plus_operand.
9341
9342         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
9343         (la_ccclobber): Allow GENERAL_REGS as output operand.
9344
9345         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
9346         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
9347         (*la_64, *la_31, reload_indi, reload_insi): ... these.
9348
9349 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9350
9351         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
9352         register names for regular asm () construct.
9353
9354 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9355
9356         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
9357         registers.
9358
9359 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9360
9361         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
9362         pat for recog.
9363
9364 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
9365
9366         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
9367         constant pool to be identical by string address and index.
9368
9369 2002-02-04  Anthony Green  <green@redhat.com>
9370
9371         * output.h (SECTION_OVERRIDE): Define.
9372         * varasm.c (named_section): Obey SECTION_OVERRIDE.
9373
9374 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9375
9376         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
9377         by existing arm*-*-netbsd* (a.out) target.
9378         (ns32k-*-netbsdelf*): Likewise.
9379         (sparc-*-netbsdelf*): Likewise.
9380         (vax-*-netbsdelf*): Likewise.
9381
9382 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
9383
9384         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
9385         headers and libobjc headers.
9386
9387 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
9388
9389         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
9390         (_mingw.h): Remove duplicate include.
9391
9392 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9393
9394         * config.gcc: Set cpu_type to m68k for 68010, as well.
9395         (m68010-*-netbsdelf*): New...
9396         (m68k*-*-netbsdelf*): ...targets.
9397         * config/m68k/netbsd-elf.h: New file.
9398
9399 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9400
9401         * config/h8300/h8300.c (hand_list): Move inside function_arg.
9402
9403 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9404
9405         * config/h8300/h8300.c (h8_push_ops): Move inside
9406         h8300_init_once.
9407         (h8_pop_ops): Likewise.
9408         (h8_move_ops): Likewise.
9409
9410 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9411
9412         * config/h8300/h8300.c (os_task): Make it static.
9413         (monitor): Likewise.
9414         (pragma_saveall): Likewise.
9415
9416 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
9417
9418         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
9419         constant is a valid sign-extension for Pmode.
9420
9421 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9422
9423         * config/h8300/h8300.c: Fix formatting.
9424
9425 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9426
9427         * config/h8300/h8300.md: Fix formatting.
9428
9429 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9430
9431         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
9432         predicates of operands[1].  Split the patterns for each
9433         processor variant.
9434
9435 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9436
9437         * config/h8300/h8300.md (xor patterns): Tighten the predicates
9438         of operands[1] to register_operand.
9439
9440 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9441
9442         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
9443         * cpphash.c (_cpp_init_hashtable): Similarly.
9444         * cppinit.c (cpp_create_reader): Default the signed_char flag.
9445         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
9446         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
9447         (cpp_handle_option): Handle the new options.
9448         * cpplex.c (cpp_interpret_charconst): Use new flag.
9449         * cpplib.h (struct cpp_options): New member signed_char.
9450         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
9451         (cpp_options): Handle -fsigned-char and -funsigned-char.
9452         (static_specs): Remove signed_char_spec.
9453         (do_spec1): Don't handle %c.
9454         * system.h: Poison SIGNED_CHAR_SPEC.
9455         * tradcif.y (yylex): Use flag_signed_char.
9456         * tradcpp.h (flag_signed_char): New.
9457         * tradcpp.c (flag_signed_char): New.
9458         (main): Handle new command-line options.
9459         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
9460 config:
9461         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
9462         * avr/avr.h: Remove old comments.
9463         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
9464         (CC1_SPEC): Pass -fsigned-char if -mic*.
9465         (SIGNED_CHAR_SPEC): Remove.
9466 doc:
9467         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
9468
9469 2002-02-01  Eric Christopher  <echristo@redhat.com>
9470
9471         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
9472         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
9473         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
9474         (ASM_OUTPUT_REG_POP): Ditto.
9475
9476 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9477
9478         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
9479         patch.
9480
9481 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9482
9483         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
9484
9485 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9486
9487         PR c/5304:
9488         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
9489         unconditionally.
9490
9491 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9492
9493         * cfganal.c: Include tm_p.h.
9494         (keep_with_call_p): Fix the test that determines if a register holds
9495         the return value of a call.
9496
9497 2002-02-01  DJ Delorie  <dj@redhat.com>
9498
9499         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
9500         we are given conflicting registers, switch to the other one we
9501         had allocated for us.
9502         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
9503         as TImode so we know when the "other" register is available.
9504
9505 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
9506
9507         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
9508         sparc/sparc_bi.h.
9509
9510 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9511
9512         * cfganal.c (keep_with_call_p): New function.
9513         (flow_call_edges_add): Prevent splitting a block between a call and
9514         a single-set instruction that should be kept in the same block.
9515
9516 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9517
9518         * doc/install.texi (avr): Update outdated URL.
9519
9520 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
9521
9522         * config/stormy16/stormy16.md (pushqi): New.
9523         (popqi): New.
9524         (pushhi): New.
9525         (pophi): New.
9526         (movhi): Remove stack operands.
9527         (movqi): Likewise.
9528         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
9529         nonimmediate_nonstack_operand.
9530         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
9531         New.
9532         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
9533         New.
9534
9535 2002-01-31  Jason Merrill  <jason@redhat.com>
9536
9537         * Makefile.in (c-parse.c): Handle .output file.
9538         * objc/Make-lang.in (objc-parse.c): Likewise.
9539
9540 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
9541
9542         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
9543         the -me[lb] option is given.  Don't output the default flag
9544         twice.
9545
9546 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
9547
9548         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
9549         the primary source file; this has not been done yet.
9550         * c-decl.c (c_expand_body): Reset input_filename from
9551         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
9552
9553 2002-01-31  Kazu Hirata  <kazu@hxi.com>
9554
9555         * rtlanal.c (subreg_regno_offset): Do not use
9556         SUBREG_REGNO_OFFSET.
9557         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
9558         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
9559
9560 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9561
9562         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
9563         version rather than GNATS version in --version output.
9564
9565 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
9566
9567         * ifcvt.c (noce_process_if_block): Make a copy of the destination
9568         when copying back from a temporary.
9569
9570 2002-01-30  Richard Henderson  <rth@redhat.com>
9571
9572         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
9573         and new_dest are the same.
9574
9575 2002-01-30  Richard Henderson  <rth@redhat.com>
9576
9577         PR opt/5076
9578         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
9579         * rtl.c (note_insn_name): Update.
9580         * emit-rtl.c (remove_unnecessary_notes): Kill it.
9581         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
9582         to perform loop rotation.
9583         (expand_exit_loop_top_cond): New.
9584         * tree.h (expand_exit_loop_top_cond): Declare it.
9585         * c-semantics.c (genrtl_while_stmt): Use it.
9586         (genrtl_for_stmt): Likewise.
9587
9588 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
9589
9590         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
9591         arguments to 64-bit boundaries on 64-bit ABIs.
9592
9593 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
9594
9595         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
9596
9597 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9598
9599         * c-decl.c (grokdeclarator): Handle type being a typedef for an
9600         invalid type.
9601
9602 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
9603
9604         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
9605         * config/sparc/sparc_bi.h: Remove file.
9606         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
9607
9608 2002-01-30  Richard Henderson  <rth@redhat.com>
9609
9610         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
9611
9612 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
9613
9614         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
9615
9616 2002-01-30  Jason Merrill  <jason@redhat.com>
9617
9618         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
9619         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
9620         (reg_save): Use DW_CFA_offset_extended_sf instead.
9621
9622         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
9623
9624 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9625
9626         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
9627         in cselib_lookup.
9628
9629 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
9630
9631         * rs6000.md ("*call_value_local32"): Remove constraints.
9632         ("*call_value_local64"): Same.
9633         ("*call_value_indirect_nonlocal_aix32"): Same.
9634         ("*call_value_nonlocal_aix32"): Same.
9635         ("*call_value_indirect_nonlocal_aix64"): Same.
9636         ("*call_value_nonlocal_aix64"): Same.
9637         ("*call_value_nonlocal_sysv"): Same.
9638
9639 2002-01-29  Richard Henderson  <rth@redhat.com>
9640
9641         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
9642
9643 2002-01-29  Richard Henderson  <rth@redhat.com>
9644
9645         * expr.c (force_operand): Ignore flag_pic for detecting pic
9646         address loads.
9647         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
9648         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
9649         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
9650         instead of open-coded loop.
9651         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
9652         be fixed when in use.
9653
9654 2002-01-29  Richard Henderson  <rth@redhat.com>
9655
9656         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
9657         * sched-rgn.c (propagate_deps): Update them.
9658         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
9659         clobbers list when either gets too long.
9660
9661 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9662
9663         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
9664         and INDEX_REGS the same as GENERAL_REGS.
9665         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9666
9667 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9668
9669         * tree.c (build_nonstandard_integer_type): Correct prototype.
9670
9671 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
9672
9673         * config/s390/s390.md (movstrsico, movstrdix_64,
9674         movstrsix_31): Remove, replace by ...
9675         (movstrdi_short, movstrsi_short, movstrdi_long,
9676         movstrsi_long): ... these.  New.
9677         (movstrdi, movstrsi): Adapt.
9678
9679         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
9680         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
9681         Remove unnecessary CC clobber.
9682         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
9683         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
9684
9685         (divmoddi4): Don't partially initialize TImode register.
9686
9687 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
9688
9689         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
9690
9691 2002-01-29  Richard Henderson  <rth@redhat.com>
9692
9693         * flow.c (print_rtl_and_abort): Remove.
9694         (print_rtl_and_abort_fcn): Remove.
9695         (verify_local_live_at_start): Use dump_bb instead.
9696         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
9697         (verify_wide_reg_1): Return 2 on mode test failure.
9698
9699 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9700
9701         PR c/3325, c/3326, c/2511, c/3347
9702         * c-decl.c (enum_decl_context): Remove BITFIELD.
9703         (grokdeclarator): Take bitfield width as an input.
9704         Ensure bitfields are given the correct type.  Perform
9705         bitfield width validation with build_bitfield_integer_type
9706         rather than waiting for finish_struct.
9707         (grok_typename, grok_typename_in_parm_context, start_decl,
9708         push_parmdecl, grokfield, start_function): Update calls to
9709         grokdeclarator.
9710         (build_bitfield_integer_type): New function.
9711         (finish_struct): Move bitfield validation to grokdeclarator
9712         and build_bitfield_integer_type.
9713         * tree.c (build_nonstandard_integer_type): New function.
9714         * tree.h (build_nonstandard_integer_type): New prototype.
9715 objc:
9716         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
9717
9718 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9719
9720         PR other/1502:
9721         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
9722         don't ignore unrecognized -W* options.
9723         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
9724         * cpplib.h (cpp_handle_option): Adjust prototype.
9725         * c-decl.c (c_decode_options): Pass 0 as last argument to
9726         cpp_handle_option.
9727
9728         PR c/2896:
9729         * gcc.c (cpp_unique_options): Split from cpp_options.
9730         (cpp_options): Source cpp_unique_options.
9731         (default_compilers): Use cpp_unique_options instead of cpp_options
9732         when used together with cc1_options.
9733         (static_specs): Add cpp_unique_options.
9734         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
9735         when used together with cc1_options.
9736
9737 2002-01-29  Kazu Hirata  <kazu@hxi.com>
9738
9739         * config/h8300/h8300-protos.h: Update the prototype of
9740         output_a_shift.
9741         * config/h8300/h8300.c (output_a_shift): Remove an unused
9742         argument 'insn'.  Remove redundant code.
9743         * config/h8300/h8300.md: Adust to the new prototype of
9744         output_a_shift.
9745
9746 2002-01-29  Kazu Hirata  <kazu@hxi.com>
9747
9748         * config/h8300/h8300-protos.h: Update the prototypes of
9749         emit_a_rotate and expand_a_rotate.
9750         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
9751         first argument to 'enum rtx_code'.
9752         (expand_a_rotate): Likewise.
9753
9754 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9755
9756         * config/h8300/h8300-protos.h: Update the prototype of
9757         output_simode_bld.
9758         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
9759         'log2'.
9760         * config/h8300/h8300.md: Adjust to the new prototype.
9761
9762 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9763
9764         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
9765         redundant code.
9766
9767 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9768
9769         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
9770         is a fixed register before returning pic_offset_table_rtx.
9771         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
9772         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
9773
9774 2002-01-28  Jason Merrill  <jason@redhat.com>
9775
9776         * dwarf2.h: Sync with src version.
9777
9778 2002-01-28  Paul Koning  <pkoning@equallogic.com>
9779
9780         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
9781         BT_FN_VOID_PTR_VAR.
9782         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
9783         * doc/extend.texi (__builtin_prefetch): Update documentation:
9784         first argument is now const void ptr.
9785
9786 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9787
9788         * config/h8300/h8300-protos.h: Remove an unused prototype.
9789
9790 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
9791
9792         * toplev.c (lang_independent_init): Round up identifier size.
9793
9794 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
9795
9796         * config.gcc: Revert previous change.
9797
9798 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
9799
9800         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
9801
9802 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
9803
9804         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
9805         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
9806         other non-elf netbsd config frags.
9807         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
9808         collect2 will does that.
9809         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
9810         shared-lib frobbing will work.
9811
9812 2002-01-28  Kazu Hirata  <kazu@hxi.com>
9813
9814         * config/h8300/h8300.h: Fix formatting.
9815         * config/h8300/h8300.md: Likewise.
9816
9817 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
9818
9819         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
9820         the old, removed AAA_standards fix.
9821         * fixinc/fixincl.x: Rebuilt.
9822
9823 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
9824
9825         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
9826         atexit call in crtbegin, hooked in after call to frame_dummy;
9827         register EH before registering __fini__start.
9828
9829 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
9830
9831         * config/rs6000/altivec.h: Remove spurious semicolons.
9832
9833 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9834
9835         * config/h8300/h8300.md: Replace dead bit extraction patterns
9836         with ones that work.
9837
9838 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9839
9840         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
9841         if not STRICT_ALIGNMENT.
9842         * rtl.h (MEM_ALIGN): Likewise.
9843
9844 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9845
9846         * doc/invoke.texi (-fdump-translation-unit): Revert this
9847         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9848
9849 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9850
9851         * config/h8300/h8300.md (define_constants): New.
9852         (anonymous patterns) Use defined constants appropriately.
9853
9854 2002-01-27  Kazu Hirata  <kazu@hxi.com>
9855
9856         * config/h8300/h8300.c (function_arg): Remove redundant code.
9857
9858 2002-01-26  Richard Henderson  <rth@redhat.com>
9859
9860         * sched-deps.c (reg_pending_uses_head): New.
9861         (reg_pending_barrier): Rename from reg_pending_sets_all.
9862         (find_insn_list): Don't mark inline.
9863         (find_insn_mem_list): Remove.
9864         (add_dependence_list, add_dependence_list_and_free): New.
9865         (flush_pending_lists): Replace only_write param with separate
9866         for_read and for_write parameters.  Update all callers.  Use
9867         add_dependence_list_and_free.
9868         (sched_analyze_1): Do not add reg dependencies here; just set
9869         the pending bits.  Use add_dependence_list.
9870         (sched_analyze_2): Likewise.
9871         (sched_analyze_insn): Replace schedule_barrier_found with
9872         reg_pending_barrier.  Add all dependencies for pending reg
9873         uses, sets, and clobbers.
9874         (sched_analyze): Don't add reg dependencies for calls, just
9875         set pending bits.  Use regs_invalidated_by_call.  Treat
9876         sched_before_next_call as a normal list, not a fake insn.
9877         (init_deps): No funny init for sched_before_next_call.
9878         (free_deps): Free pending mems lists.  Don't zero reg_last.
9879         (init_deps_global): Init reg_pending_uses.
9880         (finish_deps_global): Free it.
9881         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
9882         (find_insn_mem_list): Remove.
9883         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
9884         (propagate_deps): Use them.  Zero temp mem lists.
9885
9886 2002-01-26  Richard Henderson  <rth@redhat.com>
9887
9888         * Makefile.in (CRTSTUFF_CFLAGS): New.
9889         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
9890         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
9891         crtstuff.c instead of alpha assembly version.
9892         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
9893         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
9894         not FORCE_{INIT,FINI}_SECTION_ALIGN.
9895         (__do_global_dtors_aux): Mark used.
9896         (frame_dummy, __do_global_ctors_aux): Mark used.
9897         (fini_dummy, init_dummy): Remove.
9898
9899         * config/alpha/crtbegin.asm: Remove file.
9900         * config/alpha/crtend.asm: Remove file.
9901         * config/alpha/t-crtbe: Remove file.
9902         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
9903         (LINK_EH_SPEC): New.
9904
9905         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
9906         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
9907         calling constructors.
9908         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
9909
9910         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
9911         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
9912         CRT_END_INIT_DUMMY hack.
9913         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
9914         FORCE_{INIT,FINI}_SECTION_ALIGN.
9915
9916         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
9917         FORCE_{INIT,FINI}_SECTION_ALIGN.
9918
9919         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
9920         invocation sequence.
9921         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
9922
9923         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
9924         (FORCE_CODE_SECTION_ALIGN): New.
9925
9926 2002-01-26  Richard Henderson  <rth@redhat.com>
9927
9928         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
9929
9930 2002-01-26  Richard Henderson  <rth@redhat.com>
9931
9932         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
9933         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
9934
9935 2002-01-26  Kazu Hirata  <kazu@hxi.com>
9936
9937         * config/h8300/h8300.md: Remove bit extraction patterns that
9938         cannot be triggered.
9939         Restrict each bit extraction pattern to a variant on which the
9940         pattern is tested.
9941
9942 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
9943
9944         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
9945
9946 2002-01-26  Kazu Hirata  <kazu@hxi.com>
9947
9948         * config/h8300/h8300.md: Remove bit test patterns that cannot
9949         be triggered.
9950         Restrict each bit test pattern to a variant on which the
9951         pattern is tested.
9952
9953 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9954
9955         * builtins.c (expand_builtin_strncat): Remove redundant check for
9956         INTEGER_CST.
9957
9958 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
9959
9960         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
9961         default setting.
9962         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
9963         existing setting.
9964
9965 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
9966
9967         * dbxout.c (dbxout_init): Use assemble_name rather than just
9968         stripping off the first character.
9969         (dbxout_source_file): Likewise.
9970
9971 2002-01-25  DJ Delorie  <dj@redhat.com>
9972
9973         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
9974         using rtx_equal_p, not by comparing pointers.
9975
9976 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
9977
9978         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
9979         for PIC_OFFSET_TABLE_REGNUM.
9980         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
9981
9982 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
9983
9984         * config.gcc (x86_64-*-freebsd*): New target.
9985         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
9986         value.
9987         (i[34567]86-*-freebsd*): Don't include svr4.h.
9988         * config/i386/freebsd64.h: New file.
9989
9990 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
9991
9992         * config/alpha/x-vms (version): Make static.
9993
9994         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
9995         in previous checkin.
9996
9997         * Makefile.in (install-headers-cp): New target.
9998         * config.gcc (alpha-dec-*vms*): Install headers with
9999         install-headers-cp
10000
10001 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
10002
10003         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
10004         avoid it's copies.
10005
10006 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10007
10008         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
10009         of compare_tree_int.
10010         (expand_builtin_strncat): Likewise.
10011         * c-decl.c (finish_struct): Use tree_low_cst.
10012         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
10013         * tree.c (compare_tree_int): Likewise.
10014
10015 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
10016
10017         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
10018         adjustments even if they are implemented by more than two insns.
10019
10020 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
10021
10022         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
10023         * df.h (struct ref): Kill B.
10024         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
10025
10026         * basic-block.h (PROP_EQUAL_NOTES): New flag.
10027         * flow.c (propagate_one_insn): Use it.
10028         (mark_used_regs): Handle NIL.
10029
10030 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10031
10032         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
10033         to help folding.
10034
10035 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
10036
10037         * rs6000.md (prefetch): Make address V4SI mode so that the address
10038         is restricted to legitimate form for instruction.
10039
10040 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
10041
10042         * doc/install.texi (xtensa-*-elf): New target.
10043         (xtensa-*-linux*): New target.
10044         * doc/contrib.texi: Add myself.
10045
10046 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
10047
10048         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
10049         purpose register to hold an SImode (or smaller) value.
10050
10051 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
10052
10053         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
10054         registry only.
10055         * crtstuff.c: Likewise.
10056
10057 2002-01-25  Kazu Hirata  <kazu@hxi.com>
10058
10059         * config/h8300/h8300.md (negation patterns): Tighten
10060         predicates to register_operand.
10061
10062 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
10063
10064         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
10065         mode, not Pmode.
10066
10067         * builtins.c (expand_builtin_prefetch): Same.
10068
10069 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10070
10071         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
10072         modes.
10073
10074 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10075
10076         * config/h8300/h8300.c (print_operand): Remove support for
10077         operand character 'A'.
10078         * config/h8300/h8300.md (three anonymous patterns): Replace
10079         operand character 'A' with either 'T' or 'S'.
10080
10081 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10082
10083         * config/h8300/h8300.c (print_operand): Remove support for
10084         operand character 'U'.
10085
10086 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
10087
10088         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
10089
10090 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
10091
10092         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
10093         values to be assigned to the stack pointer.
10094
10095 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10096
10097         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
10098         to const_double needs to be done right for big-endian systems.
10099
10100 2002-01-24  Jason Merrill  <jason@redhat.com>
10101
10102         PR c++/2432
10103         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
10104         to can_throw_internal.
10105
10106 2002-01-23  Richard Henderson  <rth@redhat.com>
10107
10108         * fold-const.c (fold): Change UINT_MAX test to check vs precision
10109         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
10110
10111 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10112
10113         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
10114         (symGOT2reg): Use them, then set as GOT value as unchanging.
10115         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
10116         as a temporary, if possible.
10117         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
10118         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
10119
10120 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10121
10122         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
10123         accept to accept 0x80 as operands[2].
10124
10125 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10126
10127         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
10128
10129 2002-01-23  Richard Henderson  <rth@redhat.com>
10130
10131         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
10132
10133 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
10134
10135         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
10136         (parmlist_or_identifiers_1): Verify that only a parmlist follows
10137         an attribute.
10138
10139 2002-01-23  Richard Henderson  <rth@redhat.com>
10140
10141         * expr.c (move_by_pieces_1): Extend size before negation.
10142
10143         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
10144         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
10145         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
10146         * config/m68k/t-m68kelf: Likewise.
10147
10148 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
10149
10150         * config/xtensa/elf.h: New file.
10151         * config/xtensa/lib1funcs.asm: New file.
10152         * config/xtensa/lib2funcs.S: New file.
10153         * config/xtensa/linux.h: New file.
10154         * config/xtensa/t-xtensa: New file.
10155         * config/xtensa/xtensa-config.h: New file.
10156         * config/xtensa/xtensa-protos.h: New file.
10157         * config/xtensa/xtensa.c: New file.
10158         * config/xtensa/xtensa.h: New file.
10159         * config/xtensa/xtensa.md: New file.
10160         * config.gcc (xtensa-*-elf*): New target.
10161         (xtensa-*-linux*): New target.
10162         * cse.c (canon_hash): Compare rtx pointers instead of register
10163         numbers.  This is required for the Xtensa port.
10164         * integrate.c (copy_insn_list): Handle case where the static
10165         chain is in memory and the memory address has to be copied to
10166         a register.
10167         * doc/invoke.texi (Option Summary): Add Xtensa options.
10168         (Xtensa Options): New node.
10169         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
10170
10171 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10172
10173         * diagnostic.c (internal_error): Do ICE suppression only
10174         when ENABLE_CHECKING is not defined.
10175
10176         * c-typeck.c (require_complete_type): Return error_mark_node
10177         if type is error_mark_node.
10178
10179 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
10180
10181         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
10182         -Os and issue a warning.
10183
10184 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10185
10186         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
10187         current (lack of) need for host configuration by hand.
10188
10189         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
10190         references.  Documentation of some target macros moved from
10191         hostconfig.texi to tm.texi.
10192
10193 2002-01-23  Will Cohen  <wcohen@redhat.com>
10194
10195         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
10196         defined.
10197
10198 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10199
10200         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
10201         operand[3].
10202
10203 2002-01-23  Jason Merrill  <jason@redhat.com>
10204
10205         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
10206
10207         * function.c (assign_parms): Don't put args of inline functions
10208         into registers when not optimizing.
10209
10210 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
10211
10212         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
10213         (prologue_use): New pattern.
10214         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
10215         preference to gen_rtx_USE.
10216         (thumb_expand_prologue): Use gen_prologue_use in preference to
10217         gen_rtx_USE.
10218         (thumb_expand_epilogue): Use gen_prologue_use in preference to
10219         gen_rtx_USE.
10220
10221 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
10222
10223         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
10224
10225 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10226
10227         PR c/3504
10228         * doc/extend.texi: Correct documentation of __alignof__.
10229
10230 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
10231
10232         * params.h: Rename arguments of DEFPARAM so that it will be
10233         recognized as a translation keyword.
10234
10235 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10236
10237         * extend.texi: Document altivec functions.
10238         Fix N-bit adjectives in X86 builtin documentation.
10239
10240 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10241
10242         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
10243         auto_inc_dec values.
10244
10245 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
10246
10247         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
10248         after backslash.
10249         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
10250
10251 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10252
10253         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
10254
10255 2002-01-22  Richard Henderson  <rth@redhat.com>
10256
10257         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
10258         copy_insn not copy_rtx.
10259
10260 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
10261
10262         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
10263         "nonzero" as that might add "1" bits.  Ensure "constop" is
10264         properly sign extened.
10265         (force_to_mode): Tweak for sign extended constop.
10266
10267 2002-01-22  Richard Henderson  <rth@redhat.com>
10268
10269         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
10270         for_each_rtx instead of assuming we're already looking at the MEM.
10271         (split_small_symbolic_mem_operand): Likewise.
10272         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10273         * config/alpha/alpha.md (small symbolic memory splitters): Update.
10274
10275 2002-01-22  Richard Henderson  <rth@redhat.com>
10276
10277         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
10278         sequence number for the literal.
10279         (divmoddi_internal_er): Likewise.
10280
10281 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10282
10283         PR java/4972
10284         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
10285         in LIBICONV variable.
10286         * configure: Regenerated.
10287
10288 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
10289
10290         * dependence.c (build_def_use): Remove array_idx.
10291
10292         * dwarfout.c (last_filename): Remove.
10293         (output_compile_unit_die): Remove last_filename.
10294
10295 2002-01-22  Roger Sayle  <roger@eyesopen.com>
10296             Richard Henderson  <rth@redhat.com>
10297
10298         PR opt/3640
10299         * fold-const.c (fold): Optimize unsigned comparisons against
10300         UINT_MAX (and similar unsigned constants).
10301
10302 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
10303
10304         * Makefile.in (loop.o): Depend on OPTABS_H.
10305         * loop.c (emit_prefetch_instructions): Check the prefetch operand
10306         against the predicate.
10307
10308         PR target/5379
10309         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
10310         for the address operand.
10311
10312 2002-01-22  Richard Henderson  <rth@redhat.com>
10313
10314         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
10315
10316 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10317
10318         PR other/5450
10319         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
10320         preprocessor flags.
10321
10322 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
10323
10324         * config.gcc (x86_64-*-netbsd*): New target.
10325         * config/i386/netbsd64.h: New file.
10326
10327 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10328
10329         * regrename.c (kill_value): Fix typo.
10330
10331 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10332
10333         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
10334
10335         * config/rs6000/rs6000.h: Same.
10336
10337         * function.c (instantiate_virtual_regs): Remove
10338         STARTING_FRAME_PHASE.
10339         (assign_stack_local_1): Same.
10340         Calculate frame phase.
10341
10342 2002-01-22  Nick Clifton  <nickc@redhat.com>
10343
10344         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
10345         variable declaration to outer scope in order to simplify
10346         future extensions.
10347         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
10348         arm_hard_regno_mode_ok.
10349         * config/arm/arm-protos.h: Add a prototype for
10350         arm_hard_regno_mode_ok.
10351         * config/arm/arm.c (soft_df_operand): Remove now redundant
10352         check for DImode values using IP_REGNUM.
10353         (nonimmediate_soft_df_operand): Remove now redundant check for
10354         DImode values using IP_REGNUM.
10355         (arm_hard_regno_mode_ok): New function. New check: make sure
10356         that DImode values are not stored in IP_REGNUM.
10357
10358         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
10359         note with a USE.
10360         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
10361
10362 2002-01-22  Jason Merrill  <jason@redhat.com>
10363
10364         * c-semantics.c (genrtl_compound_stmt): Only check nesting
10365         consistency if this COMPOUND_STMT is scoped.
10366
10367 2002-01-22  Kazu Hirata  <kazu@hxi.com>
10368
10369         * predict.c: Fix formatting.
10370         * print-tree.c: Likewise.
10371         * protoize.c: Likewise.
10372         * real.h: Likewise.
10373         * rtl.h: Likewise.
10374         * sbitmap.h: Likewise.
10375         * scan.c: Likewise.
10376         * sched-deps.c: Likewise.
10377         * sched-vis.c: Likewise.
10378         * sdbout.c: Likewise.
10379         * sibcall.c: Likewise.
10380         * ssa.c: Likewise.
10381         * ssa-ccp.c: Likewise.
10382         * ssa-dce.c: Likewise.
10383         * stmt.c: Likewise.
10384         * stor-layout.c: Likewise.
10385         * system.h: Likewise.
10386
10387 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10388
10389         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
10390         if fits in bounds of base type.
10391
10392         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
10393         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
10394         (add_bound_info, default): If can't find a context, make a
10395         SAVE_EXPR.
10396         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
10397
10398 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
10399
10400         * c-typeck.c (parser_build_binary_op): If result from
10401         build_binary_op is ERROR_MARK just return error_mark_node without
10402         further processing.
10403
10404 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
10405
10406         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
10407         Split a.out-specific bits into...
10408         * config/netbsd-aout.h: ...this.
10409         * config/netbsd-elf.h: New file.
10410         * config/alpha/netbsd-elf.h: Remove.
10411         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
10412         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
10413         (STARTFILE_SPEC): Remove redundant definition.
10414         (ENDFILE_SPEC): Likewise.
10415         (LINK_SPEC): Likewise.
10416         (CPP_SPEC): Likewise.
10417         (ASM_SPEC): Likewise.
10418         (LIB_SPEC): Likewise.
10419         (SWITCH_TAKES_ARG): Likewise.
10420         (TARGET_MEM_FUNCTIONS): Likewise.
10421         (CPP_PREDEFINES): Redefine.
10422         (ASM_FINAL_SPEC): Remove redefinition.
10423         (ASM_COMMENT_START): Redefine.
10424         (FUNCTION_PROFILER): Define.
10425         (TARGET_VERSION): Redefine.
10426         Comment and formatting cleanup.
10427         * config/i386/netbsd.h: Include <netbsd-aout.h>.
10428         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
10429         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
10430         big- or little-endian.
10431         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
10432         * config.gcc (*-*-netbsd*): Add definitions common to all
10433         NetBSD configs.
10434         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
10435         gnu_ld definitions.  Add netbsd-elf.h to and remove
10436         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
10437         tmake_file, and don't lose previous tmake_file contents.
10438         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
10439         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
10440         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
10441         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
10442         (mipsel-*-netbsd*): Rename this to...
10443         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
10444         mips/little.h to tm_file for mips*el-*.
10445         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
10446         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
10447         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
10448
10449 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10450
10451         * pa-protos.h (reg_before_reload_operand): New function prototype.
10452         * pa.c (reg_before_reload_operand): New function implementation.
10453         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
10454         contraints to "*m".
10455
10456 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10457
10458         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
10459
10460 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10461
10462         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
10463         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
10464         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
10465         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
10466         (ENDFILE_SPEC): Undefine.
10467         (STARTFILE_SPEC): Redefine for PA.
10468
10469 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10470
10471         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
10472
10473 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
10474
10475         * config.gcc: Add entries to supported PowerPC --with-cpu
10476         types.
10477
10478 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
10479
10480         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
10481         true for 64-bit mode only SSE registers in 32-bit mode.
10482
10483 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10484
10485         * unwind-dw2.c: Fix formatting.
10486         * unwind-dw2-fde.c: Likewise.
10487         * unwind-dw2-fde.h: Likewise.
10488         * unwind-pe.h: Likewise.
10489         * varasm.c: Likewise.
10490         * varray.h: Likewise.
10491
10492 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
10493
10494         Remove workaround for register stack overwrite bug in mmix.
10495         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
10496         support for TARGET_REG_STACK_FILL_BUG.
10497         * config/mmix/mmix.h: Remove member has_call_without_parameters.
10498         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
10499         Delete.
10500         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
10501         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
10502         -mno-reg-stack-fill-bug-workaround.
10503         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
10504         machine member has_call_without_parameters.
10505         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
10506         -mreg-stack-fill-bug-workaround and
10507         -mno-reg-stack-fill-bug-workaround.
10508         (MMIX Options): Ditto.
10509
10510 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10511
10512         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
10513         as appropriate.
10514         Remove redundant code.
10515
10516 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10517
10518         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
10519         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10520         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10521         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
10522         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
10523         out target macro definitions and non-target-specific comments
10524         mostly taken from old versions of the manual.
10525
10526 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10527
10528         * config/h8300/h8300.h: Fix comment formatting.
10529         * config/ia64/aix.h: Likewise.
10530         * config/ia64/ia64-protos.h: Likewise.
10531         * config/ia64/ia64.c: Likewise.
10532         * config/ia64/ia64.h: Likewise.
10533         * config/ia64/ia64intrin.h: Likewise.
10534         * config/ia64/linux.h: Likewise.
10535         * config/ia64/unwind-aix.c: Likewise.
10536         * config/ia64/unwind-ia64.c: Likewise.
10537
10538 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10539
10540         * config/h8300/h8300.c: Revise comments about shift code.
10541
10542 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10543
10544         * config/h8300/h8300.c (function_arg): Update a comment.
10545
10546 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10547
10548         * config/h8300/h8300.md: Update the comments at the beginning
10549         of the file.
10550
10551 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10552
10553         * config/i370/i370.c: Fix comment formatting.
10554         * config/i370/i370.h: Likewise.
10555         * config/i370/i370.md: Likewise.
10556         * config/i370/linux.h: Likewise.
10557
10558 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10559
10560         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
10561
10562         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
10563         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
10564         in incomplete case.
10565
10566 2002-01-20  Graham Stott  <grahams@redhat.com>
10567
10568         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
10569
10570 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10571
10572         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
10573
10574 2002-01-19  Tom Rix  <trix@redhat.com>
10575
10576         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
10577
10578 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
10579
10580         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
10581
10582         * function.c (assign_stack_local_1): Adjust x_frame_offset with
10583         STARTING_FRAME_PHASE.
10584         (STARTING_FRAME_PHASE): New.
10585         (instantiate_virtual_regs): Check saneness of
10586         STARTING_FRAME_PHASE.
10587
10588         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
10589
10590 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
10591
10592         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
10593
10594 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10595
10596         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
10597         be used for bootstrapping GCC 3.0.
10598
10599 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10600
10601         * config/h8300/h8300.md: Fix an insn length.
10602
10603 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10604
10605         * bitmap.h: Fix comment formatting.
10606         * combine.c: Likewise.
10607         * cppfiles.c: Likewise.
10608         * c-pragma.h: Likewise.
10609         * c-typeck.c: Likewise.
10610         * df.c: Likewise.
10611         * dwarf2out.c: Likewise.
10612         * function.c: Likewise.
10613         * gcc.c: Likewise.
10614         * genattrtab.c: Likewise.
10615         * gthr-win32.h: Likewise.
10616         * haifa-sched.c: Likewise.
10617         * predict.c: Likewise.
10618         * rtlanal.c: Likewise.
10619         * rtl.h: Likewise.
10620         * unwind-dw2-fde.h: Likewise.
10621         * unwind-pe.h: Likewise.
10622         * vmsdbgout.c: Likewise.
10623
10624 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10625
10626         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
10627         if type_required and passed decl.
10628
10629 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
10630
10631         * config.gcc (cpu_type): Include altivec.h in powerpc
10632         extra_headers.
10633         Same for darwin.
10634
10635         * config/rs6000/altivec.h: New.
10636
10637 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
10638
10639         * doc/install.texi (*-ibm-aix*): Update assembler and exception
10640         handling information.
10641         * doc/trouble.texi (Interoperation): Add libstdc++ information
10642         for AIX.
10643         (Misunderstandings): Add template instantiation and static template
10644         member information for AIX.
10645
10646 2002-01-17  Jason Merrill  <jason@redhat.com>
10647
10648         * dbxout.c (dbxout_type): Support const and volatile.
10649
10650         * except.c (add_partial_entry): Remove backwards compatibility code.
10651         (end_protect_partials): Likewise.
10652
10653 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
10654
10655         * config/ia64/ia64.md (prologue_use): New.
10656         * config/ia64/ia64.c (ia64_expand_prologue): Use
10657         gen_prologue_use instead of gen_rtx_USE.
10658         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
10659         as CODE_FOR_pred_rel_mutex.
10660         (ia64_sched_reorder2): Likewise.
10661
10662 2002-01-16  Eric Christopher  <echristo@redhat.com>
10663
10664         * config/mips/r3900.h: Reformat.
10665         (SUBTARGET_CPP_SIZE_SPEC): Remove.
10666         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
10667         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
10668         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
10669         * config/mips/t-elf: Remove mips3 multilib.
10670
10671 2002-01-16  H.J. Lu <hjl@gnu.org>
10672
10673         * config/mips/linux.h: Include "mips/abi64.h".
10674
10675 2002-01-16  H.J. Lu <hjl@gnu.org>
10676
10677         * config/mips/t-linux: New.
10678
10679         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
10680
10681         * config/mips/linux.h: Don't include "gofast.h".
10682         (INIT_SUBTARGET_OPTABS): Removed.
10683
10684 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10685
10686         * config/h8300/h8300-protos.h: Replace emit_a_shift with
10687         output_a_shift.
10688         * config/h8300/h8300.c: Likewise.
10689         * config/h8300/h8300.md: Likewise.
10690
10691 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10692
10693         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
10694         spaces after an opcode name.
10695         (pushqi1_h8300hs): Likewise.
10696         (pushhi1_h8300hs): Likewise.
10697
10698 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10699
10700         * doc/extend.texi: Replace "option" with "attribute"
10701         appropriately.
10702
10703 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10704
10705         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
10706         (and:DI () (const_int -8)).
10707         (split_small_symbolic_mem_operand): Split
10708         (mem (and:DI () (const_int -8)).
10709
10710 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10711
10712         PR target/5309:
10713         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
10714         same way as TYPE_IMUL.
10715         (ultrasparc_sched_reorder): Likewise.
10716         * config/sparc/sparc.md (type): Add comment to update
10717         ultrasparc_sched_reorder when making changes.
10718
10719 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10720
10721         * doc/invoke.texi: Change the dump file name of block
10722         reordering pass from 28.bbro to 29.bbro.
10723         Mention -dk option.
10724
10725 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10726
10727         * i386.md (minsf splitter): Fix pasto.
10728
10729 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
10730
10731         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
10732         to frame pointer initialisation instruction.
10733         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
10734         initialisation instruction.
10735         (soft_df_operand): Do not accept the IP register.
10736         (nonimmediate_soft_df_operand): Do not accept the IP register.
10737
10738 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10739
10740         PR target/5357:
10741         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
10742         MASK_V8 being both set.
10743
10744 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
10745
10746         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
10747         insn for GOT register; add REG_MAYBE_DEAD notes instead.
10748         config/s390/s390.md (call, call_value): Add GOT register to
10749         CALL_INSN_FUNCTION_USAGE where needed.
10750         (call_exp, call_value_exp): New.
10751
10752 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
10753
10754         * config/arm/arm.c: General formatting tidy up.
10755
10756 2002-01-16  Graham Stott  <grahams@redhat.com>
10757
10758         * calls.c (try_to_integrate): Use "(size_t)" intermediate
10759         cast and when casting an integer literal to "rtx" pointer.
10760         (expand_call): Likewise.
10761         * flow.c (try_pre_increment): Likewise.
10762         (find_use_as_address): Likewise.
10763         * integrate.c (expand_iline_function): Likewise.
10764         * regmove.c (try_auto_increment): Likewise.
10765
10766 2002-01-16  Graham Stott  <grahams@redhat.com>
10767
10768         * sched-rgn.c (passed): Use sbitmap_free.
10769         (header): Likewise.
10770         (inner): Likewise.
10771         (in_queue): Likewise.
10772         (in_stack): Likewise.
10773
10774 2002-01-15  Eric Christopher  <echristo@redhat.com>
10775
10776         * flow.c (propagate_one_insn): Change to use fatal_insn.
10777
10778 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10779
10780         * expmed.c (extract_fixed_bit_field): Remove unused code.
10781         * system.h: Poison SLOW_ZERO_EXTEND.
10782         * doc/tm.texi: Remove.
10783         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
10784         * config/arm/arm.h: Likewise.
10785         * config/avr/avr.h: Likewise.
10786         * config/clipper/clipper.h: Likewise.
10787         * config/convex/convex.h: Likewise.
10788         * config/d30v/d30v.h: Likewise.
10789         * config/dsp16xx/dsp16xx.h: Likewise.
10790         * config/elxsi/elxsi.h: Likewise.
10791         * config/fr30/fr30.h: Likewise.
10792         * config/h8300/h8300.h: Likewise.
10793         * config/i370/i370.h: Likewise.
10794         * config/i386/i386.h: Likewise.
10795         * config/m68k/m68k.h: Likewise.
10796         * config/mips/mips.h: Likewise.
10797         * config/ns32k/ns32k.h: Likewise.
10798         * config/pdp11/pdp11.h: Likewise.
10799         * config/pj/pj.h: Likewise.
10800         * config/s390/s390.h: Likewise.
10801         * config/sh/sh.h: Likewise.
10802         * config/stormy16/stormy16.h: Likewise.
10803         * config/v850/v850.h: Likewise.
10804         * config/vax/vax.h: Likewise.
10805         * config/we32k/we32k.h: Likewise.
10806
10807 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
10808
10809         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
10810         (altivec_lvsl): Change constraint to b.
10811         (altivec_lvsr): Same.
10812         (altivec_lvebx): Same.
10813         (altivec_lvehx): Same.
10814         (altivec_lvewx): Same.
10815         (altivec_lvxl): Same.
10816         (altivec_lvx): Same.
10817         (altivec_stvx): Add parallel.
10818         (altivec_stvxl): Same.
10819         (altivec_stvehx): Same.
10820         (altivec_stvebx): Same.
10821         (altivec_stvebx): Same.
10822
10823 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
10824
10825         * config.gcc: Change altivec.h to altivec-defs.h.
10826
10827         * config/rs6000/altivec.h: Delete.
10828
10829         * config/rs6000/altivec-defs.h: Add.
10830
10831 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10832
10833         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
10834         and UMOD modes.
10835
10836         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
10837         less than or equal to eight bytes.
10838
10839         * vax.md (andsi3): Remove constraints and change SET destination
10840         operand type to nonimmediate_operand.
10841         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
10842         when it is a CONST_INT.
10843
10844 2002-01-15  Jason Merrill  <jason@redhat.com>
10845
10846         * c-common.def (FILE_STMT): New code.
10847         * c-common.c (statement_code_p): It's a statement.
10848         * c-common.h (stmt_tree_s): Add x_last_filename.
10849         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
10850         (last_expr_filename): New macro.
10851         * c-semantics.c (begin_stmt_tree): Initialize it.
10852         (add_stmt): If the filename changed, also insert a
10853         FILE_STMT.
10854         (expand_stmt): Handle seeing one.
10855
10856 2002-01-15  Eric Christopher  <echristo@redhat.com>
10857
10858         * flow.c (propagate_one_insn): Add error message and print out
10859         insn for debugging.
10860
10861 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
10862
10863         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
10864         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
10865         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
10866         TRAMPOLINE_ALIGNMENT.
10867         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
10868         to be in bits.
10869         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
10870         PCC_BITFIELD_TYPE_MATTERS.
10871         * config/interix.h (STDC_VALUE): Remove.  Use
10872         STDC_0_IN_SYSTEM_HEADERS.
10873         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
10874         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
10875         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
10876
10877 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10878
10879         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
10880         not work on this platform currently.
10881
10882 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
10883
10884         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
10885         readonly_warning in _().
10886
10887 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
10888
10889         * gcc.c (delete_if_ordinary): Backout previous change.
10890
10891 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10892
10893         * config/h8300/h8300.c (print_operand): Remove support for
10894         unused operand characters.
10895
10896         * read-rtl.c: Fix formatting.
10897         * real.c: Likewise.
10898         * recog.c: Likewise.
10899         * regclass.c: Likewise.
10900         * regmove.c: Likewise.
10901         * reg-stack.c: Likewise.
10902         * reload1.c: Likewise.
10903         * rtlanal.c: Likewise.
10904
10905 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10906
10907         * config/i386/i386.c: Fix formatting.
10908
10909 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
10910
10911         * c-typeck.c (process_init_element): Don't save_expr
10912         COMPOUND_LITERAL_EXPR if just its initializer will be used.
10913
10914 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
10915
10916         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
10917         emit optional traceback table if optimize_size or TARGET_ELF.
10918         * config/rs6000/rs6000.md (prefetch): New.
10919
10920 2002-01-15  Andreas Jaeger  <aj@suse.de>
10921
10922         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
10923
10924 2002-01-15  Kazu Hirata  <kazu@hxi.com>
10925
10926         * mips-tfile.c: Fix formatting.
10927
10928 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
10929
10930         * unroll.c (final_reg_note_copy): Fix previous commit.
10931
10932 2002-01-14  Kazu Hirata  <kazu@hxi.com>
10933
10934         * config/h8300/h8300-protos.h: Remove the prototype for
10935         eq_operator.
10936         * config/h8300/h8300.c (eq_operator): Remove.
10937
10938 2002-01-14  Richard Henderson  <rth@redhat.com>
10939
10940         * config/i386/i386.md (prefetch): Tidy.
10941         (prefetch_3dnow): Fix locality operand.
10942
10943 2002-01-14  Richard Henderson  <rth@redhat.com>
10944
10945         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
10946         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
10947
10948 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
10949
10950         * reload1.c (reload_combine): Pass reg_sum replacement through
10951         copy_rtx in loop performing multiple changes.
10952
10953 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
10954
10955         * except.c (remove_unreachable_regions): New.
10956         (free_eh_status): Clear exception_handler_labels.
10957         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
10958         (find_exception_handler_labels): Don't add the same label more than
10959         once.
10960         (remove_exception_handler_label): Don't die if
10961         find_exception_handler_labels hasn't been called for the current
10962         function yet.
10963
10964 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
10965
10966         * toplev.c (rest_of_compilation): Rebuild jump labels after
10967         gcse.
10968
10969 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
10970
10971         * doc/extend.texi: Move documentation of X86 built-in functions
10972         here.
10973         * doc/invoke.texi: From here.
10974         * doc/sourcebuild.texi: Document location of documentation for
10975         machine built-in functions.
10976
10977 2002-01-13  Christopher Faylor  <cgf@redhat.com>
10978
10979         * cppfiles.c (TEST_THRESHOLD): New macro.
10980         (SHOULD_MMAP): Ditto.
10981         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
10982         be used.
10983
10984 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
10985
10986         * unroll.c (final_reg_note_copy): Properly handle
10987         REG_LABEL
10988         (unroll_loops): Fix LOOP_CONDITION heuristics.
10989
10990 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
10991
10992         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
10993         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
10994
10995 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10996
10997         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
10998         threaded loop.
10999
11000 2002-01-14  Tom Rix  <trix@redhat.com>
11001
11002         * config/rs6000/rs6000.md: Fix typo with sradi.
11003
11004 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
11005
11006         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
11007         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
11008         (clrstrdi, clrstrsi): Adapt callers.
11009
11010         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
11011
11012         (movti splitter): Never use register 0 as base register.
11013
11014 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11015
11016         * combine.c (simplify_shift_const): Always generate new rtx
11017         for shift expression instead of reusing given expression.
11018
11019 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11020
11021         * config/alpha/alpha.c (alpha_expand_mov): Don't call
11022         alpha_legitimize_address unless mode is Pmode.
11023
11024 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
11025
11026         * doc/md.texi (Modifiers): Document the '*' constraint for the
11027         user.
11028
11029         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
11030         * doc/extend.texi (Function Attributes): 'interrupt' is valid
11031         for xstormy16 too.
11032
11033 2002-01-13  Richard Henderson  <rth@redhat.com>
11034
11035         * reload.c (find_reloads): Use a hard reg destination as reload reg
11036         for an input reload of the source.
11037
11038 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11039
11040         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
11041         more generic.
11042
11043 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
11044
11045         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11046         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11047
11048         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
11049
11050 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11051
11052         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
11053
11054 2002-01-12  Tom Rix  <trix@redhat.com>
11055
11056         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
11057         TARGET_POWERPC64.
11058
11059 2002-01-12  Richard Henderson  <rth@redhat.com>
11060
11061         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
11062
11063         * doc/invoke.texi: Update Alpha options.
11064
11065         * doc/invoke.texi: Update i386 built-in function lists.
11066
11067 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11068
11069         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
11070         referencing outside.
11071
11072 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11073
11074         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
11075         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
11076         offsets, and change line folding.
11077         * optabs.c (expand_binop): Remove warnings.
11078         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
11079
11080 2002-01-12  Graham Stott <grahams@redhat.com>
11081
11082         * attribs.c (handle_deprecated_attribute): constify WHAT.
11083         * diagnostic.c (warn_deprecated_use): Add braces, fixes
11084         dangling else warning and constify WHAT.
11085         * except.h (struct function, struct inline_remap): Move
11086         struct tag forward defs before all prototypes.
11087         (duplicate_eh_regions): Whitespace.
11088
11089 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
11090
11091         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11092         MODE_BASE_REG_CLASS.
11093         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
11094
11095 2002-01-12  Richard Henderson  <rth@redhat.com>
11096
11097         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
11098         (ix86_expand_vector_move): New.
11099         (bdesc_2arg): Remove andps, andnps, orps, xorps.
11100         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
11101         Remove old prefetch builtins.  Special case the logicals removed above.
11102         (ix86_expand_builtin): Likewise.
11103         (safe_vector_operand): Use V4SFmode, not TImode.
11104         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
11105         (ix86_expand_timode_binop_builtin): New.
11106         * config/i386/i386-protos.h: Update.
11107         * config/i386/i386.h (enum ix86_builtins): Update.
11108         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
11109         Use ix86_expand_vector_move in vector move expanders.
11110         (movti_internal, movti_rex64): Add xorps alternative.
11111         (sse_clrv4sf): Rename and adjust from sse_clrti.
11112         (prefetch): Don't work so hard.
11113         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
11114         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
11115         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
11116
11117 2002-01-11  Richard Henderson  <rth@redhat.com>
11118
11119         * config/i386/mmintrin.h: New file.
11120         * config/i386/xmmintrin.h: New file.
11121         * config.gcc (i?86-*-*): Add extra_headers.
11122         * simplify-rtx.c (simplify_unary_operation): Handle saturating
11123         truncation codes.
11124         (simplify_binary_operation): Handle saturating arithmetic codes.
11125         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
11126         not the lowpart subreg.
11127         (ix86_expand_builtin): Return a TImode dummy register instead of 0
11128         on error.
11129         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
11130
11131 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11132
11133         * conflict.c (conflict_graph_compute): Free regsets when finished.
11134         * ssa.c (compute_coalesced_reg_partition): Likewise.
11135
11136 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11137
11138         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
11139         every where we allocate a register.
11140
11141 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11142
11143         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
11144         * lcm.c (compute_earliest, compute_farthest): Likewise.
11145
11146 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11147
11148         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
11149
11150 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11151
11152         * doc/rtl.texi (Insns): Fix 2 typos.
11153
11154 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
11155
11156         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
11157         options.  Use @table @gcctabopt for MMIX options.  Add index
11158         entries for MMIX options.  Start new paragraph with first
11159         heading of the machine-dependent options.
11160
11161 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11162
11163         PR other/5299
11164         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
11165         * combine.c (force_to_mode): Same.
11166         * reload1.c (clear_reload_reg_in_use): Same.
11167
11168 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
11169
11170         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
11171         and 'subtargets'.
11172
11173 2002-01-11  Andreas Jaeger  <aj@suse.de>,
11174             Brad Lucier <lucier@math.purdue.edu>
11175
11176         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
11177         mcpu.
11178
11179 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
11180
11181         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
11182         Protect with IN_LIBGCC.
11183         (LINK_EH_SPEC): Add required trailing space.
11184
11185 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11186
11187         * c-tree.h: Move function declarations so that they are listed
11188         under the filename which contains them.
11189         (check_identifier, finish_decl_top_level,
11190         lookup_name_current_level_global, shadow_record_fields): Remove.
11191
11192 2002-01-11  Andreas Jaeger  <aj@suse.de>
11193
11194         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
11195         march.
11196
11197 2002-01-10  Richard Henderson  <rth@redhat.com>
11198
11199         * config/alpha/alpha.c (print_operand): Add 'J'.
11200         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
11201         new operand with the sequence number for the lituse.  When splitting
11202         the insns, use gen_movdi_er_high_g and generate a sequence number.
11203         (gen_movdi_er_high_g): Print the sequence number if non-zero.
11204
11205 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
11206
11207         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
11208         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
11209         stvxl.
11210         (altivec_expand_builtin): Same.
11211         (altivec_expand_stv_builtin): New.
11212
11213         * config/rs6000/rs6000.h (rs6000_builtins): Same.
11214
11215         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
11216         ("altivec_lvehx"): New.
11217         ("altivec_lvewx"): New.
11218         ("altivec_lvxl"): New.
11219         ("altivec_lvx"): New.
11220         ("altivec_stvx"): New.
11221         ("altivec_stvebx"): New.
11222         ("altivec_stvehx"): New.
11223         ("altivec_stvewx"): New.
11224         ("altivec_stvxl"): New.
11225
11226 2002-01-10  Richard Henderson  <rth@redhat.com>
11227
11228         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
11229         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
11230         care not to delete instructions twice.
11231
11232 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11233
11234         * toplev.c: Don't declare environ (it's not used anywhere).
11235         * configure.in: Don't check for declaration of environ.
11236         * config/i386/xm-mingw32.h: Don't #define environ.
11237         * config.in, configure: Regenerate.
11238
11239 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11240
11241         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
11242         * configure: Regenerate.
11243
11244         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
11245         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
11246         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
11247         alpha/xm-vms.h.
11248         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
11249         LIMITS_H_TEST here, not in m68k/x-next.
11250         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
11251         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
11252
11253         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
11254         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
11255         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
11256
11257         * config/i386/x-djgpp: Renamed i386/t-djgpp.
11258         * config/m88k/x-dolph: Renamed m88k/t-dolph.
11259         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
11260         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
11261         replacement of quadlib.asm with quadlib.c.
11262
11263         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
11264         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
11265         config/rs6000/xm-beos.h: Delete file.
11266
11267         * config.gcc: Update to match above changes.
11268
11269 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11270
11271         * config/h8300/h8300.h: Fix comment typos.
11272         * config/h8300/h8300.md: Likewise.
11273         * config/h8300/lib1funcs.asm: Likewise.
11274
11275 2002-01-10  Dale Johannesen  <dalej@apple.com>
11276
11277         PR optimization/5269
11278         * unroll.c (precondition_loop_p): Make *increment be the correct
11279         sign when n_iterations known, to avoid confusing caller.
11280
11281 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11282
11283         * doc/extend.texi (deprecated): Fix a typo.
11284
11285 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
11286
11287         * basic-block.h (update_br_prob_note): Declare.
11288         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
11289         (try_forward_edges): Care negative frequencies and update note.
11290         (outgoing_edges_match): Tweek conditional merging heuristics.
11291         (try_crossjump_to_edge): use update_br_prob_note.
11292         * cfglayout.c (fixup_reorder_chain): Likewise.
11293         * cfrtl.c (update_br_prob_note): New.
11294         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
11295
11296         * i386.c (ix86_decompose_address): Return -1 if address contains
11297         shift.
11298         (legitimate_address_p): Require ix86_decompose_address to return 1.
11299
11300         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
11301         (cprop_insn): Likewise.
11302
11303 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11304
11305         * toplev.c: Fix formatting.
11306         * tree.c: Likewise.
11307         * tree-dump.c: Likewise.
11308         * unroll.c: Likewise.
11309         * unwind-dw2.c: Likewise.
11310         * unwind-dw2-fde.c: Likewise.
11311         * unwind-dw2-fde-glibc.c: Likewise.
11312         * unwind-sjlj.c: Likewise.
11313
11314 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11315
11316         * doc/invoke.texi: Document PDP-11 options.
11317
11318 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11319
11320         * config/h8300/h8300.h: Fix formatting.
11321
11322 2002-01-10  Ira Ruben   <ira@apple.com>
11323
11324         Add __attribute__ ((deprecated)).
11325         * extend.texi: Document __attribute__ ((deprecated)).
11326         * invoke.texi: Document -Wno-deprecated-declarations.
11327         * testsuite/g++.dg/other/deprecated.C: New C++ test.
11328         * testsuite/gcc.dg/deprecated.c: New C test.
11329         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
11330         (c_common_attribute_table): Add "deprecated" entry.
11331         (handle_deprecated_attribute): New function.
11332         * c-decl.c (deprecated_states): New enum.
11333         deprecated_state: State of "deprecated" handling.
11334         (start_decl): Set deprecated_state based on attributes.
11335         (grokdeclarator): Test for deprecated uses, propagate attribute.
11336         * c-typeck.c (build_component_ref): Test for deprecated fields.
11337         (build_external_ref): Test for deprecated primaries.
11338         * diagnostic.c (warn_deprecated_use) New function to issue
11339         warnings about __attribute__ ((depricated)) references.
11340         * flags.h (warn_deprecated_decl): Extern declared for
11341         -W[no-]deprecated-declarations option.
11342         * print-tree.c (print_node): Show deprecated flag status.
11343         * toplev.c (warn_deprecated_decl): Defined.
11344         (W_options): Added "deprecated-declaration".
11345         * toplev.h (warn_deprecated_use): Extern declared.
11346         * tree.h (struct tree_common): Define deprecated_flag.
11347         (TREE_DEPRECATED): New macro to access flag.
11348         * cp/call.c (build_call): Test for deprecated calls.
11349         * cp/class.c (add_implicitly_declared_members): Set global
11350         flag to tell grokdeclarator to not issue deprecated warnings.
11351         * cp/cp-tree.h: Add extern for adding_implicit_members.
11352         * cp/decl.c (deprecated_states): New enum.
11353         (start_decl): Set deprecated_state based on attributes.
11354         (grokdeclarator): Test for deprecated uses, propagate attribute.
11355         * cp/lex.c (do_identifier): Test for deprecated primaries.
11356         * cp/typeck.c (build_component_ref): Test for deprecated fields.
11357
11358 2002-01-10  Ira Ruben   <ira@apple.com>
11359
11360         Fix to assign attributes to inline member functions.
11361         * cp/decl.c (start_method): Handle attrlist.
11362
11363 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11364
11365         * combine.c (expand_field_assignment): Use subreg_lsb().
11366
11367 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
11368
11369         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
11370         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
11371         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
11372         Recurse for any operand of AND as long as constant is non-zero.
11373
11374 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11375
11376         * config/h8300/h8300.md: Remove constraints from expanders.
11377
11378 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11379
11380         * varasm.c: Fix formatting.
11381         * varray.c: Likewise.
11382         * vmsdbgout.c: Likewise.
11383         * xcoffout.c: Likewise.
11384
11385 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11386
11387         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
11388         update edge probabilities to match.
11389
11390 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11391
11392         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
11393         dependencies.
11394         * doc/languages.texi, doc/sourcebuild.texi: New files.
11395         * doc/configfiles.texi: Make a subsubsection.  Update.
11396         * doc/configterms.texi: Add @node.  Remove warning that this isn't
11397         instructions for building GCC.
11398         * doc/makefile.texi: Make a subsection.
11399         * doc/gccint.texi: Update.
11400
11401 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
11402
11403         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
11404
11405 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11406
11407         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
11408
11409 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
11410
11411         * optabs.c (expand_fix): Look for wider integer modes first.
11412
11413         * i386.md (mov?f): Avoid the fake const double trick for medium
11414         memory model.
11415         (min?f*/max?f*): Prohibit memory operands for i387 variant.
11416         (fop_df_4): Disable for SSE compilation.
11417
11418 2002-01-10  Graham Stott  <grahams@redhat.com>
11419
11420         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
11421         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
11422
11423 2002-01-10  Richard Henderson  <rth@redhat.com>
11424
11425         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
11426
11427 2002-01-10  Richard Henderson  <rth@redhat.com>
11428
11429         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
11430         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
11431
11432 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11433
11434         * combine.c (can_combine_p): Fix a comment typo.
11435
11436 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
11437
11438         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
11439         empty list correctly.  Change loop index $t to $f for
11440         consistency with rest of Makefile.
11441
11442 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
11443
11444         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
11445         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11446
11447         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
11448         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
11449         (altivec_init_builtins): Same.
11450         (altivec_expand_unop_builtin): Return NULL_RTX on error.
11451         (altivec_expand_binop_builtin): Same.
11452         (altivec_expand_ternop_builtin): Same.
11453         (bdesc_dst): New.
11454
11455         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
11456         ("altivec_vctuxs"): Fix typo.
11457         ("altivec_vnmsubfp"): Same.
11458         ("altivec_dssall"): New.
11459         ("altivec_mfvscr"): New.
11460         ("altivec_dss"): New.
11461         ("altivec_lvsl"): New.
11462         ("altivec_lvsr"): New.
11463         ("altivec_dstt"): New.
11464         ("altivec_dstst"): New.
11465         ("altivec_dststt"): New.
11466         ("altivec_dst"): New.
11467
11468         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
11469         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11470
11471 2002-01-09  Richard Henderson  <rth@redhat.com>
11472
11473         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
11474
11475 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
11476
11477         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
11478         function.
11479         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
11480         prototype.
11481         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
11482
11483 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11484
11485         * read-rtl.c: Fix formatting.
11486         * real.c: Likewise.
11487         * regclass.c: Likewise.
11488         * regrename.c: Likewise.
11489         * reg-stack.c: Likewise.
11490         * reload1.c: Likewise.
11491         * reload.c: Likewise.
11492         * rtl.c: Likewise.
11493
11494 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11495
11496         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
11497         to extract items in the expr_list chain.
11498
11499 2002-01-09  Richard Henderson  <rth@redhat.com>
11500
11501         * config/vax/vax.c (vax_rtx_cost): Never abort.
11502
11503         * config/vax/vax.h (REAL_ARITHMETIC): Define.
11504
11505 2002-01-09  Jan Hubicka  <jh@suse.cz>
11506
11507         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
11508
11509 2002-01-09  Richard Henderson  <rth@redhat.com>
11510
11511         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
11512         Unify code from various alternatives.
11513
11514 2002-01-09  Richard Henderson  <rth@redhat.com>
11515
11516         * regrename.c (copy_value): Ignore the copy if the source register
11517         is present in the value chain with a narrower mode.
11518
11519 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11520
11521         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
11522         for the c4x target. Also improve layout.
11523
11524 2002-01-09  Richard Henderson  <rth@redhat.com>
11525
11526         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
11527         * config/m32r/m32r.md (and ior xor splitters): Swap operands
11528         to match insn patterns.
11529
11530 2002-01-09  Richard Henderson  <rth@redhat.com>
11531
11532         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
11533         (copyprop_hardreg_forward_1): Likewise.
11534
11535 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11536
11537         * pa.md (decrement_and_branch_until_zero): Change predicate for
11538         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
11539
11540 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11541
11542         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
11543         gets undefined. For Darwin.
11544
11545 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11546
11547         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
11548
11549 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11550
11551         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
11552
11553 2002-01-08  Richard Henderson  <rth@redhat.com>
11554
11555         * regrename.c (copy_value): Ignore overlapping copies.
11556
11557 2002-01-08  Richard Henderson  <rth@redhat.com>
11558
11559         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
11560         as needed to avoid shared structure.
11561
11562 2002-01-08  Kazu Hirata  <kazu@hxi.com>
11563
11564         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
11565         H8/300H and H8/S.
11566
11567 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11568
11569         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
11570         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
11571         documentation of obsolete macros.
11572         * system.h: Poison these macros.
11573         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
11574         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
11575         config/c4x/c4x.h, config/clipper/clipper.h,
11576         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
11577         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
11578         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
11579         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
11580         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11581         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
11582         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
11583         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
11584         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
11585         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
11586         config/sparc/sparc.h, config/stormy16/stormy16.h,
11587         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
11588         definitions and commented out definitions of obsolete macros.
11589         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
11590         of MAX_INT_TYPE_SIZE.
11591
11592 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11593
11594         * config/s390/s390.c (s390_preferred_reload_class): Never
11595         return ADDR_REGS if it isn't a subset of the given class.
11596         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
11597         FP_REGS, but all superclasses as well.
11598
11599         * config/s390/s390.c (s390_function_profiler): Fix thinko.
11600
11601         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
11602         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
11603         must not be a const_int.
11604
11605 2002-01-08  Richard Henderson  <rth@redhat.com>
11606
11607         * Makefile.in (toplev.o): Depend on options.h.
11608         (gcc.o): Depend on specs.h.
11609
11610 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
11611
11612         * expr.c (store_expr): Convert VOIDmode constants back to target's
11613         mode.
11614
11615 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11616
11617         * doc/invoke.texi: Markup gcc as @command.  Refer to
11618         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
11619         of http://gcc.gnu.org/thanks.html.
11620
11621 2002-01-08  Dale Johannesen  <dalej@apple.com>
11622
11623         * config/rs6000/rs6000.md: Add missing int register
11624         target case to movdf_low.
11625
11626 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
11627
11628         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
11629         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
11630         (cppinit.o): Depend on except.h.
11631         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
11632         s-specs): New rules.
11633
11634         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
11635         Don't create specs.h/options.h/gencheck.h here.  Remove
11636         unnecessary variable settings from last argument of AC_OUTPUT.
11637         * config.in, configure: Regenerate.
11638         * intl.c: Hardcode package name as "gcc".
11639
11640         * cppinit.c: Include except.h.
11641         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
11642         appropriate.
11643         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
11644         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
11645         (!)USING_SJLJ_EXCEPTIONS.
11646         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
11647
11648 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11649
11650         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
11651         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
11652         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
11653         documentation of obsolete macros.
11654         * system.h: Poison these macros.
11655         * config/d30v/d30v.h, config/ns32k/encore.h,
11656         config/stormy16/stormy16.h: Remove definitions and commented out
11657         definitions of obsolete macros.
11658
11659 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
11660
11661         * objc/objc-act.c (handle_class_ref): Mark the declaration of
11662         %sobjc_class_ref_%s as used - to prevent unwanted compiler
11663         warnings.
11664
11665 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11666
11667         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
11668         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
11669         to insn adjusting stack/frame pointer.
11670         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
11671         accept operands that cause the insn to be non-splittable.
11672
11673 2002-01-08  Graham Stott  <grahams@redhat.com>
11674
11675         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
11676         (C_TYPE_FIELDS_VOLATILE): Likewise.
11677         (C_TYPE_BEING_DEFINED): Likewise.
11678         (C_IS_RESERVED_WORD): Likewise.
11679         (C_TYPE_VARIABLE_SIZE): Likewise.
11680         (C_DECL_VARIABLE_SIZE): Likewise.
11681         (C_MISSING_PROTOTYPE_WARNED): Likewise.
11682         (C_SET_EXP_ORIGINAL_CODE): Likewise.
11683         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
11684         parenthesis.
11685         (C_DECL_ANTICIPATED): Likewise.
11686         (c_build_type_variant): Add parenthesis.
11687
11688 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11689
11690         * gcc.c (option_map): Remove --version.
11691         (process_command): Handle -fversion following the GNU Coding
11692         Standards.  Partially addresses PR other/704.
11693
11694 2002-01-08  Graham Stott  <grahams@redhat.com>
11695
11696         * combine.c (combine_instructions): Fix typo.
11697
11698 2002-01-08  Graham Stott  <grahams@redhat.com>
11699
11700         * debug.h: Use "tree" and "rtx" throughout.
11701
11702         * debug.c: Likewise.
11703
11704 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
11705
11706         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
11707         constant pool, use the pool's version of the symbol instead.
11708
11709 2002-01-07  Richard Henderson  <rth@redhat.com>
11710
11711         * regrename.c (find_oldest_value_reg): Ignore the value chain if
11712         the original register was copied in a mode with a fewer number of
11713         hard registers than the desired mode.
11714         (copyprop_hardreg_forward_1): Likewise.
11715         (debug_value_data): Fix loop test.
11716         * toplev.c (parse_options_and_default_flags): Reenable
11717         -fcprop-registers at -O1.
11718
11719 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11720
11721         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
11722         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
11723
11724         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
11725         predicates.
11726
11727         * config/rs6000/rs6000.md: Add altivec predicate patterns.
11728
11729 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11730
11731         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
11732         (pa_output_function_prologue): Output local label at the beginning of
11733         the prologue when profiling.
11734         (hppa_profile_hook): Use the local label rather than the function label.
11735         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
11736
11737 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11738
11739         * config/rs6000/rs6000.c (print_operand): Remove extra space.
11740         (altivec_expand_unop_builtin): Fix thinko.
11741         (altivec_expand_binop_builtin): Same.
11742         (altivec_expand_ternop_builtin): Same.
11743         (altivec_expand_builtin): Same.
11744
11745 2002-01-07  Richard Henderson  <rth@redhat.com>
11746
11747         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
11748
11749 2002-01-07  Jason Merrill  <jason@redhat.com>
11750
11751         * unwind-dw2.c (execute_cfa_program): Use < again.
11752
11753 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
11754
11755         * predict.c (combine_predictions_for_insn): Avoid division by zero.
11756
11757 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
11758
11759         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
11760         Don't allow -1 - x -> ~x simplifications in the first pass.
11761
11762 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
11763
11764         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
11765         arguments.
11766         (altivec_expand_binop_builtin): Same.
11767         (altivec_expand_unop_builtin): Same.
11768         (print_operand): Fix typo.
11769         (bdesc_1arg): Add vupk* variants.
11770
11771         * rs6000.h (rs6000_builtins): Add vupk* enums.
11772
11773         * rs6000.md: Add altivec_vupk* variants.
11774
11775 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
11776
11777         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
11778         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
11779         and last update dates.
11780
11781 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
11782
11783         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
11784
11785 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11786
11787         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
11788         * config/avr/avr.h (CPP_SPEC): Likewise.
11789         (LINK_SPEC): Likewise.
11790         (CRT_BINUTILS_SPECS): Likewise.
11791         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
11792         * doc/invoke.texi (AVR Options): Document them.
11793
11794 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
11795
11796         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
11797         LABEL_NUSES.
11798
11799 2002-01-07  Graham Stott  <grahams@redhat.com>
11800
11801         * config/i386/i386.h: Update copyright date.
11802         (HALF_PIC_PTR): Add parenthesis.
11803         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
11804         (CONSTANT_ALIGNMENT): Add parenthesis.
11805         (DATA_ALIGNMENT): Likewise.
11806         (LOCAL_ALIGNMENT): Likewise.
11807         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
11808         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
11809         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
11810         (HARD_REGNO_NREGS): Add paranethesis.
11811         (VALID_SSE_REG_MODE): Whitespace.
11812         (VALID_MMX_REG_MODE): Whitespace.
11813         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
11814         (ix86_hard_regno_mode_ok): Add parenthesis.
11815         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
11816         (RETURN_IN_MEMORY): Whitespace.
11817         (N_REG_CLASSES): Add parenthesis.
11818         (INTEGER_CLASS_P): Add parenthesis and wrap.
11819         (FLOAT_CLASS_P): Likewise.
11820         (SSE_CLASS_P): Likewise.
11821         (MMX_CLASS_P): Likewise.
11822         (MAYBE_INTEGER_CLASS_P): Likewise.
11823         (MAYBE_FLOAT_CLASS_P): Likewise.
11824         (MAYBE_SSE_CLASS_P): Likewise.
11825         (MAYBE_MMX_CLASS_P): Likewise.
11826         (Q_CLASS_P): Likewise.
11827         (GENERAL_REGNO_P): Uppercase macro parameter.
11828         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
11829         (FP_REGNO_P): Likewise.
11830         (ANY_FP_REGNO_P): Uppercase macro parameter.
11831         (SSE_REGNO_P): Likewise.
11832         (SSE_REGNO): Likewise.
11833         (SSE_REG_P): Likewise.
11834         (SSE_FLOAT_MODE_P): Likewise.
11835         (MMX_REGNO_P): Likewise.
11836         (MMX_REG_P):Likewise.
11837         (STACK_REG_P): Likewise.
11838         (NON_STACK_REG_P): Likewise.
11839         (STACK_TOP_P): Likewise.
11840         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
11841         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
11842         (SECONDARY_MEMORY_NEEDED): Likewise.
11843         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
11844         (MD_ASM_CLOBBERS): Whitespace and wrap.
11845         (MUST_PASS_IN_STACK): Whitespace and wrap.
11846         (RETURN_POPS_ARGS): Add parenthesis.
11847         (INIT_CUMULATIVE_ARGS): Likewise.
11848         (FUNCTION_ARG): Likewise.
11849         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
11850         (SETUP_INCOMING_VARARGS): Likewise.
11851         (BUILD_VA_LIST_TYPE):  Add parenthesis.
11852         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
11853         parenthsis.
11854         (EXPAND_BUILTIN_VA_ARG): Likewise.
11855         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
11856         (INITIALIZE_TRAMPOLINE): Add parenthesis.
11857         (INITIAL_ELIMINATION_OFFSET): Likewise.
11858         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
11859         (REGNO_OK_FOR_BASE_P): Likewise.
11860         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
11861         (REGNO_OK_FOR_DIREG_P): Likewise.
11862         (REG_OK_FOR_INDEX_P): Whitespace.
11863         (REG_OK_FOR_BASE_P): Whitespace.
11864         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
11865         parenthesis.
11866         (FIND_BASE_TERM): Fix typo.
11867         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
11868         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
11869         (SYMBOLIC_CONST; Whitespace.
11870         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
11871         (ENCODE_SECTION_INFO): Whitespace.
11872         (FINALIZE_PIC): Remove do { ... } while (0).
11873         (PROMOTE_MODE): Wrap in do { ... } while (0).
11874         (CONST_COSTS): Whitespace.
11875         (RTX_COSTS): Add paramethesis, whitespace and wrap.
11876         (REGISTER_MOVE_COST): Add parenthesis.
11877         (MEMORY_MOVE_COST): Likewise.
11878         (EXTRA_CC_MODES): Whitespace.
11879         (SELECT_CC_MODE): Add parenthesis and whitespace.
11880         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
11881         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
11882         (ASM_OUTPUT_LABEL): Add paramethesis.
11883         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
11884         (ASM_OUTPUT_REG_POP): Likewise.
11885         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
11886         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11887
11888         * config/i386/i386.c: Update copyright.
11889         (CHECK_STACK_LIMIT): Add parenthesis.
11890         (AT_BP): Uppercase macro parameter.
11891         (x86_64_int_parameter_registers): Constify.
11892         (x86_64_int_return_registers): Likewise.
11893         (ix86_compare_op0): Use rtx.
11894         (construct_container): Constify INTREG parameter.
11895         (function_arg): Use rtx.
11896
11897         * diagnostic.h: Update copyright date.
11898         (output_buffer_state): Add parenthesis.
11899         (output_buffer_format_args): Likewise.
11900
11901         * combine.c (combine_instructions): Replace XEXP (links, 0)
11902         with link.
11903
11904 2002-01-06  H.J. Lu <hjl@gnu.org>
11905
11906         * cfgcleanup.c (thread_jump): Fix 2 typos.
11907
11908 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
11909
11910         * config.gcc: Add support for --enable-altivec.
11911
11912 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11913
11914         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
11915
11916 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
11917
11918         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
11919         __objc_class_name_*.
11920
11921 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11922
11923         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
11924
11925 2002-01-06  Richard Henderson  <rth@redhat.com>
11926
11927         * reorg.c (emit_delay_sequence): Remove death notes, not merely
11928         nop them out.  Increment label reference count for REG_LABEL.
11929         (fill_slots_from_thread): Frob label reference count around
11930         delete_related_insns.
11931
11932 2002-01-05  Richard Henderson  <rth@redhat.com>
11933
11934         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
11935         jump threading.
11936
11937 2002-01-05  Richard Henderson  <rth@redhat.com>
11938
11939         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
11940         * integrate.c (output_inline_function): Likewise.
11941         * toplev.c (rest_of_compilation): Do it here instead.  Move call
11942         to remove_unnecessary_notes after emitting abstract instance.
11943         Force an emitted nested function to have its parent emited as well.
11944         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
11945         for null.
11946         (rtl_for_decl_location): Do not look at reload data structures
11947         before reload has run.
11948
11949 2002-01-05  Kazu Hirata  <kazu@hxi.com>
11950
11951         * cse.c: Fix formatting.
11952         * dwarf2asm.c: Likewise.
11953         * dwarf2out.c: Likewise.
11954         * explow.c: Likewise.
11955         * expmed.c: Likewise.
11956         * function.c: Likewise.
11957         * gcov.c: Likewise.
11958         * gencheck.c: Likewise.
11959         * genrecog.c: Likewise.
11960         * ggc-common.c: Likewise.
11961         * ggc-page.c: Likewise.
11962         * global.c: Likewise.
11963
11964 2002-01-05  Kazu Hirata  <kazu@hxi.com>
11965
11966         * combine.c: Fix formatting.
11967
11968 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
11969
11970         PR middle-end/1557
11971         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
11972
11973 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
11974
11975         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
11976         as 1 for __powerpc64__ as well.
11977
11978         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
11979
11980         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
11981         return it.
11982
11983 2002-01-05  Daniel Berlin  <dan@dberlin.org>
11984
11985         * lcm.c: Revert change, due to performance regression it causes on
11986         SPEC because it's slightly more conservative (sigh, I hate
11987         edge-based LCM).
11988
11989 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
11990
11991         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
11992
11993 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
11994
11995         * doc/cppinternals.texi: Update.
11996
11997 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
11998
11999         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
12000         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
12001         negatives.
12002         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
12003         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
12004         kludge for pre-october-14th mmix versions to handle new-found bug
12005         with PUSHJ/PUSHGO and the register stack.
12006         * config/mmix/mmix.h (struct machine_function): Rename member
12007         has_call_value_without_parameters to has_call_without_parameters.
12008         All referers changed.
12009         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
12010         TARGET_MASK_BRANCH_PREDICT): New macros.
12011         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
12012         -mno-reg-stack-fill-bug-workaround.
12013         * config/mmix/mmix.md ("call"): Set struct machine member
12014         has_call_without_parameters.
12015
12016 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
12017
12018         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
12019
12020 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12021
12022         * cfgcleanup.c: Include tm_p.h
12023         (mark_effect): Fix handling of hard register; fix handling of SET
12024
12025 2002-01-04  Kazu Hirata  <kazu@hxi.com>
12026
12027         * config/h8300/h8300.md (anonymous patterns): Check that
12028         operands are registers before using REGNO on them.
12029
12030 2002-01-03  Roland McGrath  <roland@frob.com>
12031
12032         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
12033
12034 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
12035
12036         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
12037         * c-common.h (genrtl_expr_stmt_value): Likewise.
12038         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
12039         (expand_expr_stmt_value): Add maybe_last argument.
12040         Don't warn about statement with no effect if it is the last statement
12041         in expression statement.
12042         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
12043         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
12044         expand_expr_stmt_value.
12045         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
12046         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
12047         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
12048         as maybe_last to expand_expr_stmt_value.
12049
12050 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
12051
12052         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
12053         be passed in, do not build it.
12054         (c_begin_if_stmt): New function.
12055         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12056         * c-common.h (c_expand_start_cond): Update prototype.
12057         (c_begin_if_stmt): Prototype new function.
12058         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12059         * c-parse.in (if_prefix): Use c_begin_if_stmt,
12060         c_begin_while_stmt and c_finish_while_stmt_cond.
12061
12062 2002-01-04  William Cohen  <wcohen@redhat.com>
12063
12064         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
12065         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12066         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12067         * config/pa/som.h (ASM_FILE_START): Likewise.
12068
12069 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
12070
12071         * lcm.c: Include df.h.
12072         Add available_transfer_function prototype.
12073         (compute_available): Rework to use iterative dataflow framework.
12074         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
12075         with bb_info in df.h
12076         (available_transfer_function): New function.
12077
12078         * Makefile.in (lcm.o): add df.h to dependencies.
12079
12080 2002-01-04  Richard Henderson  <rth@redhat.com>
12081
12082         * config/alpha/alpha.c (some_operand): Accept HIGH.
12083         (input_operand): Likewise; accept simple references to globals.
12084         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
12085         (alpha_const_double_ok_for_letter_p): Likewise.
12086         (alpha_extra_constraint): Likewise.
12087         (alpha_preferred_reload_class): Likewise.  Do not force
12088         symbolic constants to memory.
12089         (alpha_legitimate_address_p): Accept simple references
12090         to small_symbolic_operand.
12091         (alpha_legitimize_address): New arg scratch.  Be prepared to be
12092         called when no_new_pseudos.  Emit simple symbolic references.
12093         Split integers into low, high, and rest.
12094         (alpha_expand_mov): Use alpha_legitimize_address.
12095         (some_small_symbolic_mem_operand): New.
12096         (split_small_symbolic_mem_operand): New.
12097         * config/alpha/alpha-protos.h: Update.
12098         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
12099         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
12100         (EXTRA_CONSTRAINT): Likewise.
12101         (PREFERRED_RELOAD_CLASS): Likewise.
12102         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
12103         (PREDICATE_CODES): Update.
12104         * config/alpha/alpha.md: New post-reload splitters to convert
12105         simplfied symbolic operands to the form that references $29.
12106         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
12107         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
12108
12109 2002-01-03  Richard Henderson  <rth@redhat.com>
12110
12111         * local-alloc.c (function_invariant_p): Update commentary.
12112
12113 2002-01-04  H.J. Lu <hjl@gnu.org>
12114
12115         * toplev.c (rest_of_compilation): Fix a typo when calling
12116         cleanup_cfg.
12117
12118 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12119
12120         * c-common.c: Fix formatting.
12121         * diagnostic.c: Likewise.
12122         * doloop.c: Likewise.
12123         * dwarf2out.c: Likewise.
12124
12125 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12126
12127         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
12128         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
12129
12130 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12131
12132         * cpperror.c: Update comments and copyright.
12133         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
12134         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
12135
12136 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12137
12138         * collect2.c (main): Use strcmp when testing for "-shared".
12139
12140 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12141
12142         * cppmacro.c: Don't include intl.h.  Update comments.
12143         (new_number_token): Allocate enough buffer for 64-bit unsigned
12144         integers; update prototype.
12145         * cppmain.c: Update comments.
12146
12147 2002-01-03  William Cohen  <wcohen@redhat.com>
12148
12149         * function.h (struct function): Add profile.
12150         (current_function_profile): New.
12151         doc/extend.texi: Update documentation.
12152         * final.c (final_start_function): Use current_function_profile
12153         instead of profile_flag.
12154         (profile_after_prologue): Likewise.
12155         * function.c (expand_function_start): Likewise.
12156         (expand_function_start): Likewise.
12157         * config/alpha/alpha.c (direct_call_operand):
12158         (alpha_does_function_need_gp): Likewise.
12159         (alpha_expand_prologue): Likewise.
12160         * config/arm/arm.c (arm_expand_prologue): Likewise.
12161         thumb_expand_prologue: Likewise.
12162         * config/d30v/d30v.c (d30v_stack_info): Likewise.
12163         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
12164         (fr30_expand_prologue): Likewise.
12165         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
12166         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
12167         * config/i386/i386.h (FINALIZE_PIC): Likewise.
12168         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
12169         * config/i960/i960.c (i960_output_function_prologue): Likewise.
12170         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
12171         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
12172         (m32r_expand_prologue): Likewise.
12173         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
12174         (m88k_expand_prologue): Likewise.
12175         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
12176         * config/mips/mips.c (compute_frame_size): Likewise.
12177         (mips_expand_prologue): Likewise.
12178         (mips_can_use_return_insn): Likewise.
12179         * config/pa/elf.h (ASM_FILE_START): Likewise.
12180         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12181         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12182         * config/pa/som.h (ASM_FILE_START): Likewise.
12183         * config/romp/romp.c (romp_using_r14): Likewise.
12184         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
12185         (rs6000_stack_info): Likewise.
12186         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12187         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
12188         * config/v850/v850.c (compute_register_save_size): Likewise.
12189
12190 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
12191
12192         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
12193         gen_lowpart_common fails, use gen_lowpart_SUBREG.
12194
12195 2002-01-03  Turly O'Connor  <turly@apple.com>
12196
12197         * darwin.c (machopic_output_possible_stub_label): Don't generate
12198         stub routines for pseudo-stubs which we've just defined.
12199
12200 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12201
12202         * builtins.c: Fix formatting.
12203         * c-typeck.c: Likewise.
12204         * combine.c: Likewise.
12205         * expr.c: Likewise.
12206         * loop.c: Likewise.
12207
12208 2002-01-03  Andreas Schwab  <schwab@suse.de>
12209
12210         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
12211         and return true if _cpp_push_next_buffer pushed a new include
12212         file.
12213         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
12214         _cpp_pop_file_buffer did not push a new file.
12215         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
12216
12217 2002-01-02  Eric Christopher  <echristo@redhat.com>
12218
12219         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
12220         FIND_REG_INC_NOTE call. Update copyright.
12221         * loop.c (canonicalize_condition): Ditto.
12222         * reorg.c (delete_scheduled_jump): Ditto.
12223
12224 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12225
12226         * gcse.c: Fix formatting.
12227
12228 2002-01-03  Graham Stott  <grahams@redhat.com>
12229
12230         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
12231         forward defs for struct tags rtx_def, union_tree, rtvec_def
12232         also output corresponding typedefs for rtx, tree, and rtvec.
12233
12234         * system.h: Move forward defs for struct tags rtx_def, union_tree,
12235         rtvec_def along with corresponding typedefs for rtx, tree, and
12236         rtvec to config.h, hconfig.h, tconfig.h.
12237
12238 2002-01-03  Graham Stott  <grahams@redhat.com>
12239
12240         * tree.h: Update copyright date.
12241         (IS_EXPR_CODE_CLASS): Add parenthesis.
12242         (TREE_SET_CODE): Add whitespace.
12243         (TREE_CHECK): Add parenthesis.
12244         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
12245         (CST_OR_CONSTRUCTOR_CHECK):
12246         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
12247         (TREE_SYMBOL_REFERENCED): Whitespace.
12248         (INT_CST_LT): Likewise.
12249         (INT_CST_LT_UNSIGNED): Likewise.
12250         (tree_real_cst): Unwrap comment.
12251         (tree_string): Likewise.
12252         (tree_complex): Likewise.
12253         (IDENTIFIER_POINTER): correct cast.
12254         (SAVE_EXPR_CONTEXT): Whitespace.
12255         (EXPR_WFL_FILENAME_NODE): Likewise.
12256         (EXPR_WFL_FILENAME): Remove parenthesis.
12257         (DECL_ORIGIN): Add parenthesis.
12258         (DECL_FROM_INLINE): Use NULL_TREE.
12259         (build_int_2): Whitespace.
12260         (build_type_variant): Add parenthesis.
12261
12262         * gcc/jcf-parse.c: Update copyright date.
12263         (yyparse): Constify resource_filename.
12264
12265 2002-01-03  Graham Stott  <grahams@redhat.com>
12266
12267         * rtl.h: Update copyright date.
12268         (RTL_CHECK1): Wrap long line.
12269         (RTL_CHECK2): Likewise.
12270         (RTL_CHECKC1): Wrap long line and whitespace.
12271         (RTL_CHECKC2): Likewise.
12272         (XWINT): Whitespace.
12273         (XINT): Likewise.
12274         (XSTR): Likewise.
12275         (XEXP): Likewise.
12276         (XVEC): Likewise.
12277         (XMODE): Likewise.
12278         (XBITMAP): Likewise.
12279         (XTREE): Likewise.
12280         (XBBDEF): Likewise.
12281         (XTMPL): Likewise.
12282         (X0WINT): Likewise.
12283         (X0INT):Likewise.
12284         (X0UINT): Likewise.
12285         (X0STR): Likewise.
12286         (X0EXP): Likewise.
12287         (X0VEC): Likewise.
12288         (X0MODE): Likewise.
12289         (X0BITMAP): Likewise.
12290         (X0TREE): Likewise.
12291         (X0BBDEF): Likewise.
12292         (X0ADVFLAGS): Likewise.
12293         (X0CSELIB): Likewise.
12294         (X0MEMATTR): Likewise.
12295         (XCWINT): Likewise.
12296         (XCINT): Likewise.
12297         (XCUINT): Likewise.
12298         (XCSTR): Likewise.
12299         (XCEXP): Likewise.
12300         (XCVEC): Likewise.
12301         (XCMODE): Likewise.
12302         (XCBITMAP): Likewise.
12303         (XCTREE): Likewise.
12304         (XCBBDEF): Likewise.
12305         (XCADVFLAGS): Likewise.
12306         (XCCSELIB): Likewise.
12307         (XC2EXP): Likewise.
12308         (INSN_UID): Likewise.
12309         (PREV_INSN): Likewise.
12310         (PATTERN): Likewise.
12311         (INSN_CODE): Likewise.
12312         (PUT_REG_NOTE_KIND): Likewise.
12313         (CODE_LABEL_NUMBER): Likewise.
12314         (NOTE_SOURCE_FILE): Likewise.
12315         (NOTE_BLOCK): Likewise.
12316         (NOTE_EH_HANDLER): Likewise.
12317         (NOTE_RANGE_INFO): Likewise.
12318         (NOTE_LIVE_INFO): Likewise.
12319         (NOTE_BASIC_BLOCK): Likewise.
12320         (NOTE_EXPECTED_VALUE): Likewise.
12321         (NOTE_LINE_NUMBER): Likewise.
12322         (LABEL_NAME): Likewise.
12323         (LABEL_NUSES): Likewise.
12324         (LABEL_ALTERNATE_NAME): Likewise.
12325         (ADDRESSOF_DECL): Likewise.
12326         (JUMP_LABEL): Likewise.
12327         (LABEL_NEXTREF): Likewise.
12328         (REGNO): Likewise.
12329         (ORIGINAL_REGNO: Likewise.
12330         (HARD_REGISTER_NUM_P): Add parenthesis.
12331         (SUBREG_REG): Whitespace.
12332         (SUBREG_BYTE): Likewise.
12333         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
12334         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
12335         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
12336         (ASM_OPERANDS_INPUT_VEC): Likewise.
12337         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
12338         (ASM_OPERANDS_INPUT): Likewise.
12339         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
12340         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
12341         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
12342         (ASM_OPERANDS_INPUT_MODE): Likewise.
12343         (ASM_OPERANDS_SOURCE_FILE): Likewise.
12344         (ASM_OPERANDS_SOURCE_LINE): Likewise.
12345         (MEM_SET_IN_STRUCT_P): Minor reformat.
12346         (TRAP_CONDITION): Whitespace.
12347         (TRAP_CODE): Likewise.
12348         (COND_EXEC_TEST): Likewise.
12349         (COND_EXEC_CODE): Likewise.
12350         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
12351         (PHI_NODE_P): Add parenthesis.
12352         (plus_constant): Whitespace and add parenthesis.
12353
12354 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12355
12356         * config/avr/avr.c: Fix comment typos.
12357         * config/c4x/c4x.md: Likewise.
12358         * config/dsp16xx/dsp16xx.h: Likewise.
12359         * config/dsp16xx/dsp16xx.md: Likewise.
12360         * config/i386/i386.md: Likewise.
12361         * config/ia64/ia64.c: Likewise.
12362         * config/m32r/m32r.h: Likewise.
12363         * config/m68hc11/m68hc11.md: Likewise.
12364         * config/mmix/mmix.c: Likewise.
12365         * config/mn10200/mn10200.c: Likewise.
12366         * config/romp/romp.c: Likewise.
12367         * config/sh/sh.c: Likewise.
12368         * config/stormy16/stormy16.c: Likewise.
12369         * config/stormy16/stormy16.h: Likewise.
12370         * config/stormy16/stormy16.md: Likewise.
12371
12372 2002-01-03  Graham Stott  <grahams@redhat.com>
12373
12374         * loop.h: Update copyright date.
12375         (LOOP_MOVABLES): Fix typo.
12376         (LOOP_REGS): Likewise.
12377         (LOOP_IVS): Likewise.
12378
12379 2002-01-03  Graham Stott  <grahams@redhat.com>
12380
12381         * cppinit.c: Update copyright date.
12382         Don't include output.h
12383         * Makefile.in: Update copyright date.
12384         Update dependency.
12385
12386 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12387
12388         PR c/5226
12389         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
12390         (-pthread) Add to RS/6000 options.
12391
12392 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12393
12394         * except.c: Fix comment typos.
12395         * loop.c: Likewise.
12396         * varasm.c: Likewise.
12397         * doc/tm.texi: Fix a typo.
12398
12399 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
12400
12401         * c-typeck.c (output_init_element): Allow initializing static storage
12402         duration objects with compound literals.
12403
12404 2002-01-02  Richard Henderson  <rth@redhat.com>
12405
12406         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
12407         after abusing it.
12408
12409 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12410
12411         * gcc.c (default_compilers): Const-ify.
12412         * mips-tdump.c (stab_names): Likewise.
12413         * mips-tfile.c (map_coff_types, map_coff_storage,
12414         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
12415         pseudo_ops_t, pseudo_ops): Likewise.
12416         * protoize.c (default_include): Likewise
12417
12418         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
12419         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
12420         Add array size in declaration.
12421         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
12422         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
12423         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
12424         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
12425         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
12426         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
12427         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
12428         emtens, make_nan): Const-ify.
12429         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
12430         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
12431
12432 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
12433
12434         * config.gcc (ia64-*-*): Set extra_headers.
12435         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
12436         * config/alpha/t-osf: Remove.
12437         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
12438
12439 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
12440
12441         * config/rs6000/t-aix43: Revert previous change.
12442
12443 2002-01-02  Jason Merrill  <jason@redhat.com>
12444
12445         * c-decl.c (c_expand_body): Call outlining_inline_function when
12446         emitting an inline function out of line.
12447
12448 2002-01-02  Richard Henderson  <rth@redhat.com>
12449
12450         * dwarf2out.c (limbo_die_node): Add created_for member.
12451         (new_die): New argument created_for.  Update all callers.
12452         (mark_limbo_die_list): New.
12453         (dwarf2out_init): Register limbo_die_list as a root.
12454         (dwarf2out_finish): Force insert limbo dies into their function
12455         context.
12456
12457 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
12458
12459         PR c++/5089
12460         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
12461
12462 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12463
12464         * config/h8300/fixunssfsi.c: Update copyright.
12465         Fix comment typos.
12466         Fix formatting.
12467         * config/h8300/h8300.c: Update copyright.
12468         Eliminate warnings.
12469
12470 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12471
12472         * config/romp/romp.c: Fix comment formatting.
12473         * config/romp/romp.h: Likewise.
12474         * config/romp/romp.md: Likewise.
12475         * config/s390/s390.c: Likewise.
12476         * config/stormy16/stormy16.c: Likewise.
12477         * config/stormy16/stormy16.h: Likewise.
12478
12479 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
12480
12481         * c-common.h (genrtl_expr_stmt_value): Declare.
12482         * c-semantics.c (genrtl_goto_stmt): Redirect to...
12483         (genrtl_goto_stmt_value): ... this new function.  Pass new
12484         argument down to expand_expr_stmt_value, taking
12485         TREE_ADDRESSABLE into account.
12486         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
12487         STMT_EXPR as addressable, i.e., one whose result we want.
12488         * expr.c (expand_expr): Don't save expression statement value
12489         of labeled_blocks or loop_exprs.
12490         * stmt.c (expand_expr_stmt): Redirect to...
12491         (expand_expr_stmt_value): ... this new function.  Use new
12492         argument to tell whether to save expression value.
12493         (expand_end_stmt_expr): Reset last_expr_type and
12494         last_expr_value if we don't have either.
12495         * tree-inline.c (declare_return_variable): Mark its use
12496         statement as addressable.
12497         * tree.h: Document new use of TREE_ADDRESSABLE.
12498         (expand_expr_stmt_value): Declare.
12499
12500 2002-01-01  Tom Rix  <trix@redhat.com>
12501
12502         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
12503         rs6000_emit_allocate_stack.
12504
12505 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
12506
12507         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
12508         ${srcdir}/ginclude/ to every entry in extra_headers.
12509         * configure: Regenerate.
12510         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
12511         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
12512         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
12513         * ginclude/proto.h: Rename to config/convex/proto.h.
12514
12515 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12516
12517         * attribs.c (handle_vector_size_attribute): Use host_integerp
12518         and tree_int_cst; remove warnings.
12519         * caller-save.c (insert_restore): Add cast to get rid of warning.
12520         (insert_save): Likewise.
12521         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
12522         * regmove.c (find_matches): Add temporary var to kill a warning.
12523
12524 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
12525
12526         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
12527         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
12528         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
12529         (vms-dwarf2eh.o): Add Makefile rule.
12530         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
12531         * config/alpha/vms-dwarf2eh.asm: New file.
12532
12533         * gcc.c (delete_if_ordinary): Delete all versions.
12534
12535 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12536
12537         * config/mmix/mmix.md: Update FIXME to not mention
12538         define_constants.
12539         (MMIX_rJ_REGNUM): New define_constants constant.
12540         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
12541         "*movdicc_real"): Adjust contraints formatting.
12542         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
12543         for branch prediction.
12544         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
12545         output template.
12546         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
12547         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
12548         number.  Delete related FIXMEs.
12549         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
12550         from number to MMIX_rJ_REGNUM.
12551         (TARGET_MASK_BRANCH_PREDICT): New.
12552         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
12553         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
12554         value.  Add -mbranch-predict and -mno-branch-predict.
12555         (TARGET_VERSION): Drop date.
12556         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
12557         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
12558         for finding out global symbols.
12559         (mmix_asm_output_labelref): Revert condition for global symbol.
12560         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
12561         (mmix_print_operand_punct_valid_p): A '+' is valid.
12562
12563 See ChangeLog.6 for earlier changes.