OSDN Git Service

* c-lex.c (lex_string): Let cpp_parse_escape handles truncation
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2
3         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
4         and sign-extension.
5         (lex_charconst): Update for change in prototype of
6         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
7         appropriately.
8         * cpphash.h (BITS_PER_CPPCHAR_T): New.
9         * cppinit.c (cpp_create_reader): Initialize them for no
10         change in semantics.
11         (cpp_post_options): Add sanity checks.
12         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
13         and truncation issues.  Calculate in type cppchar_t.
14         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
15         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
16         run-time dependent precision correctly.  Return whether the
17         result is signed or not.
18         * cpplib.c (dequote_string): Use cppchar_t; update.
19         * cpplib.h (cppchar_signed_t): New.
20         struct cpp_options): New precision members.
21         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
22
23 2002-05-03  David S. Miller  <davem@redhat.com>
24
25         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
26         * config/sparc/sparc.c (sparc_rtx_costs): New function
27         implementing RTX_COSTS and CONST_COSTS.
28         * config/sparc/sparc.h (CONST_COSTS): Delete.
29         (RTX_COSTS_CASES): Define.
30         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
31         the work.
32
33         * config/sparc/sparc.md (DFA schedulers): Split out...
34         * config/sparc/cypress.md, config/sparc/hypersparc.md,
35         config/sparc/sparclet.md, config/sparc/supersparc.md,
36         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
37
38         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
39         checks on it, always defined for Sparc.
40
41         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
42         Tweak, and add more detailed comments.
43
44 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
45
46         * Re-apply patch accidentally reverted with
47         DFA scheduler merge: remove all rules and variables to slurp
48         source files out of libiberty and rebuild them with HOST_CC.
49         ($(HOST_PREFIX_1)varray.o): New rule.
50         (genattrtab rule): Word wrap.
51
52 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
53
54         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
55         (CPP_SUBTARGET_SPEC): Define.
56         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
57         cpp_subtarget specs.
58         (CPP_SPEC): Redefine to include %(cpp_subtarget).
59
60 2002-05-03  David S. Miller  <davem@redhat.com>
61
62         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
63         * target.h (struct gcc_target): Delete cycle_display member.
64
65         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
66         (rtx_needs_barrier): Delete reference to cycle_display unspec.
67         (ia64_sched_reorder2): Mention need for cycle display handling
68         once such notes exist.
69
70 2002-05-03  Richard Henderson  <rth@redhat.com>
71
72         * real.c (etoasc): Strip most trailing zeros for clarity.
73         * sched-vis.c: Include real.h.
74         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
75         * Makefile.in (sched-vis.o): Add real.h.
76
77 2002-05-03  David S. Miller  <davem@redhat.com>
78
79         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
80         no longer needed.
81
82 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
83
84         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
85         when we get an out of range literal.
86         (altivec_expand_ternop_builtin): Same.
87         (altivec_expand_unop_builtin): Same.
88         (altivec_expand_builtin): Same, for dss.
89         (altivec_expand_builtin): Use trees instead of rtl when
90         determining literal argument validity.
91
92 2002-05-03  David S. Miller  <davem@redhat.com>
93
94         Delete cycle display scheduling hook.
95         * config/ia64/ia64.c (ia64_cycle_display,
96         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
97         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
98         and use emit_insn_before instead of ia64_emit_insn_before.
99         * config/ia64/ia64.md (unspec usage): Delete cycle display.
100         (cycle_display): Delete insn pattern.
101         * config/sparc/sparc.md (unspec usage): Delete cycle display.
102         (cycle_display): Delete insn pattern.
103         * config/sparc/sparc.c (sparc_cycle_display,
104         TARGET_SCHED_CYCLE_DISPLAY): Delete.
105         * doc/md.texi (cycle_display): Don't mention.
106         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
107
108 2002-05-03  Richard Henderson  <rth@redhat.com>
109
110         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
111         * recog.h: Declare them.
112
113         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
114         * config/sparc/sparc.md: Use store_data_bypass_p instead.
115         * config/sparc/sparc-protos.h: Update.
116
117 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
118
119         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
120         -D__arch64__.  Add -D_LP64.
121         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
122         from sparc.h.
123         (CPP_ARCH64_SPEC): Likewise.
124         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
125         (NO_BUILTIN_SIZE_TYPE): Undef.
126
127 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
128
129         * genautomata.c (min_issue_delay_pass_states): Change return type
130         in the prototype.
131         (min_issue_delay_pass_states): Change the algorithm.
132         (min_issue_delay): Set up min_insn_issue_delay for the state.
133         (output_min_issue_delay_table): Interchange the nested loops and
134         and initiate min_insn_issue_delay for states.
135
136 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
137
138         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
139         jump is simplejump.
140
141 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
142
143         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
144         sequence.
145
146 2002-05-03  Richard Henderson  <rth@redhat.com>
147
148         PR opt/6534
149         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
150         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
151         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
152         code before JUMP, not EARLIEST.
153
154 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
155
156         * c-format.c (check_format_info_main): Don't check for presence of
157         parameter for * width until after operand number has been read,
158         and only check for it if format parameters are available.
159         Fixes PR c/6547.
160
161 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
162
163         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
164         (LINK_SPEC): Undef before defining.
165
166 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
167
168         PR preprocessor/6489
169         * tradcpp.c (fixup_newlines): New.
170         (main, finclude): Use it.
171
172 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
173
174         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
175         * config/mips/mips.c (mips_unique_section): Strip encoding from
176         decl name.
177
178 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
179
180         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
181         mode.
182
183 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
184
185         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
186         (Specific): Removed buildstats references.
187         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
188         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
189         Accomodate Solaris versions beyond 8.
190         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
191         (Specific, *-*-solaris2.8): Removed, obsolete.
192
193 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
194
195         PR target/6542
196         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
197         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
198         fill leaf_reg_remap with identity.
199         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
200
201 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
202
203         * config/h8300/crti.asm: Remove trailing spaces.
204         * config/h8300/h8300.c: Likewise.
205         * config/h8300/lib1funcs.asm: Likewise.
206
207 2002-05-02  Jason Merrill  <jason@redhat.com>
208
209         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
210         * c-decl.c (c_init_decl_processing): Use it.
211         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
212         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
213         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
214
215 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
216
217         * regrename.c: Fix formatting.
218         * tree.c: Likewise.
219
220 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
221
222         * i386.md (attribute memory): Handle compares properly.
223
224 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
225
226         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
227         to none.
228
229 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
230
231         * function.c: Fix formatting.
232
233 2002-05-02  Jan Hubicka  <jh@suse.cz>
234
235         * haifa-sched.c (schedule_insn): Print table of instructions and
236         reservations.
237         (sched_block): Do not print ready list at verbosity level 1.
238         * sched-vis.c (print_insn): Make global.
239         * sched-ebb.c (ebb_print_insn): Rename from...
240         (print_insn): ... this one.
241         * sched-int.h (print_insn): Declare
242
243 2002-05-02  Richard Henderson  <rth@redhat.com>
244
245         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
246         emitted by cycle_display.
247
248 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
249
250         * doc/install.texi (*-*-freebsd*): Update to latest status.
251
252 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
253
254         PR target/6540
255         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
256         * config/float-sparc.h: Assume 128-bit long double if
257         __LONG_DOUBLE_128__ is defined.
258
259 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
260
261         * genattrtab.c (write_function_unit_info): Add a dummy element
262         when num_units == 0.
263
264 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
265
266         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
267         TYPE_MODE (double_type_node) instead of DFmode.
268
269 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
270
271         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
272         jumps post reload.
273         * toplev.c (rest_of_compilation): Revert Richard's patch.
274
275 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
276
277         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
278
279 2002-05-02  Catherine Moore  <clm@redhat.com>
280
281         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
282
283 2002-05-02  Kazu Hirata  <kazu@hxi.com>
284
285         * combine.c: Fix comment typos.
286         * expr.c: Likewise.
287         * genautomata.c: Likewise.
288         * stmt.c: Likewise.
289         * tree.h: Likewise.
290
291 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
292
293         * doc/install.texi: State GNAT version requirements.
294
295 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
296
297         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
298         of the frame pointer or arg pointer register which strict register
299         checking is not enabled.
300
301 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
302
303         * gcc.dg/altivec-8.c: New.
304
305         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
306         PRE_INC and PRE_DEC for altivec modes.
307
308 2002-05-01  Bruce Korb  <bkorb@gnu.org>
309
310         * fixinc/check.tpl(set-writable): make sure the function exists first
311         * fixinc/inclhack.def(alpha_assert): fix test_text
312         * fixinc/tests/base/assert.h: add in missing result
313
314 2002-05-01  Jeff Law  <law@redhat.com>
315
316         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
317         'T' constraint.
318
319 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
320
321         * dbxout.c (dbxout_type): Emit size information for range types,
322         as well, but only when using GDB extensions.
323
324 2002-05-01  Richard Henderson  <rth@redhat.com>
325
326         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
327         target-independent gnu binutils date test.
328
329 2002-05-01  Richard Henderson  <rth@redhat.com>
330
331         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
332         info before expunging the block.
333
334 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
335
336         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
337         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
338         -M -or -MM is in effect.
339
340 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
341
342         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
343         A29k configurations.
344         * doc/install.texi: Update to match.
345
346 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
347
348         PR bootstrap/6514
349         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
350         for duplicates. Always loop over whole list.
351
352 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
353
354         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
355
356 2002-05-01      Joel Sherrill <joel@OARcorp.com>
357
358         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
359         support routines.
360
361 2002-05-01      Joel Sherrill <joel@OARcorp.com>
362
363         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
364
365 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
366
367         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
368         (nabs_nopower): Same.
369         (floatdisf2): New pattern.
370         (absdi2): Convert to define_insn_and_split.
371         (nabsdi2): Same.
372         (trunctfsf2): Same.
373         (floatditf2): Same.
374         (floatsitf2): Same.
375         (fix_trunctfdi2): Same.
376         (fix_trunctfsi2): Same.
377
378 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
379
380         * doc/install.texi: Update Texinfo version requirement
381         documentation.
382
383 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
384
385         PR target/6512, PR target/5628
386         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
387         when memory is not aligned.
388         (movdf_insn_v9only_vis): Likewise.
389         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
390         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
391         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
392
393 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
394
395         * gcc.dg/altivec-7.c: New.
396
397         * config/rs6000/altivec.h: Cleanup.
398
399 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
400
401         * doc/invoke.texi (Option Summary): Add -mvrsave=.
402         (RS/6000 and PowerPC Options): Document -mvrsave=.
403
404         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
405         (rs6000_altivec_vrsave_string): Same.
406         (rs6000_override_options): Call rs6000_parse_vrsave_option.
407         (rs6000_parse_vrsave_option): New.
408         (rs6000_stack_info): Only generate vrsave instructions when
409         TARGET_ALTIVEC_VRSAVE.
410
411         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
412         (rs6000_altivec_vrsave_string): Define extern.
413         (rs6000_altivec_vrsave): Same.
414         (TARGET_ALTIVEC_VRSAVE): New.
415
416 2002-04-30  Richard Henderson  <rth@redhat.com>
417
418         PR opt/6516
419         * toplev.c (rest_of_compilation): Don't run cross-jump before
420         bb-reorder.
421
422 2002-04-30  Tom Rix  <trix@redhat.com>
423
424         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
425         check which_alternative.
426
427 2002-04-30  Kazu Hirata  <kazu@hxi.com>
428
429         * cpplex.c: Fix comment formatting.
430         * function.c: Likewise.
431         * integrate.c: Likewise.
432         * regrename.c: Likewise.
433         * sibcall.c: Likewise.
434         * simplify-rtx.c: Likewise.
435         * tree-inline.c: Likewise.
436
437 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
438
439         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
440         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
441         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
442         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
443         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
444         * pa/x-ada: New file.  Define ADA_CFLAGS.
445
446 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
447
448         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
449         from MMIX_LAST_REGISTER_FILE_REGNUM.
450         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
451         (struct machine_function): New member highest_saved_stack_register
452         previously static variable in mmix.c.
453         (MACHINE_DEPENDENT_REORG): Define.
454         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
455         (MMIX_OUTPUT_REGNO): New.
456         (mmix_target_asm_function_prologue): Move calculation of last used
457         saved-stack-register into...
458         (mmix_machine_dependent_reorg): New function.  Update to also handle
459         !TARGET_ABI_GNU.
460         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
461         register names, simplify somewhat by new variable regno.
462         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
463         register.
464         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
465         emitting register names.
466         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
467         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
468         Remove fixed FIXME.
469         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
470         Declare.
471
472         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
473
474 2002-04-30  Richard Henderson  <rth@redhat.com>
475
476         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
477         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
478         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
479         emit_tfmode_cvt): New.
480         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
481         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
482         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
483         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
484         * config/sparc/sparc-protos.h: Update.
485
486 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
487
488         * install.texi (Final install): Add to the list of info to include
489         in a report of a successful bootstrap, and add link to 3.1 list.
490
491 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
492
493         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
494         (mode): Add vector modes
495         (i387): Kill attribute.
496         (unit): New attribute.
497         (length_immediate): Grok new types.
498         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
499         (modrm): Use "unit".
500         (memory): Handle MMX/SSE properly.
501         (scheduling descriptions): Kill uses of fop1.
502         (sse, mmx, fp patterns): Set type and mode properly.
503
504 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
505
506         * pa.c (override_options): Default to PA8000 scheduling.
507         * doc/invoke.texi (HP-PA options): Mention newly added 7300
508         scheduling parameter.
509
510         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
511         handling of double precision multiplies.
512
513         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
514         fpdiv and fpsqrt instructions.
515         (7200 & 7300 scheduling): Fix typo in handling of
516         store-load and store-store penalties.
517
518 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
519
520         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
521         mips.  Add two missing commas.
522
523 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
524
525         * doc/contrib.texi (Contributors): Update Paolo Carlini's
526         and Benjamin Kosnik's entries.
527
528 2002-04-29  David S. Miller  <davem@redhat.com>
529
530         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
531         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
532         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
533         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
534
535 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
536
537         * combine.c (find_split_point): Use gen_int_mode.
538
539 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
540
541         Merging code from dfa-branch:
542
543         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
544
545         * genautomata.c (output_reserv_sets): Fix typo.
546
547         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
548
549         * genautomata.c (output_reserv_sets): Remove
550         next_cycle_output_flag.
551
552         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
553
554         * sched-rgn.c (init_ready_list): Make the DFA code handle
555         USE/CLOBBER insns in the same way as the traditional
556         scheduler.
557         (new_ready): Similarly..
558
559         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
560
561         * haifa-sched.c (schedule_block): Change the DFA state only after
562         issuing insn.
563
564         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
565
566         * pa.c (hppa_use_dfa_pipeline_interface): New function.
567         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
568         (override_options): Add PA7300 scheduling support.
569         (pa_adjust_cost): Update various comments.  Properly
570         handle anti and output dependencies when using the
571         DFA scheduler.
572         (pa_issue_rate): Add PA7300 scheduling support.
573         (pa_can_combine_p): Call extract_insn before calling
574         constrain_operands (taken from mainline tree).
575         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
576         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
577         descriptions using DFA descriptions.  Add PA7300
578         scheduling support.
579
580         2002-03-30  David S. Miller  <davem@redhat.com>
581
582         Add UltraSPARC-III DFA scheduling support.
583         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
584         Update FP conditional move on register insn patterns to use it, as
585         appropriate.
586         (define_attr cpu): Add ultrasparc3.
587         (define_attr us3load_type): New, update integer load patterns to
588         set it, as appropriate.
589         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
590         (rest): Add UltraSPARC3 scheduling description.
591         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
592         (PROCESSOR_ULTRASPARC3): New.
593         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
594         ({ASM,CPP}_CPU_SPEC): Likewise.
595         (REGISTER_MOVE_COST): Likewise.
596         (RTX_COSTS): Likewise.
597         * config/sparc/sparc.c (sparc_override_options,
598         sparc_initialize_trampoline, sparc64_initialize_trampoline,
599         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
600         sparc_issue_rate): Likewise.
601         * config/sparc/sol2.h: Likewise.
602         * config/sparc/sol2-sld-64.h: Likewise.
603         * config/sparc/linux64.h: Likewise.
604
605         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
606
607         * doc/md.texi: Add comments about usage the latency time for the
608         different dependencies and about case when two or more conditions
609         in different define_insn_reservations returns TRUE for an insn.
610
611         * doc/md.texi: Add reference for automaton based pipeline
612         description.
613
614         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
615
616         * doc/passes.texi: Add missed information about genattrtab.
617
618         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
619
620         * genautomata.c (output_automata_list_transition_code): Check
621         automata_list on NULL.
622
623         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
624
625         * genautomata.c (output_insn_code_cases,
626         output_automata_list_min_issue_delay_code,
627         output_automata_list_transition_code,
628         output_automata_list_state_alts_code): Comment the functions.
629
630         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
631
632         * genautomata.c (automata_list_el_t): New typedef.
633         (get_free_automata_list_el,free_automata_list_el,
634         free_automata_list, automata_list_hash, automata_list_eq_p,
635         initiate_automata_lists, automata_list_start, automata_list_add,
636         automata_list_finish, finish_automata_lists,
637         output_insn_code_cases, output_automata_list_min_issue_delay_code,
638         output_automata_list_transition_code,
639         output_automata_list_state_alts_code, add_automaton_state,
640         form_important_insn_automata_lists): New functions and prototypes.
641         (insn_reserv_decl): Add members important_automata_list and
642         processed_p.
643         (ainsn): Add members important_p.
644         (automata_list_el): New structure.
645         (first_free_automata_list_el, current_automata_list,
646         automata_list_table): New global variables.
647         (create_ainsns): Initiate member important_p.
648         (output_internal_min_issue_delay_func): Generate the switch and
649         call output_insn_code_cases.
650         (output_internal_trans_func, output_internal_state_alts_func):
651         Ditto.
652         (generate): Call initiate_automata_lists.
653         (automaton_states): New global variable.
654         (expand_automata): Call form_important_insn_automata_lists.
655         (write_automata): Call finish_automata_lists.
656
657         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
658
659         * genautomata.c (add_excls, add_presence_absence): Check that
660         cpu units in the sets belong the same automaton.
661
662         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
663         about that cpu units in the sets belong the same automaton.
664
665         * doc/md.texi: Ditto.
666
667         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
668                     Nitin Gupta  <niting@noida.hcltech.com>
669
670         * config/sh/sh.c (sh_use_dfa_interface): New function.
671
672         (sh_issue_rate): New Function.
673         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
674         TARGET_SCHED_ISSUE_RATE: define.
675
676         * config/sh/sh.md: Add DFA based pipeline description for SH4.
677
678         (define_attr insn_class): New attribute used for DFA
679          scheduling.
680         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
681         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
682          cmpeqdi_t): Likewise.
683
684         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
685          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
686          ex_group.
687         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
688
689         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
690
691         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
692         break.
693
694         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
695
696         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
697         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
698         necessary.
699         (output_dfa_start_func): Initiate new variable insn_codes_length,
700         (write_automata): Output definition of the new variable.
701
702         2001-10-02  David S. Miller  <davem@redhat.com>
703
704         * haifa-sched.c (advance_one_cycle): New function.
705         (schedule_block): Use it.
706         (queue_to_ready): Use it, and also make sure to advance the DFA
707         state on all stall cycles, not just those where insn_queue links
708         are found.
709
710         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
711
712         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
713         non-zero if the highest-priority instruction could be scheduled.
714         (choose_ready): Remove last argument from max_issue call.
715
716         2001-09-28  David S. Miller  <davem@redhat.com>
717
718         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
719         ultrasparc and 3 for other multi-issue sparcs.
720
721         2001-09-27  David S. Miller  <davem@redhat.com>
722
723         * config/sparc/sparc.md (cycle_display): New pattern.
724         * config/sparc/sparc.c (sparc_cycle_display): New.
725         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
726
727         2001-09-25  David S. Miller  <davem@redhat.com>
728
729         Convert all of Sparc scheduling to DFA
730         * config/sparc/sparc.md: Kill all define_function_unit
731         directives and replace with DFA equivalent.
732         * config/sparc/sparc.c (ultrasparc_adjust_cost,
733         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
734         ultra_fpmode_conflict_exists, ultra_find_type,
735         ultra_build_types_avail, ultra_flush_pipeline,
736         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
737         ultrasparc_variable_issue, ultrasparc_sched_init,
738         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
739         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
740         ultra_cur_hist, ultra_cycles_elapsed): Kill.
741         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
742         ultrasparc_store_bypass_p): New.
743         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
744         Declare.
745
746         2001-09-24  David S. Miller  <davem@redhat.com>
747
748         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
749         ready->vec[foo] not ready[foo].
750
751         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
752
753         * doc/md.texi: Correct examples for define_insn_reservations
754         `mult' and `div'.
755
756         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
757
758         * genautomata.c (create_automata): Print message about creation of
759         each automaton.
760         (generate): Remove printing meease about creation of
761         automata.
762
763         2001-09-05  David S. Miller  <davem@redhat.com>
764
765         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
766         * config/sparc/linux64.h: Likewise.
767
768         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
769
770         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
771         schedule_block, sched_init, sched_finish): Add missed calls of
772         use_dfa_pipeline_interface.
773
774         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
775         Ditto.
776
777         * sched-vis.c (get_visual_tbl_length): Ditto.
778
779         2001-08-27  Richard Henderson  <rth@redhat.com>
780
781         * genattr.c (main): Emit state_t even when not doing scheduling.
782
783         2001-08-27  Richard Henderson  <rth@redhat.com>
784
785         * genautomata.c (expand_automata): Always create a description.
786
787         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
788
789         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
790         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
791         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
792         RTL constructions.
793
794         * genattr.c (main): New variable num_insn_reservations.  Increase
795         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
796         pipeline hazard recognizer interface.
797
798         * genattrtab.h: New file.
799
800         * genattrtab.c: Include genattrtab.h.
801         (attr_printf, check_attr_test, make_internal_attr,
802         make_numeric_value): Move protypes into genattrtab.h.  Define them
803         as external.
804         (num_dfa_decls): New global variable.
805         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
806         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
807         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
808         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
809
810         * genautomata.c: New file.
811
812         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
813
814         * sched-int.h: (curr_state): Add the external definition for
815         automaton pipeline interface.
816         (haifa_insn_data): Add comments for members blockage and units.
817
818         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
819         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
820         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
821         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
822         TARGET_SCHED_DFA_POST_CYCLE_INSN,
823         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
824         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
825         macros.
826         (TARGET_SCHED): Use the new macros.
827
828         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
829         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
830         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
831         dfa_bubble): New members in gcc_target.sched.
832
833         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
834         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
835         (insn_queue): Redefine it as pointer to array.
836         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
837         INSN_QUEUE_SIZE.
838         (max_insn_queue_index_macro_value): New variable.
839         (curr_state, dfa_state_size, ready_try): New varaibles for
840         automaton interface.
841         (ready_element, ready_remove, max_issue): New function prototypes
842         for automaton interface.
843         (choose_ready): New function prototype.
844         (insn_unit, blockage_range): Add comments.
845         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
846         FUNCTION_UNITS_SIZE == 0.
847         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
848         actual_hazard, potential_hazard): Add comments.
849         (insn_cost): Use cost -1 as undefined value.  Remove
850         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
851         pipeline interface.
852         (ready_element, ready_remove): New functions for automaton
853         interface.
854         (schedule_insn): Add new code for automaton pipeline interface.
855         (queue_to_ready): Add new code for automaton pipeline interface.
856         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
857         (debug_ready_list): Print newline when the queue is empty.
858         (max_issue): New function for automaton pipeline interface.
859         (choose_ready): New function.
860         (schedule_block): Add new code for automaton pipeline interface.
861         Print ready list before scheduling each insn.
862         (sched_init): Add new code for automaton pipeline interface.
863         Initiate insn cost by -1.
864         (sched_finish): Free the current automaton state and finalize
865         automaton pipeline interface.
866
867         * sched-rgn.c: Include target.h.
868         (init_ready_list, new_ready, debug_dependencies): Add new code for
869         automaton pipeline interface.
870
871         * sched-vis.c: Include target.h.
872         (get_visual_tbl_length): Add code for automaton interface.
873         (target_units, print_block_visualization):  Add comments.
874
875         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
876         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
877         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
878         (getruntime.o, genautomata.o): New entries.
879         (genattrtab.o): Add new dependency file genattrtab.h.
880         (genattrtab): Add new dependencies.  Link it with `libm.a'.
881         (getruntime.o, hashtab.o): New entries for canadian cross.
882
883         * doc/md.texi: Description of automaton based model.
884
885         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
886         Add comments.
887         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
888         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
889         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
890         TARGET_SCHED_DFA_POST_CYCLE_INSN,
891         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
892         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
893         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
894         hook descriptions.
895         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
896         MAX_DFA_ISSUE_RATE): New macro descriptions.
897
898         * doc/contrib.texi: Add dfa based scheduler contribution.
899
900         * doc/gcc.texi: Add more information about genattrtab.
901
902 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
903
904         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
905         adjust_address_nv call.
906
907 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
908
909         * doc/install.texi (Testing): Provide additional information, and
910         a stronger encouragement, for running the testsuites.
911
912 2002-04-29  DJ Delorie  <dj@redhat.com>
913
914         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
915         given in upper case.
916
917 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
918
919         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
920         Solaris 2 <widec.h> if missing.
921         * fixinc/fixincl.x: Regenerate.
922         * fixinc/tests/base/widec.h: New file.
923
924 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
925
926         * toplev.c (f_options): Add "profile" switch so that
927         -fno-profile can be used to disable -p.
928
929 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
930
931         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
932         UV2DImode.
933         * tree.c (build_common_tree_nodes_2): Likewise.
934         * tree.h (enum tree_index): Likewise.
935         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
936
937         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
938         entries.
939         (init_mmx_sse_builtins): Initialize SSE2 builtins.
940         (ix86_expand_builtin): Add support for SSE2 builtins.
941         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
942         (VALID_SSE_REG_MODE): Use it.
943         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
944         (enum ix86_builtins): Add SSE2 builtins.
945         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
946         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
947         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
948         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
949         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
950         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
951         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
952         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
953         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
954         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
955         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
956         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
957         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
958         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
959         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
960         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
961         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
962         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
963         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
964         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
965         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
966         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
967         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
968         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
969         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
970         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
971         lfence_insn): New patterns.
972         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
973         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
974
975 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
976
977         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
978
979 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
980
981         * doc/contrib.texi (Contributors): Add Paolo Carlini and
982         Janis Johnson.
983         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
984         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
985         and CPU instead of cpu.
986
987 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
988
989         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
990         variables.
991         (lang_independent_options): Add -fif-conversion, -fif-conversion2
992         (rest_of_compilation): Do if conversion only when asked for.
993         (parse_options_and_default_flags): Set new variables to 1 for -O1
994         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
995
996 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
997
998         * i386.c (dbx64_register_map): Fix typo.
999
1000 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
1001
1002         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
1003         real_one_half, real_bb_freq_max): New static variables.
1004         (debug_profile_bbauxs): Kill.
1005         (process_note_predictions): Kill unused variable.
1006         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
1007         volatile double.
1008         (propagate_freq): Use REAL_ARITHMETICS.
1009         (estimate_bb_frequencies): Likevise; init new static variables.
1010         * Makefile.in (predict.o): Add dependency on real.h
1011
1012 2002-04-28  David S. Miller  <davem@redhat.com>
1013
1014         PR target/6500
1015         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
1016         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
1017         several {reads,writes} instead.
1018         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1019         Define.
1020
1021 2002-04-27  David S. Miller  <davem@redhat.com>
1022
1023         PR target/6494
1024         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
1025         of the stack bias.
1026
1027         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
1028         including signal.h and sys/ucontext.h, not needed.
1029
1030 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
1031
1032         * varasm.c (output_constant_def): Correct test for not calling
1033         ENCODE_SECTION_INFO for INTEGER_CST.
1034
1035 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1036
1037         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
1038         keep most cases as function eval_token.
1039         (eval_token): New function.
1040         (_cpp_parse_expr): Read token here for improved diagnostics.
1041         Don't use op_as_text.  Detect bad ':' here.
1042         (reduce): Don't detect bad ':' here.
1043         (op_as_text): Remove.
1044         * cpphash.h (_cpp_test_assertion): Change prototype.
1045         * cpplib.c (_cpp_test_assertion): Change prototype.
1046
1047 2002-04-28  Richard Henderson  <rth@redhat.com>
1048
1049         PR c/5154
1050         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
1051         (ggc_mark_rtx_children): New.
1052
1053 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1054
1055         PR target/6496
1056         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
1057         after call peepholes for UltraSPARC.
1058         (call + jump 64-bit peepholes): Remove.
1059
1060 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1061
1062         PR c/6497
1063         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
1064         result as temporary value.
1065
1066 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1067
1068         PR c++/6396
1069         * toplev.c (rest_of_compilation): Only run regrename and copy
1070         propagation if optimizing.
1071
1072 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1073
1074         PR optimization/6475
1075         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
1076         register of REGNO_DECL (i).
1077         * Makefile.in (reload1.o): Add $(TREE_H).
1078
1079 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
1080
1081         * cppexp.c (lex): Update to use state.skip_eval.
1082         (struct op): Remove prio and flags members.
1083         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
1084         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
1085         (LEFT_ASSOC): New macro.
1086         (optab): New table of operator priorities and flags.
1087         (SHIFT): Update.
1088         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
1089         malloc-ed parser stack.
1090         (reduce): New; reduce the operator stack.
1091         (_cpp_expand_op_stack): Expand the operator stack as necessary.
1092         * cpphash.h (struct op): Predeclare.
1093         (struct cpp_reader): New members op_stack, op_limit.
1094         (struct lexer_state): New member skip_eval.
1095         (_cpp_parse_expr): Update.
1096         (_cpp_expand_op_stack): New.
1097         * cpplib.c (do_if): Update.
1098         * cppinit.c (cpp_create_reader): Create op stack.
1099         (cpp_destroy): And destroy it.
1100         * cpplib.h (CPP_LAST_CPP_OP): Correct.
1101         (TTYPE_TABLE): Correct.
1102
1103 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1104
1105         PR c/6343
1106         * c-decl.c (duplicate_decls): Call merge_weak.
1107         * c-pragma.c (apply_pragma_weak): Warn about misuse.
1108         * output.h (merge_weak): Prototype merge_weak.
1109         * varasm.c (merge_weak): New function.
1110         (declare_weak): Make sure we don't give an error on VAR_DECLs.
1111         Mark RTL with SYMBOL_REF_WEAK.
1112
1113 2002-04-27  Kurt Garloff <garloff@suse.de>
1114
1115         * tree-inline.c (inlinable_function_p): Improve heuristics
1116         by using a smoother function to cut down allowable inlinable size.
1117         * param.def: Add parameters max-inline-insns-single,
1118         max-inline-slope, min-inline-insns that determine the exact
1119         shape of the above function.
1120         * param.h: Likewise.
1121
1122 2002-04-26  Richard Henderson  <rth@redhat.com>
1123
1124         * c-parse.in (malloced_yyss, malloced_yyvs): New.
1125         (yyoverflow): Re-add.  Set them.
1126         (free_parser_stacks): New.
1127         * c-common.h: Declare it.
1128         * c-lex.c (c_common_parse_file): Call it.
1129
1130 2002-04-26  Richard Henderson  <rth@redhat.com>
1131
1132         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
1133         for fallthru search.
1134
1135 2002-04-26  Eric Christopher  <echristo@redhat.com>
1136
1137         PR optimization/3700
1138         * config/mips/mips.c (mips_issue_rate): Define.  New function.
1139         (TARGET_SCHED_ISSUE_RATE): Use.
1140
1141 2002-04-25  David S. Miller  <davem@redhat.com>
1142
1143         PR target/6422
1144         * reorg.c (optimize_skip): Do not allow exception causing
1145         instructions to be considered for delay slots.
1146         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
1147         (relax_delay_slots): Do not try to consider exception causing
1148         instructions as redundant.
1149
1150 2002-04-26  Richard Henderson  <rth@redhat.com>
1151
1152         PR c/5225
1153         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
1154
1155 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
1156
1157         PR bootstrap/6445
1158         * config/i386/i386.md (untyped_call): Return the value in a float
1159         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
1160         TARGET_80387.
1161
1162 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
1163
1164         * tree.c (tree_int_cst_lt): Compare constants whose types differ
1165         in unsigned-ness correctly.
1166
1167 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1168
1169         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
1170         portable runtime model.
1171
1172 2002-04-26  Richard Henderson  <rth@redhat.com>
1173
1174         * c-parse.in (yyoverflow): Revert.
1175
1176 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
1177             Richard Henderson  <rth@redhat.com>
1178
1179         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
1180         result as temporary value.
1181
1182 2002-04-26  Richard Henderson  <rth@redhat.com>
1183
1184         PR c/3581
1185         * c-common.c (fix_string_type): Split out of ...
1186         (combine_strings): ... here.  Take a varray, not a tree list.
1187         (c_expand_builtin_printf): Use fix_string_type.
1188         * c-common.h: Update decls.
1189         * c-parse.in (string): Remove.  Update all uses to use STRING
1190         instead, and not call combine_strings.
1191         (yylexstring): New.
1192         (_yylex): Use it.
1193         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
1194         (build_asm_stmt): Likewise.
1195         * objc/objc-act.c (my_build_string): Use fix_string_type.
1196         (build_objc_string_object): Build varray for combine_strings.
1197
1198 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
1199
1200         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
1201         x86-64.
1202
1203 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1204
1205         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
1206         (HAVE_NO_R_OPERAND): Remove.
1207         (HAVE_VALUE): Remove.
1208         (op_to_prio): Update.
1209         (UNARY): Don't alter flags.
1210         (_cpp_parse_expr): want_value used to indicate whether
1211         a number or unary operator is expected next.  Distinguish
1212         unary and binary +/-.
1213         (op_as_text): Update for unary operators.
1214
1215 2002-04-25  Richard Henderson  <rth@redhat.com>
1216
1217         PR c/2161
1218         * c-parse.in (yyoverflow): New.
1219
1220 2002-04-25  Richard Henderson  <rth@redhat.com>
1221
1222         PR c/2098
1223         * c-common.c (shorten_compare): Simplfy conditions leading to
1224         the generation of a warning.
1225
1226 2002-04-25  Richard Henderson  <rth@redhat.com>
1227
1228         PR c/2035
1229         * expmed.c (extract_bit_field): Fall through to generic code rather
1230         than aborting on subreg special case.
1231
1232 2002-04-25  David S. Miller  <davem@redhat.com>
1233
1234         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
1235         for DECL being NULL.
1236
1237 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
1238
1239         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
1240
1241 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
1242
1243         * c-decl.c (grokdeclarator): Remove outdated ??? note
1244         on invalid declaration of flexible array members.
1245
1246 2002-04-25  Richard Henderson  <rth@redhat.com>
1247
1248         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
1249
1250 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
1251
1252         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
1253         needed by the compiler, even if they are used as global regs.
1254
1255 2002-04-25  Matt Hiller  <hiller@redhat.com>
1256
1257         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
1258         functions.
1259         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
1260         of the corresponding functions.
1261         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
1262         New prototypes.
1263
1264 2002-04-25  Matt Hiller  <hiller@redhat.com>
1265
1266         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
1267
1268         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
1269         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
1270         registers, adjust comment accordingly.
1271         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
1272         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
1273         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
1274         for coprocessor registers.
1275         (ADDITIONAL_REGISTER_NAMES): Include
1276         ALL_COP_ADDITIONAL_REGISTER_NAMES.
1277
1278         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
1279         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
1280         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
1281         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
1282         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
1283
1284         (mips_char_to_class): Adjust comment to include coprocessor
1285         constraint letters.
1286
1287         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
1288         New functions.
1289         (mips_reg_names, mips_regno_to_class): Include coprocessor
1290         information.
1291         (mips_sw_reg_names): Ditto, make non-static.
1292         (mips_move_1word): Handle moves to and from coprocessor registers.
1293         (mips_move_2words): Handle moves to and from coprocessor
1294         registers.
1295         (mips_class_max_nregs, mips_register_move_cost): Handle
1296         coprocessor register classes.
1297         (override_options): Initialize mips_char_to_class and
1298         mips_hard_regno_mode_ok properly for coprocessor registers.
1299
1300         * config/mips/mips.md (movdi_internal, movdi_internal2,
1301         movsi_internal1, movsi_internal2): Add constraint-sets for
1302         coprocessor registers.
1303         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
1304         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
1305         isn't mips.
1306         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
1307         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
1308         isn't mips.
1309         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
1310         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
1311         isn't mips.
1312         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
1313         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
1314         isn't mips.
1315
1316         * doc/tm.texi: Document feature.
1317
1318 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1319
1320         * integrate.c (function_attribute_inlinable_p): Simplify.
1321         Check the table pointer is not NULL.
1322
1323 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
1324
1325         * doc/c-tree.texi: Fix typo in introduction.
1326
1327 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1328
1329         * c-common.h (c_common_parse_file): Update.
1330         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1331         * c-lex.c (YYDEBUG): Get from c-lex.h.
1332         (c_common_parse_file): Update.
1333         * c-lex.h (YYDEBUG, yydebug): New.
1334         * c-parse.in (YYDEBUG): Get from c-lex.h.
1335         (c_set_yydebug): Remove.
1336         * c-tree.h (c_set_yydebug): Remove.
1337         * langhooks-def.h (lhd_do_nothing_i): New.
1338         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
1339         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
1340         * langhooks.c  (lhd_do_nothing_i): New.
1341         (lhd_set_yydebug): Remove.
1342         * langhooks.h (struct lang_hooks): Update.
1343         * toplev.c (set_yydebug): New.
1344         (compile_file): Update call to parse_file hook.
1345         (decode_d_option): Update.
1346 objc:
1347         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
1348
1349 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
1350
1351         * loop.c (load_mems): Don't change the interface of called functions.
1352
1353         * calls.c (expand_call): Take current_function_pretend_args_size
1354         into account when setting argblock for sibcalls.
1355
1356 2002-04-24  Matt Hiller  <hiller@redhat.com>
1357
1358         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
1359         * c-lex.c: Ditto.
1360
1361         * cpplex.c (skip_line_comment): Process comment one multibyte
1362         character at a time rather than one char at a time, if
1363         appropriate.
1364         (parse_string): Process string one multibyte character at a time
1365         rather than one char at a time, if appropriate.
1366         * c-lex.c (lex_string): Lex and copy multibyte strings
1367         appropriately.
1368         * cpplib.h (cppchar_t): Change to unsigned.
1369
1370 2002-04-24  Richard Henderson  <rth@redhat.com>
1371
1372         PR c/3467
1373         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
1374         for c99.
1375
1376 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
1377
1378         * sh.c (sh_va_arg): If argument was passed by reference,
1379         dereference the pointer.
1380
1381         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
1382
1383         * sh.md (divsi3_i4_media): Use match_operand for input values
1384         rather than hard registers.
1385         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
1386         unnecessarily through hard registers.  Keep copies of pseudo
1387         registers outside of the libcall sequence.
1388
1389         * sh.md (casesi_shift_media): Add modes.
1390
1391         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
1392         values in memory.
1393
1394 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1395
1396         * attribs.c (c_common_attribute_table): Move table and handlers
1397         to c-common.c.
1398         (format_attribute_table, lang_attribute_table,
1399         lang_attribute_common): Remove.
1400         (init_attributes): Replace NULL pointers with pointers to the
1401         empty table.
1402         (handle_packed_attribute, handle_nocommon_attribute,
1403         handle_common_attribute, handle_noreturn_attribute,
1404         handle_noinline_attribute, handle_always_inline_attribute,
1405         handle_used_attribute, handle_unused_attribute,
1406         handle_const_attribute, handle_transparent_union_attribute,
1407         handle_constructor_attribute, handle_destructor_attribute,
1408         handle_mode_attribute, handle_section_attribute,
1409         handle_aligned_attribute, handle_weak_attribute,
1410         handle_alias_attribute, handle_visibility_attribute,
1411         handle_no_instrument_function_attribute, handle_malloc_attribute,
1412         handle_no_limit_stack_attribute, handle_pure_attribute,
1413         handle_deprecated_attribute, handle_vector_size_attribute,
1414         vector_size_helper): Move to c-common.c.
1415         * c-common.c (c_common_attribute_table,
1416         handle_packed_attribute, handle_nocommon_attribute,
1417         handle_common_attribute, handle_noreturn_attribute,
1418         handle_noinline_attribute, handle_always_inline_attribute,
1419         handle_used_attribute, handle_unused_attribute,
1420         handle_const_attribute, handle_transparent_union_attribute,
1421         handle_constructor_attribute, handle_destructor_attribute,
1422         handle_mode_attribute, handle_section_attribute,
1423         handle_aligned_attribute, handle_weak_attribute,
1424         handle_alias_attribute, handle_visibility_attribute,
1425         handle_no_instrument_function_attribute, handle_malloc_attribute,
1426         handle_no_limit_stack_attribute, handle_pure_attribute,
1427         handle_deprecated_attribute, handle_vector_size_attribute,
1428         vector_size_helper): Move from attribs.c.
1429         * c-common.h (c_common_attribute_table,
1430         c_common_format_attribute_table): New.
1431         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1432         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1433         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1434         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
1435         (LANG_HOOKS_INITIALIZER): Update.
1436         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
1437         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
1438         * target.h: Update comment.
1439         * tree.c (default_target_attribute_table): Remove.
1440         * tree.h (default_target_attribute_table, format_attribute_table,
1441         lang_attribute_table, lang_attribute_common): Remove.
1442 objc:
1443         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
1444         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
1445
1446 2002-04-24  Jason Merrill  <jason@redhat.com>
1447
1448         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
1449         * dwarf2out.c (dwarf_attr_name): Support it.
1450         (gen_array_type_die): Emit it.
1451         (lookup_type_die): No special handling for VECTOR_TYPE.
1452         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
1453
1454 2002-04-24  Richard Henderson  <rth@redhat.com>
1455
1456         * config/mips/mips.md (movdi_usd): Renumber.
1457
1458 2002-04-24  David S. Miller  <davem@redhat.com>
1459
1460         PR target/6420
1461         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
1462         32-bit Sparc and current_function_returns_struct is true.
1463
1464 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1465
1466         * loop.c (canonicalize_condition): Use gen_int_mode.
1467
1468 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
1469
1470         * config/rs6000/altivec.h: Cleanup file.  Add non individual
1471         variants.
1472         (vec_vaddubm): New.
1473         (vec_vadduhm): New.
1474         (vec_vadduwm): New.
1475         (vec_vaddfp): New.
1476         (vec_vaddcuw): New.
1477         (vec_vaddubs): New.
1478         (vec_vaddsbs): New.
1479         (vec_vadduhs): New.
1480         (vec_vadduws): New.
1481         (vec_vaddsws): New.
1482         (vec_vand): New.
1483         (vec_vandc): New.
1484         (vec_vavgub): New.
1485         (vec_vavgsb): New.
1486         (vec_vavguh): New.
1487         (vec_vavgsh): New.
1488         (vec_vavguw): New.
1489         (vec_vavgsw): New.
1490         (vec_vrfip): New.
1491         (vec_vcmpbfp): New.
1492         (vec_vcmpequb): New.
1493         (vec_vcmpequh): New.
1494         (vec_vcmpequw): New.
1495         (vec_vcmpeqfp): New.
1496         (vec_vcmpgefp): New.
1497         (vec_vcmpgtub): New.
1498         (vec_vcmpgtsb): New.
1499         (vec_vcmpgtuh): New.
1500         (vec_vcmpgtsh): New.
1501         (vec_vcmpgtuw): New.
1502         (vec_vcmpgtsw): New.
1503         (vec_vcmpgtfp): New.
1504         (vec_vcmpgefp): New.
1505         (vec_vcfux): New.
1506         (vec_vcfsx): New.
1507         (vec_vctsxs): New.
1508         (vec_vctuxs): New.
1509         (vec_vexptefp): New.
1510         (vec_vrfim): New.
1511         (vec_lvx): New.
1512         (vec_lvebx): New.
1513         (vec_lvehx): New.
1514         (vec_lde): Add vector float variant.
1515         (vec_lvewx): New.
1516         (vec_lvxl): New.
1517         (vec_vlogefp): New.
1518         (vec_vmaddfp): New.
1519         (vec_vmhaddshs): New.
1520         (vec_vmaxub): New.
1521         (vec_vmaxsb): New.
1522         (vec_vmaxuh): New.
1523         (vec_vmaxsh): New.
1524         (vec_vmaxuw): New.
1525         (vec_vmaxsw): New.
1526         (vec_vmaxsw): New.
1527         (vec_vmaxfp): New.
1528         (vec_vmrghb): New.
1529         (vec_vmrghh): New.
1530         (vec_vmrghw): New.
1531         (vec_vmrglb): New.
1532         (vec_vmrglh): New.
1533         (vec_vmrglw): New.
1534         (vec_vminub): New.
1535         (vec_vminsb): New.
1536         (vec_vminuh): New.
1537         (vec_vminsh): New.
1538         (vec_vminuw): New.
1539         (vec_vminsw): New.
1540         (vec_vminfp): New.
1541         (vec_vmladduhm): New.
1542         (vec_vmhraddshs): New.
1543         (vec_msumubm): New.
1544         (vec_vmsummbm): New.
1545         (vec_vmsumuhm): New.
1546         (vec_vmsumshm): New.
1547         (vec_vmsumuhs): New.
1548         (vec_vmsumshs): New.
1549         (vec_vmuleub): New.
1550         (vec_vmulesb): New.
1551         (vec_vmuleuh): New.
1552         (vec_vmulesh): New.
1553         (vec_vmuloub): New.
1554         (vec_mulosb): New.
1555         (vec_vmulouh): New.
1556         (vec_vmulosh): New.
1557         (vec_vnmsubfp): New.
1558         (vec_vnor): New.
1559         (vec_vor): New.
1560         (vec_vpkuhum): New.
1561         (vec_vpkuwum): New.
1562         (vec_vpkpx): New.
1563         (vec_vpkuhus): New.
1564         (vec_vpkshss): New.
1565         (vec_vpkuwus): New.
1566         (vec_vpkswss): New.
1567         (vec_vpkshus): New.
1568         (vec_vpkswus): New.
1569         (vec_vperm): New.
1570         (vec_vrefp): New.
1571         (vec_vrlb): New.
1572         (vec_vrlh): New.
1573         (vec_vrlw): New.
1574         (vec_vrfin): New.
1575         (vec_vrsqrtefp): New.
1576         (vec_vsel): New.
1577         (vec_vslb): New.
1578         (vec_vslh): New.
1579         (vec_vslw): New.
1580         (vec_vsldoi): New.
1581         (vec_vsl): New.
1582         (vec_vslo): New.
1583         (vec_vspltb): New.
1584         (vec_vsplth): New.
1585         (vec_vspltw): New.
1586         (vec_vspltisb): New.
1587         (vec_vspltish): New.
1588         (vec_vspltisw): New.
1589         (vec_vsrb): New.
1590         (vec_vsrh): New.
1591         (vec_vsrw): New.
1592         (vec_vsrab): New.
1593         (vec_vsrah): New.
1594         (vec_vsraw): New.
1595         (vec_vsr): New.
1596         (vec_vsro): New.
1597         (vec_stvx): New.
1598         (vec_stvebx): New.
1599         (vec_stvehx): New.
1600         (vec_stvewx): New.
1601         (vec_stvxl): New.
1602         (vec_vsububm): New.
1603         (vec_vsubuhm): New.
1604         (vec_vsubuwm): New.
1605         (vec_vsubfp): New.
1606         (vec_vsubcuw): New.
1607         (vec_vsububs): New.
1608         (vec_vsubsbs): New.
1609         (vec_vsubuhs): New.
1610         (vec_vsubshs): New.
1611         (vec_vsubuws): New.
1612         (vec_vsubsws): New.
1613         (vec_vsum4ubs): New.
1614         (vec_vsum4sbs): New.
1615         (vec_vsum4shs): New.
1616         (vec_vsum2sws): New.
1617         (vec_vsumsws): New.
1618         (vec_vrfiz): New.
1619         (vec_vupkhsb): New.
1620         (vec_vupkhpx): New.
1621         (vec_vupkhsh): New.
1622         (vec_vupklsb): New.
1623         (vec_vupklpx): New.
1624         (vec_vupklsh): New.
1625         (vec_vxor): New.
1626
1627 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
1628
1629         PR c/5430
1630         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
1631         added literals from substracted literals.
1632         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
1633         (fold) [associate]: Preserve MINUS_EXPR if needed.
1634
1635 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
1636
1637         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
1638         are obsoleted.
1639
1640 2002-04-23  Tom Tromey  <tromey@redhat.com>
1641
1642         * gcc.c: Added --resource.  For PR java/6314.
1643
1644 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1645
1646         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
1647         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
1648         these libraries.
1649
1650 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
1651
1652         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
1653
1654 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
1655
1656         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
1657         workaround.
1658         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
1659         (ix86_expand_clrstr): Fix typo.
1660         * loop.c (gen_load_of_final_value): New.
1661         (loop_givs_rescan, strength_reduce, check_dbra_loop):
1662         Use it.
1663
1664 2002-04-23  Roger Sayle  <roger@eyesopen.com>
1665
1666         * builtins.c (builtin_memset_gen_str): New function.
1667         (expand_builtin_memset): Optimize the case of constant length, but
1668         unknown value.
1669
1670 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
1671
1672         * config/rs6000/altivec.h (vec_step): Remove extraneous
1673         parentheses.
1674         (vec_ctu): Cast return.
1675
1676 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
1677
1678         PR target/6413
1679         * function.h: (struct function): Add profile_label_no field.
1680         (current_function_profile_label_no): Define.
1681         * function.c: (profile_label_no): New static var.
1682         (expand_function_start): Increment it, and copy to
1683         current_function_profile_label_no.
1684         * output.h (profile_label_no): Delete.
1685         * final.c (profile_label_no): Delete.
1686         (profile_function): Use current_function_profile_label_no.
1687         (final_end_function): Don't increment profile_label_no here.
1688         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
1689         profile_label_no with current_function_profile_label_no.
1690         * config/pa/pa.c (current_function_number): Delete.
1691         (pa_output_function_prologue): Don't output profile label here.
1692         (hppa_profile_hook): Use label_no param rather than
1693         current_function_number.
1694         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
1695         * config/pa/pa.h: .. here.
1696         (FUNCTION_PROFILER): Output profile label here.
1697
1698 2002-04-22  Eric Christopher  <echristo@redhat.com>
1699
1700         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
1701         patch of 2002-04-09 due to binutils issues.
1702         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
1703
1704 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1705
1706         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
1707         constraint to 'o' for m=r and r=m alternatives.
1708         ("*movv8hi_internal1"): Same.
1709         ("*movv16qi_internal1"): Same.
1710         ("*movv4sf_internal1"): Same.
1711
1712 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
1713
1714         * rtl.h (RTX_FLAG): New macro.
1715         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
1716         * final.c (alter_subreg): Use macro to access rtx flag.
1717         * integrate.c (copy_rtx_and_substitute): Use new access macro.
1718         * print-rtl.c (print_rtx): Use new access macro.
1719
1720         * cse.c (insert): Check rtx code before accessing flag.
1721
1722         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
1723         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
1724         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
1725         convert_const_symbol_ref, make_canonical, make_alternative_compare,
1726         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
1727         simplify_test_exp, optimize_attrs, simplify_by_exploding,
1728         find_and_mark_used_attributes, unmark_used_attributes,
1729         add_values_to_cover, simplify_with_current_value,
1730         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
1731         copy_rtx_unchanging, main): Use new access macros.
1732
1733 2002-04-22  Tom Rix  <trix@redhat.com>
1734
1735         * expmed.c (init_expmed): Generate shifted constant once.
1736
1737 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
1738
1739         * c-lex.c (lex_charconst): Call convert to get constant in
1740         proper type; don't just smash the type field.
1741         Fixes PR c/6300.
1742
1743         * config.gcc: Add list of obsolete configurations.  Disallow
1744         building these without --enable-obsolete.
1745         * doc/install.texi: Document --enable-obsolete and obsoletion
1746         policy.  Mention obsoletion of individual targets in
1747         appropriate places.
1748
1749 2002-04-22  Richard Henderson  <rth@redhat.com>
1750
1751         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
1752
1753 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
1754
1755         PR f/6138.
1756         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
1757         (walk_fixup_memory_subreg): Likewise.
1758         (fixup_var_refs_insn): Adjust accordingly.
1759         (fixup_var_refs_1): Likewise.
1760
1761 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
1762
1763         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
1764         LIBPATH_ARCH64_SPEC): Define.
1765         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
1766         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
1767         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
1768         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
1769
1770 2002-04-22      Joel Sherrill <joel@OARcorp.com>
1771
1772         * gthr-rtems.h: Correct prototypes to remove warnings.
1773
1774 2002-04-22  Richard Henderson  <rth@redhat.com>
1775
1776         PR c/6344
1777         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
1778
1779         * gcse.c (free_insn_expr_list_list): New.
1780         (clear_modify_mem_tables): Use it.  Fix bit set usage.
1781         (canon_list_insert): Use EXPR_LISTs for expressions.
1782         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
1783
1784 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1785
1786         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
1787         file change and include code to _cpp_pop_buffer.
1788         * cpphash.h (struct pending_option): Predeclare.
1789         (struct cpp_reader): New member next_include_file.
1790         (_cpp_pop_file_buffer): Update.
1791         (_cpp_push_next_buffer): Update, rename.
1792         * cppinit.c (cpp_destroy): Free include chain and pending here.
1793         (cpp_finish_options): Simplify.
1794         (_cpp_push_next_buffer): Rename and clean up.
1795         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
1796         Clarify.
1797         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
1798
1799 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
1800
1801         * config/rs6000/altivec.h (vec_xor): Add variant for both args
1802         being vector signed int.
1803         (vec_andc): Same.
1804         (vec_xor): Add variant for both args being vector signed char.
1805         Remove redundant variant.
1806         (vec_andc): Same.
1807
1808 2002-04-21  David S. Miller  <davem@redhat.com>
1809
1810         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
1811         compare mode in output RTL.
1812
1813 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
1814
1815         * config/rs6000/rs6000.c (rs6000_override_options): Correct
1816         style and formatting of previous patch.
1817
1818 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
1819
1820         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
1821         flag_pic for ABI_AIX.
1822
1823 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1824
1825         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
1826         * cppfiles.c (read_include_file): Similarly.
1827         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
1828         uxstrdup ustrchr, ufputs): Similarly.
1829         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
1830         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
1831         cpp_ideq, parse_identifier, parse_number): Similarly.
1832         * cpplib.c (struct directive, dequote_string, D, run_directive,
1833         cpp_push_buffer): Similarly.
1834         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
1835         _cpp_create_definition, check_trad_stringification,
1836         cpp_macro_definition): Similarly.
1837
1838 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1839
1840         * cppmacro.c (funlike_invocation_p): Don't step back
1841         over CPP_EOF.
1842
1843 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
1844
1845         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
1846         labelno.
1847
1848 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1849
1850         * doc/invoke.texi: Remove Chill references.
1851         * doc/gcc.texi: Update last modified date.
1852
1853 2002-04-20  Kazu Hirata  <kazu@hxi.com>
1854
1855         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
1856         push and pop.  Replace add.l with add.w.
1857
1858 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1859
1860         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
1861         multiply instructions for H8/300H case.
1862
1863 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1864
1865         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
1866         Bum three instructions from each routine.
1867
1868 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
1869
1870         * Makefile.in: Update.
1871         * decl.c (push_c_function_context, pop_c_function_context,
1872         mark_c_function_context): Rename for consistency.
1873         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
1874         * c-tree.h (push_c_function_context, pop_c_function_context,
1875         mark_c_function_context): Rename for consistency.
1876         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1877         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1878         * function.c (init_lang_status, save_lang_status,
1879         restore_lang_status, mark_lang_status, free_lang_status):
1880         Move to langhooks.h.
1881         (push_function_context_to, pop_function_context_from,
1882         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
1883         Update.
1884         * function.h (init_lang_status, save_lang_status,
1885         restore_lang_status, mark_lang_status, free_lang_status):
1886         Move to langhooks.h.
1887         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
1888         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1889         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
1890         LANG_HOOKS_FUNCTION_INITIALIZER): New.
1891         (LANG_HOOKS_INITIALIZER): Update.
1892         (lhd_do_nothing_f): New.
1893         * langhooks.h (struct lang_hooks_for_functions): New.
1894         (struct lang_hooks): New hooks.
1895         * langhooks.c (lhd_do_nothing_f): New.
1896 objc:
1897         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1898         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
1899
1900 2002-04-19  David S. Miller  <davem@redhat.com>
1901
1902         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
1903         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
1904
1905 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1906
1907         PR optimization/3756
1908         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
1909         x = ((int) y < 0) ? cst1 : cst2.
1910
1911 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
1912
1913         PR c/6358
1914         * function.c: Reapply patch for c/6358.
1915         (expand_function_end): Copy decl_rtl's mode, not
1916         current_function_return_rtx mode.
1917
1918 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
1919
1920         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
1921         targets.
1922
1923 2002-04-19  Tom Tromey  <tromey@redhat.com>
1924
1925         * doc/install.texi (Specific): Update status of Solaris 2.8.
1926         For PR libgcj/6158.
1927
1928 2002-04-19  Andreas Schwab  <schwab@suse.de>
1929
1930         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
1931         (PUT_REAL): Restore old definition.
1932
1933 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1934             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1935
1936         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
1937         binutils 2.11.2 and higher generate smaller binaries than Sun's
1938         native tools.
1939
1940 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
1941
1942         PR c++/6352
1943         * toplev.c (rest_of_compilation): Do not defer functions for which
1944         TREE_SYMBOL_REFERENCED has already been set.
1945
1946 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
1947
1948         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
1949         alternative.
1950
1951 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1952
1953         * builtins.c: Include langhooks.h.
1954         (lang_type_promotes_to): Remove.
1955         (expand_builtin_va_arg): Use new hook.
1956         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
1957         (simple_type_promotes_to): Move to c-typeck.c.
1958         * c-common.h (simple_type_promotes_to): Remove.
1959         * c-decl.c (duplicate_decls, grokdeclarator): Update.
1960         * c-format.c: Include langhooks.h.
1961         (check_format_types): Update.
1962         * c-tree.h (c_type_promotes_to): New.
1963         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
1964         (type_lists_compatible_p): Update.
1965         * langhooks-def.h (lhd_type_promotes_to): New.
1966         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
1967         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1968         * langhooks.c (lhd_type_promotes_to): New.
1969         * langhooks.h (struct lang_hooks_for_types): New hook.
1970         * tree.h (lang_type_promotes_to): Remove.
1971 objc:
1972         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
1973
1974 2002-04-18  Richard Henderson  <rth@redhat.com>
1975
1976         * function.c: Revert patch for c/6358.
1977
1978 2002-04-18  Richard Henderson  <rth@redhat.com>
1979
1980         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
1981         blocks.  Handle multiple references to the TRAP block.  Handle
1982         non-adjacent THEN and OTHER blocks.
1983
1984 2002-04-18  Richard Henderson  <rth@redhat.com>
1985
1986         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
1987         crash with no type for by-mode libcalls.
1988
1989         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
1990
1991 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
1992
1993         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
1994         __xtensa_nonlocal_goto): Use a syscall instructions to flush
1995         the register windows.
1996
1997 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
1998
1999         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
2000         appropriate.  Document need for extended precision even when
2001         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
2002         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
2003         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
2004         instead of relying on later syntax error when REAL_WIDTH > 5.
2005         * real.c: Define NE based only on whether or not we have a
2006         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
2007         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
2008         define GET_REAL and PUT_REAL as simple memcpy operations; no
2009         need to byteswap or round.
2010         Use #error instead of #ifdef-ing out the entire file, for
2011         prompt error detection.
2012
2013         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
2014
2015 2002-04-18  David S. Miller  <davem@redhat.com>
2016
2017         * config/sparc/sparc.h (BRANCH_COST): Define.
2018
2019         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
2020         does it.
2021
2022 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
2023
2024         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
2025         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
2026         propagate_block calls after relaxation loop using new variable
2027         stabilized_prop_flags.
2028
2029 2002-04-18  Richard Henderson  <rth@redhat.com>
2030
2031         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
2032         (ia64_va_arg): Expect variable sized types by reference.
2033         * config/ia64/ia64-protos.h: Update.
2034         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
2035         ia64_function_arg_pass_by_reference.
2036
2037 2002-04-18  Richard Henderson  <rth@redhat.com>
2038
2039         * ifcvt.c: Include except.h.
2040         (block_has_only_trap): Break out from find_cond_trap.
2041         (find_cond_trap): Use it.  Always delete the trap block.
2042         (merge_if_block): Allow then block null.  Be less simplistic about
2043         what insns can end a block.
2044         * Makefile.in (ifcvt.o): Depend on except.h.
2045
2046         * config/ia64/ia64.md (trap, conditional_trap): New.
2047
2048 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
2049
2050         PR c/6358
2051         * function.c (assign_parms): Assign hard current_function_return_rtx
2052         register here...
2053         (expand_function_end): ...not here.
2054
2055 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2056
2057         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
2058         * c-tree.h (c_incomplete_type_error): New.
2059         * c-typeck.c (require_complete_type, build_component_ref): Update.
2060         (incomplete_type_error): Rename.
2061         * langhooks-def.h (lhd_incomplete_type_error): New.
2062         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
2063         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
2064         * langhooks.c (lhd_incomplete_type_error): New.
2065         * langhooks.h (struct lang_hooks_for_types): New hook.
2066         * tree.c (size_in_bytes): Use new hook.
2067         * tree.h (incomplete_type_error): Remove.
2068 objc:
2069         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
2070
2071 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
2072
2073         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
2074         TARGET_FLOAT_FORMAT blocks.
2075
2076 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2077
2078         * doc/install.texi (Downloading the source): Do not mention Chill
2079         any longer, but mention Ada.
2080         (Configuration): Do not mention Chill any longer.
2081
2082 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
2083
2084         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
2085
2086 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
2087
2088         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
2089         in last patch.
2090
2091 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
2092
2093         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
2094         instead of unsigned_type.
2095
2096 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2097
2098         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
2099         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
2100         later.
2101
2102 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
2103
2104         * attribs.c (vector_type_node_list): New static variable.
2105         (handle_vector_size_attribute): Use it to avoid generating a
2106         new type node each time we are called.
2107
2108         * combine.c (subst): Avoid trying to make a vector mode subreg of
2109         an integer constant.
2110         (gen_lowpart_for_combine): Likewise.
2111
2112 2002-04-18  Roger Sayle  <roger@eyesopen.com>
2113             Jakub Jelinek  <jakub@redhat.com>
2114
2115         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
2116         for integer constant c (if x has unsigned type or sign bit is not
2117         set in c).  This folds the zero/sign extension into the bit-wise and
2118         operation.
2119
2120 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
2121
2122         PR middle-end/6205
2123         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
2124         otherwise xorps.
2125
2126 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
2127
2128         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
2129
2130 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
2131
2132         * gcc.c (read_specs): Detect and fail if an attempt is made to
2133         rename a spec string to an already existing string.
2134
2135 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
2136
2137         * config/s390/s390.c (legitimize_pic_address): Do not generate
2138         illegal address constant without CONST.
2139
2140 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2141
2142         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
2143         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
2144
2145 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
2146
2147         PR optimization/6305
2148         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
2149         to make sure previous reloads are taken into account.  Generate
2150         better code if one operand is an in-range immediate constant.
2151
2152 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
2153
2154         * doc/install.texi (Building): libgcj requires GNU make.
2155
2156 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
2157
2158         PR bootstrap/6315
2159         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
2160         even if hard quad and register is not floating.
2161         (movtf reg<-mem split): Disallow splitting if hard quad and
2162         register is floating.
2163         (movtf mem<-reg split): Likewise.
2164         * config/sparc/sparc.c (fp_register_operand): New predicate.
2165         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
2166
2167 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
2168
2169         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
2170         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
2171         (unprotoize.o): Ditto.  Build from protoize.c.  Define
2172         UNPROTOIZE on command line.
2173         * protoize.c: Include cppdefault.h.  Delete include_defaults.
2174         (in_system_include_dir): Use cpp_include_defaults (defined in
2175         cppdefault.o).
2176         * unprotoize.c: Delete file.
2177
2178 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
2179
2180         * config/rs6000/altivec.h (vec_ld): Add array variants.
2181         (vec_lde): Same.
2182         (vec_ldl): Same.
2183
2184 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
2185             Aldy Hernandez <aldyh@redhat.com>
2186
2187         * config/rs6000/altivec.h: Define __ALTIVEC__.
2188         (bool): New.
2189         (__pixel): New.
2190         (pixel): New.
2191         (vec_cfux): New.
2192         (vec_vmaddfp): New.
2193         (vec_vsldoi): New.
2194         Add parentheses to all macro arguments.
2195
2196 2002-04-16  Richard Henderson  <rth@redhat.com>
2197
2198         PR c++/6320
2199         * except.c (remove_eh_handler): Insert inner regions at beginning
2200         of sibling chain.  Refactor expressions.
2201
2202 2002-04-16  Richard Henderson  <rth@redhat.com>
2203
2204         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
2205         * config/sparc/sol2-gas-bi.h: New file.
2206         * config.gcc (sparc*-solaris): Add it as needed.
2207         * configure.in (AS_SPARC64_FLAG): Remove check.
2208         * config.in, configure: Regenerate.
2209
2210         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
2211
2212 2002-04-16  Richard Henderson  <rth@redhat.com>
2213
2214         * config/mips/mips.c (override_options): Don't override N32 for
2215         a 64-bit ISA.
2216
2217         PR 6202
2218         * config/mips/mips.md (can_delay): Split out of existing define_delays.
2219         (HILO_delay): Set can_delay false.
2220
2221 2002-04-16  Dale Johannesen <dalej@apple.com>
2222
2223         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
2224         instruction addresses.
2225         (rs6000_output_function_epilogue): Likewise.
2226
2227 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
2228
2229         * c-parse.in (poplevel, compstmt_start,
2230         compstmt_primary_start): Add ending ';', in accordance
2231         with POSIX.
2232
2233 2002-04-16  Richard Henderson  <rth@redhat.com>
2234
2235         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
2236         Adjust tm_file order to get TARGET_DEFAULT set properly.
2237         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
2238         * doc/install.texi (sparc-solaris): Update.
2239
2240 2002-04-16  Dale Johannesen <dalej@apple.com>
2241
2242         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
2243         comparison operands do not match each other or if modes of
2244         conditions do not match result.
2245
2246 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
2247
2248         PR target/6305
2249         * config/s390/s390.md (mulsidi3): Set both subregs of the
2250         multiword register.
2251
2252 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
2253
2254         * config/rs6000/altivec.h (vec_addc): Type check.
2255
2256 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
2257
2258         PR middle-end/6279
2259         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
2260
2261         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
2262
2263 2002-04-15  Richard Henderson  <rth@redhat.com>
2264
2265         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
2266         call_really_used_regs too.
2267
2268 2002-04-15  Richard Henderson  <rth@redhat.com>
2269
2270         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
2271
2272 2002-04-15  David S. Miller  <davem@redhat.com>
2273
2274         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
2275         as being CLOBBERed.
2276
2277 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
2278
2279         PR c/6290
2280         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
2281         CONST_VECTOR is { 0, ... 0 }.
2282
2283 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
2284
2285         * doc/install.texi (Installing GCC: Configuration): Clarify
2286         the only supported ways to configure gcc.
2287
2288 2002-04-15  Roland McGrath  <roland@frob.com>
2289
2290         * config.gcc (alpha*-*-gnu*): New target configuration.
2291         * config/alpha/gnu.h: New file for it.
2292         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
2293
2294 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
2295
2296         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
2297         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
2298         * tree.h (expand_start_stmt_expr): Update prototype.
2299         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
2300         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
2301         on the STMT_EXPR created for the inline function.
2302
2303 2002-04-15  Richard Henderson  <rth@redhat.com>
2304
2305         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
2306         config/i386/linux-aout.h, config/i386/linux-oldld.h,
2307         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
2308         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
2309         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
2310         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
2311         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
2312         Define __gnu_linux__, not gnu_linux.
2313         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
2314
2315 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
2316
2317         Remove Chill front end.
2318         * gcc.c (default_compilers): Remove Chill entries.
2319         * ch: Remove directory.
2320         * doc/frontends.texi: Remove information about Chill.
2321         * doc/sourcebuild.texi: Likewise.
2322         * doc/standards.texi: Likewise.
2323
2324 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
2325
2326         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
2327         (LONGLONG_STANDALONE): Define.
2328
2329 2002-04-15  David S. Miller  <davem@redhat.com>
2330
2331         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
2332         Call emit_library_call with LCT_NORMAL.
2333         (sparc_initialize_trampoline): Use LCT_foo instead of
2334         magic constant in emit_library_call invocations.
2335         (sparc64_initialize_trampoline): Likewise.
2336         (sparc_profile_hook): Likewise.
2337         * config/sparc/sparc.md: Likewise.
2338
2339         * config/sparc/sparc.c (sparc_extra_constraint_check):
2340         Fix type of argument 'c'.
2341         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
2342         Likewise.
2343
2344 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2345
2346         * diagnostic.h (output_buffer_state): Redefine.
2347         (output_format_decoder): New macro.
2348         (output_prefixing_rule): Likewise.
2349         (output_line_cutoff): Likewise.
2350         (diagnostic_format_decoder): Adjust.
2351         (diagnostic_prefixing_rule): Likewise.
2352         (diagnostic_line_cutoff): Likewise.
2353         (diagnostic_state): Likewise.
2354         (diagnostic_kind_count): Likewise.
2355         (diagnostic_buffer): Now a macro.
2356
2357         * diagnostic.c (diagnostic_buffer): Remove definition.
2358         (output_is_line_wrapping): Adjust.
2359         (set_real_maximum_length): Likewise.
2360         (output_set_maximum_length): Likewise.
2361         (init_output_buffer): Likewise.
2362         (lhd_print_error_function): Likewise.
2363         (output_do_verbatim): Likewise.
2364
2365 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
2366
2367         * cpperror.c (print_location): Don't print include chain
2368         if line == 0.
2369         (cpp_begin_message): Update to use DL_ macros.
2370         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2371         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2372         cpp_notice, cpp_notice_from_errno): Remove.
2373         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2374         level.
2375         (cpp_errno): New.
2376         * cppexp.c (CPP_ICE): Remove.
2377         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
2378         lex, integer_overflow, _cpp_parse_expr): Update.
2379         * cppfiles.c (read_include_file, find_include_file,
2380         handle_missing_header, _cpp_read_file, remap_filename): Update.
2381         * cpphash.h (enum error_type): Remove.
2382         (_cpp_begin_message): Update.
2383         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
2384         cpp_handle_option, cpp_post_options): Update.
2385         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
2386         skip_whitespace, parse_identifier, parse_slow, parse_string,
2387         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
2388         cpp_interpret_charconst): Update.
2389         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
2390         lex_macro_node, do_undef, glue_header_name, parse_include,
2391         do_include_common, read_flag, do_line, do_linemarker, do_ident,
2392         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
2393         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
2394         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
2395         _cpp_pop_buffer, do_diagnostic): Update.
2396         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
2397         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
2398         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
2399         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2400         cpp_notice, cpp_notice_from_errno): Remove.
2401         (cpp_error, cpp_error_with_line): Update to take a diagnostic
2402         level.
2403         (cpp_errno): New.
2404         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
2405         collect_args, enter_macro_context, save_parameter, parse_params,
2406         _cpp_create_definition, check_trad_stringification,
2407         cpp_macro_definition): Update.
2408         * cppmain.c (cpp_preprocess_file): Update.
2409         * fix-header.c (read_scan_file): Update.
2410
2411 2002-04-14  Andreas Schwab  <schwab@suse.de>
2412
2413         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
2414
2415 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
2416
2417         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
2418
2419 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2420
2421         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
2422         not gnu_hurd.
2423
2424 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
2425
2426         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
2427
2428 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2429
2430         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
2431         sparc-elf and sparc-rtems targets.
2432
2433 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
2434
2435         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
2436         defined, and __gnu_hurd__ wherever __GNU__ is defined.
2437         * arm/linux-elf.h: Likewise.
2438         * cris/aout.h: Likewise.
2439         * cris/linux.h: Likewise.
2440         * i370/linux.h: Likewise.
2441         * i386/gnu.h: Likewise.
2442         * i386/linux-aout.h: Likewise.
2443         * i386/linux-oldld.h: Likewise.
2444         * i386/linux.h: Likewise.
2445         * i386/linux64.h: Likewise.
2446         * ia64/linux.h: Likewise.
2447         * m68k/linux-aout.h: Likewise.
2448         * m68k/linux.h: Likewise.
2449         * mips/linux.h: Likewise.
2450         * pa/pa-linux.h: Likewise.
2451         * pj/linux.h: Likewise.
2452         * rs6000/sysv4.h: Likewise.
2453         * s390/linux.h: Likewise.
2454         * sh/linux.h: Likewise.
2455         * sparc/linux-aout.h: Likewise.
2456         * sparc/linux.h: Likewise.
2457         * sparc/linux64.h: Likewise.
2458         * xtensa/linux.h: Likewise.
2459
2460 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
2461
2462         * stmt.c (check_unique_operand_names): Expect operand names to
2463         be strings rather than identifiers.  Use simple_cst_equal to
2464         compare them.
2465         (resolve_operand_name_1): Make same identifier to string change here.
2466         * c-parse.in (asm_operand): Convert a named operand into a string.
2467         * cp/parse.y (asm_operand): Likewise.
2468
2469 2002-04-13  Andreas Schwab  <schwab@suse.de>
2470
2471         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
2472
2473 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
2474
2475         Revert these changes:
2476
2477         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2478
2479         PR c++/5571
2480         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2481
2482 2002-04-12  Richard Henderson  <rth@redhat.com>
2483
2484         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
2485         (sparc*-*-solaris): Clean up header files.
2486         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
2487         and plan on generating 64-bit code.
2488         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
2489         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
2490         * config/sparc/sol2-sld-64.h: Rename ...
2491         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
2492         for AS_SPARC64_FLAG not defined.
2493         * config/sparc/sol2-gld-bi.h: New.
2494         * config/sparc/sol2-sld.h: Remove.
2495         * config/sparc/sol26-sld.h: New.
2496         * config/sparc/sol2.h: Tidy comments.
2497         * doc/install.texi: Document sparc-solaris configury changes.
2498
2499 2002-04-12  Richard Henderson  <rth@redhat.com>
2500
2501         * recog.c (offsettable_address_p): Match the logic in adjust_address.
2502
2503         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
2504         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
2505
2506 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2507
2508         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
2509
2510 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
2511
2512         * pa.c (pa_can_combine_p): Call extract_insn before calling
2513         constrain_operands.
2514
2515 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
2516
2517         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
2518         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
2519         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
2520         (CPP_PREDEFINES): Handle __declspec.
2521         * config/i386/t-interix (USER_H): Remove.
2522
2523 2002-04-12  DJ Delorie  <dj@redhat.com>
2524
2525         * integrate.c (compare_blocks): Make comparisons safe for when
2526         sizeof(int) < sizeof(char *).
2527         (find_block): Likewise.
2528
2529 2002-04-12  Jan Hubicka  <jh@suse.cz>
2530             David Edelsohn  <edelsohn@gnu.org>
2531
2532         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
2533         registers.
2534         (symbol_ref_operand): New.
2535         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
2536         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
2537
2538 2002-04-12  Andreas Schwab  <schwab@suse.de>
2539
2540         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
2541         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
2542         overrides the definition in config/svr4.h.
2543
2544 2002-04-12      Eric Norum <eric.norum@usask.ca>
2545
2546         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
2547         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
2548         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
2549         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
2550         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
2551         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
2552         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
2553         definitions to config/rtems.h and make the targets more similar.
2554
2555 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2556
2557         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
2558         POINTERS_EXTEND_UNSIGNED.
2559         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
2560         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
2561
2562         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
2563         not specified.
2564
2565 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
2566
2567         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
2568         depends on TARGET_SHMEDIA, not TARGET_SH5.
2569
2570 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
2571
2572         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
2573         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
2574
2575 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
2576
2577         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
2578         no r0 clobber.
2579
2580 2002-04-12  Andreas Schwab  <schwab@suse.de>
2581
2582         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
2583
2584 2002-04-12  Richard Henderson  <rth@redhat.com>
2585
2586         PR bootstrap/4191
2587         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
2588
2589         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
2590         modes spanning multiple hard regs.
2591
2592         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
2593
2594 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2595
2596         * pa.c (pa_output_function_prologue): Don't accumulate the total
2597         number of code bytes when using TARGET_64BIT, or gas, SOM and not
2598         the portable runtime.
2599         (output_deferred_plabels): Handle 64bit plabels.
2600         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
2601         generating pic code using the GAS assembler for object formats that
2602         are not SOM (ie., ELF32 and ELF64).
2603         (output_millicode_call): Check attribute type if attribute length is 28.
2604         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
2605         dbr_sequence_length once.
2606         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
2607         dbr_sequence_length once.
2608         * pa.h (TARGET_SOM): Define if not defined.
2609         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
2610         with GAS and not SOM.
2611         (jump, call_internal_reg, call_value_internal_reg): Likewise.
2612         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
2613
2614 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2615
2616         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
2617         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
2618         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
2619         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
2620         elfos.h and dbxelf.h values are fine now.
2621         * config/i386/freebsd.h, config/alpha/freebsd.h
2622         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
2623
2624 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2625
2626         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
2627         or set Acpu or Amachine.  Reformat.
2628         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2629         define.
2630         (LINK_SPEC): Do not need to undef.
2631         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
2632         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
2633         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2634         define.
2635         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
2636         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
2637         (LINK_SPEC): Do not need to undef.
2638         (DONT_USE_BUILTIN_SETJMP): Do not define.
2639         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
2640         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
2641         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
2642         Remove trailing spaces.
2643         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
2644         __ELF__, or set Acpu or Amachine.  Reformat.
2645         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
2646         define.
2647
2648 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2649
2650         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
2651         all other *-*-freebsd* targets.
2652
2653 2002-04-11  Richard Henderson  <rth@redhat.com>
2654
2655         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
2656
2657 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
2658
2659         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
2660         Include {cpu}/{cpu}.h thru tm_file.
2661         (alpha*-*-linux*ecoff): Remove target.
2662         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
2663         (LINK_SPEC): Remove, is not OS independent.
2664         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
2665         (LINK_SPEC): Do not need to #undef any longer.
2666         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
2667         any longer.
2668         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
2669         __ELF__.
2670         (LINK_SPEC): Moved here from alpha/elf.h.
2671         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
2672         SUB_CPP_PREDEFINES.
2673         * config/alpha/linux-ecoff.h: Remove.
2674         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
2675         (CPP_SPEC): Define _POSIX_SOURCE as needed.
2676         (CPP_SUBTARGET_SPEC): Do not define.
2677         (LINK_SPEC): Do not need to #undef any longer.
2678         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
2679         * config/alpha/vms.h: Likewise.
2680
2681 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
2682
2683         * doc/extend.texi: Remove old claim that typedefs cannot have
2684         an alignment attribute.
2685
2686 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2687
2688         PR optimization/6177
2689         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
2690         bitpos is 0 and bitsize CONCAT size.
2691
2692 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
2693
2694         PR c/6223
2695         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
2696
2697 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
2698
2699         * config/alpha/freebsd.h: Minor reformatting.
2700         (CPP_SPEC): Define ELF and add cpp_subtarget.
2701         (ASM_SPEC): No longer needed.
2702
2703 2002-04-11  Richard Henderson  <rth@redhat.com>
2704
2705         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
2706         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
2707         (dimode mem/zero splitter): New.
2708
2709 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
2710
2711         * config/cris/cris.c (cris_override_options): Tweak error message
2712         for PIC not implemented.
2713
2714         * config/cris/cris.h: Tweak comments related to parameter-passing.
2715
2716         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
2717
2718 2002-04-10  Richard Henderson  <rth@redhat.com>
2719
2720         * except.c (add_ehl_entry): Allow duplicates after landing pad
2721         creation.
2722
2723 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
2724
2725         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
2726
2727 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
2728
2729         * c-decl.c (c_init_decl_processing): Move generation of
2730         decls for g77_integer_type_node and friends from here ...
2731         * c-common.c (c_common_nodes_and_builtins): ... to here.
2732
2733 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
2734
2735         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
2736         is only used as frame pointer when frame_pointer_needed is true.
2737
2738 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
2739
2740         PR target/817
2741         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
2742         for the fact that the pool entry uses two words.
2743         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
2744         1k bytes.
2745         (movdf_soft_insn): Similarly.
2746         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
2747         for the fact that the pool entry uses three words.
2748
2749 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
2750
2751         * config/mips/mips.c (mips_va_arg): When using the struct version
2752         of the EABI va_list, allow arguments in the register save area to
2753         take up less room than a stack argument.
2754
2755 2002-04-10  Richard Henderson  <rth@redhat.com>
2756
2757         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
2758         if EXPAND_INITIALIZER.
2759
2760 2002-04-09  Richard Henderson  <rth@redhat.com>
2761
2762         * config/alpha/alpha.md (movdi_er_maybe_g): New.
2763         * config/alpha/alpha.c (alpha_expand_mov): Use it.
2764
2765 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
2766
2767         PR optimization/6233
2768         * rtlanal.c (pure_call_p): New function.
2769         * rtl.h (pure_call_p): Declare.
2770         * loop.c (prescan_loop): Use it to set has_nonconst_call.
2771         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
2772
2773 2002-04-09  Eric Christopher  <echristo@redhat.com>
2774
2775         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
2776         information to .comm directive.
2777
2778 2002-04-09  Richard Henderson  <rth@redhat.com>
2779
2780         PR c/5078
2781         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
2782
2783 2002-04-09  Richard Henderson  <rth@redhat.com>
2784
2785         * basic-block.h (flow_delete_block_noexpunge): Declare.
2786         (expunge_block_nocompact): Declare.
2787         * cfg.c (expunge_block_nocompact): Split out from ...
2788         (expunge_block): ... here.
2789         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
2790         (flow_delete_block_noexpunge): Split out from ...
2791         (flow_delete_block): ... here.
2792         * cfgcleanup.c (delete_unreachable_blocks): Compact while
2793         removing dead blocks.
2794         * except.c (exception_handler_labels): Remove.
2795         (exception_handler_label_map): New.
2796         (struct eh_region): Add aka member.
2797         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
2798         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
2799         (for_each_eh_label, for_each_eh_label_1): New.
2800         (init_eh): Register exception_handler_label_map.
2801         (free_eh_status): Use free_region.
2802         (find_exception_handler_labels): Use the map, not the list.
2803         (remove_exception_handler_label): Likewise.
2804         (maybe_remove_eh_handler): Likewise.
2805         (remove_eh_handler): Use the region aka bitmap.
2806         * except.h (exception_handler_labels): Remove.
2807         (for_each_eh_label): Declare.
2808         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
2809         * loop.c (invalidate_loops_containing_label): New.
2810         (find_and_verify_loops): Use it.  Use for_each_eh_label.
2811         * sched-rgn.c (is_cfg_nonregular): Use
2812         current_function_has_exception_handlers.
2813
2814 2002-04-09  Richard Henderson  <rth@redhat.com>
2815
2816         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
2817         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
2818         Do not return changed status.
2819         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
2820         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
2821         New functions that do return changed status.
2822         * sbitmap.h: Update decls.
2823         * gcse.c, lcm.c: Use _cg functions as needed.
2824
2825 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
2826
2827         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
2828         (sh64-*-elf*, sh-*-rtemself*): Likewise.
2829         * config/sh/embed_bb.c: New file.
2830         * config/sh/embed-elf.h: New file.
2831         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
2832         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
2833         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2834         __PTRDIFF_TYPE__ .
2835         (SUBTARGET_CPP_PTR_SPEC): Don't define.
2836         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
2837         Add subtarget_asm_endian_spec.
2838         (ASM_SPEC): Use subtarget_asm_endian_spec.
2839         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
2840         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
2841         (WCHAR_UNSIGNED): Define.
2842         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
2843         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2844         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
2845         Fix value.
2846         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
2847         (sh_adjust_cost): Likewise.
2848         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
2849         __PTRDIFF_TYPE__ .
2850         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
2851         (WCHAR_TYPE_SIZE): Likewise.
2852         (ASM_SPEC): Use subtarget_asm_endian_spec.
2853         (SH_ELF_WCHAR_TYPE): #undef/ #define.
2854         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
2855         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
2856         (MAX_WCHAR_TYPE_SIZE): Don't #define .
2857         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
2858         (USER_LABEL_PREFIX): Don't #undef /#define .
2859         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
2860         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
2861         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
2862         (ASM_SPEC): Likewise.
2863         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
2864         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
2865         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
2866         (LIB2FUNCS_EXTRA): Define.
2867         * t-sh64 (LIB2FUNCS_EXTRA): Define.
2868         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
2869         (LIB1ASMFUNCS_CACHE): Define.
2870         (LIB2FUNCS_EXTRA): Redefine empty.
2871
2872 2002-04-08  Richard Henderson  <rth@redhat.com>
2873
2874         * reorg.c (get_branch_condition): Use reversed_comparison_code.
2875
2876 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2877
2878         * config/m68hc11/larith.asm (__map_data_section): Fix condition
2879         and optimize for size.
2880         (__do_global_ctors): Fix pointer comparison.
2881         (__do_global_dtors): Likewise.
2882
2883 2002-04-09  David S. Miller  <davem@redhat.com>
2884
2885         * config/sparc/sparc.c (sparc_extra_constraint_check): New
2886         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
2887         allow reloading pseudos.
2888         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
2889         * config/sparc/sparc-protos.h: Declare it.
2890
2891         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
2892         unsigned comparison warning.
2893         (output_restore_regs): Mark leaf_function as unused.
2894
2895 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2896
2897         * expr.c (is_aligning_offset): New function.
2898         (expand_expr, case COMPONENT_EXPR): Call it.
2899
2900 2002-04-08  David S. Miller  <davem@redhat.com>
2901
2902         PR target/6082
2903         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
2904
2905         Make init_priority work on Sparc when using GNU ld.
2906         * config/sparc/linux.h, config/sparc/linux64.h,
2907         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
2908         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
2909         * config/sparc/sol2-gld.h: New file to do the same.
2910         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
2911         sparc/sol2-gld.h to tm_file.
2912
2913         PR optimization/4328
2914         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
2915         * doc/md.texi: Document it.
2916         * config/sparc/sparc.md (movdi_insn_sp64_novis,
2917         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
2918         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
2919         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
2920         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
2921
2922 2002-04-08  Andreas Jaeger  <aj@suse.de>
2923
2924         * stmt.c (expand_asm_operands): Revert last patch from Richard
2925         Henderson.
2926
2927 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2928
2929         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
2930         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
2931
2932 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2933
2934         * doc/contrib.texi (Contributors): Add David O'Brien.
2935
2936 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
2937
2938         * configure.in (auto-build.h): Use target_alias and build_alias
2939         when running configure.
2940         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
2941         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
2942         * configure: Regenerate.
2943
2944 2002-04-07  David S. Miller  <davem@redhat.com>
2945
2946         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
2947
2948 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2949
2950         PR 5933
2951         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
2952         generating 32-bit pic code.
2953
2954 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
2955
2956         * cppinit.c (cpp_create_reader): Initialize
2957         discard_comments_in_macro_exp.
2958         (COMMAND_LINE_OPTIONS): Add "-CC" option.
2959         (cpp_handle_option): Handle "-CC" option.
2960         * cpplex.c (save_comment): If saving a C++ comment in
2961         a directive, convert it to a C comment.
2962         (_cpp_lex_direct): Pass second comment start character to
2963         save_comment to indicate comment type.
2964         * cpplib.c (_cpp_handle_directive): If processing
2965         a "#define" directive and discard_comments_in_macro_exp
2966         is false,  re-enable saving of comments.
2967         (lex_macro_node): If discard_comments_in_macro_exp is false,
2968         discard any comments before the macro identifier.
2969         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
2970         member.
2971         * cppmacro.c (cpp_get_token): If expanding a macro while
2972         processing a directive, discard any comments we might encounter.
2973         (parse_params): If discard_comments_in_macro_exp is false,
2974         ignore comments in the macro parameter list.
2975         * gcc.c (cpp_unique_options): Add "-CC" option.
2976         (option_map): Map "--comments-in-macros" to "-CC".
2977         * doc/cppopts.texi: Document "-CC" option.
2978         * f/lang-specs.h: Add "-CC" option.
2979         * testsuite/gcc.dg/cpp/maccom1.c: New test.
2980         * testsuite/gcc.dg/cpp/maccom2.c: New test.
2981         * testsuite/gcc.dg/cpp/maccom3.c: New test.
2982         * testsuite/gcc.dg/cpp/maccom4.c: New test.
2983         * testsuite/gcc.dg/cpp/maccom5.c: New test.
2984         * testsuite/gcc.dg/cpp/maccom6.c: New test.
2985
2986 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2987
2988         PR middle-end/6180
2989         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
2990
2991 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
2992
2993         PR c++/5571
2994         * stor-layout.c (layout_decl): Reset the RTL for the decl.
2995
2996         PR opt/5120
2997         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
2998         RTX_UNCHANGING_P for the functions arguments when a tail call
2999         is made.
3000
3001 2002-04-06  Jason Merrill  <jason@redhat.com>
3002
3003         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
3004         (parse_options_and_default_flags): Set them appropriately.
3005         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
3006
3007 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
3008
3009         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
3010         here.
3011
3012         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
3013         semicolon.
3014
3015         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
3016         types come in by-reference.  Fix typo in comment.
3017
3018 2002-04-05  David S. Miller  <davem@redhat.com>
3019
3020         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
3021         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
3022         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
3023         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
3024
3025 2002-04-05  David S. Miller  <davem@redhat.com>
3026
3027         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
3028         are not going to emit return instructions, emit at least a nop
3029         for the sake of sane backtraces.
3030
3031 2002-04-05  Richard Henderson  <rth@redhat.com>
3032
3033         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
3034
3035 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
3036
3037         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
3038
3039 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
3040
3041         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
3042         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
3043         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
3044
3045 2002-04-05  Andreas Schwab  <schwab@suse.de>
3046
3047         * c-convert.c: Include c-common.h.
3048         * Makefile.in (c-convert.o): Updated.
3049
3050 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
3051
3052         * mklibgcc.in: Use separate libgcc.map for each multilib.
3053         * Makefile.in (distclean): Don't remove libgcc.map here.
3054
3055 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
3056
3057         * Makefile.in (s-mlib): Handle --disable-multilib by separate
3058         genmultilib invocation.
3059
3060 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
3061
3062         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
3063         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
3064         to num_gprs for symmetry.
3065         * config/mips/mips.c: Adjust accordingly.
3066
3067 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3068
3069         * c-common.c (truthvalue_conversion): Rename, update.
3070         * c-common.h (c_common_truthvalue_conversion): New.
3071         * c-convert.c (convert): Update.
3072         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
3073         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
3074         * c-typeck.c (build_binary_op, build_unary_op,
3075         build_conditional_expr): Update.
3076         * fold-const.c (constant_boolean_node, fold): Use langhook.
3077         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
3078         * langhooks.h (struct lang_hooks): New hook.
3079         * stmt.c (expand_decl_cleanup): Use langhook.
3080         * tree.h (truthvalue_conversion): Remove.
3081 objc:
3082         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
3083
3084 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
3085
3086         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
3087         Add rules to make null object file.
3088
3089 2002-04-04  Jim Blandy  <jimb@redhat.com>
3090
3091         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
3092         macro formal parameter names.
3093
3094 2002-04-04  David S. Miller  <davem@redhat.com>
3095
3096         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
3097
3098 2002-04-04  Richard Henderson  <rth@redhat.com>
3099
3100         PR middle-end/5099
3101         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
3102         Support copies into and out of memory.  Don't accept allows_reg
3103         and allows_mem as gospel.
3104
3105 2002-04-04  Richard Henderson  <rth@redhat.com>
3106
3107         PR opt/6165
3108         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
3109         (write_dependence_p): Likewise.
3110
3111 2002-04-04  Richard Henderson  <rth@redhat.com>
3112
3113         * predict.c (estimate_bb_frequencies): Do frequency calculation
3114         with a volatile temporary.
3115
3116 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
3117
3118         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
3119
3120 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3121
3122         PR c++/6119
3123         * final.c (final_start_function): Don't bump profile_label_no here...
3124         (final_end_function): ...but here.
3125
3126 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3127
3128         * config/sparc/sparc.md (pic): New attribute.
3129         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
3130         into stack slots.
3131         (split after do_builtin_setjmp_setup): New.
3132
3133 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3134
3135         PR fortran/6106
3136         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
3137         change.
3138
3139 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
3140
3141         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
3142         UNITS_PER_WORD for zero sized aggregates.
3143
3144 2002-04-03  David S. Miller  <davem@redhat.com>
3145
3146         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
3147         one-character spec for this, just use %(link_gcc_c_sequence).
3148
3149 2002-04-03  David S. Miller  <davem@redhat.com>
3150
3151         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
3152         handling.
3153
3154 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3155
3156         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
3157         (DWARF_FRAME_RETURN_COLUMN): Move.
3158         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3159         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
3160         * pa.c (except.h, predict.h): Include.
3161         (FRP): Delete.
3162         (store_reg_modify, set_reg_plus_d): Revise prototypes.
3163         (output_ascii): Add cast.
3164         (store_reg_modify): Revise to add frame notes.
3165         (set_reg_plus_d): Likewise.
3166         (compute_frame_size): Include space for eh data registers in frame if
3167         the current function calls eh_return.
3168         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
3169         function calls eh_return.  Save eh data registers if the current
3170         function calls eh_return.  Fix code to add frame notes.  Emit
3171         blockage to prevent insns with frame notes being scheduled in the
3172         delay slot of calls.
3173         (hppa_expand_epilogue): Restore eh data registers and do final stack
3174         adjustment if the current function calls eh_return.  Don't add frame
3175         notes.
3176         (output_call): Revise for change in length of call insn.  Don't do
3177         return pointer adjustment for an unconditional jump in the delay slot
3178         of a call when using frame notes.
3179         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
3180         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
3181         (ARG_POINTER_CFA_OFFSET): Define.
3182         * pa.md (return_external_pic): New pattern.
3183         (prologue): Correct formatting.  Use return_external_pic if current
3184         function calls eh_return.
3185         (call_internal_symref, call_value_internal_symref,
3186         sibcall_internal_symref, sibcall_value_internal_symref): Change default
3187         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
3188         respectively.
3189         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
3190
3191         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
3192         list of targets to check using "nop" insn.
3193         * configure: Rebuilt.
3194
3195 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
3196
3197         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
3198
3199 2002-04-03  David S. Miller  <davem@redhat.com>
3200
3201         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
3202         library sequence passed to the linker.
3203         (LINK_COMMAND_SPEC): Use it.
3204         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
3205         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
3206         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
3207
3208 2002-04-03  Jason Merrill  <jason@redhat.com>
3209
3210         * except.c (struct eh_status): Remove protect_list.
3211         (begin_protect_partials, end_protect_partials): Remove.
3212         (add_partial_entry): Remove.
3213         * except.h: Remove prototypes.
3214
3215         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
3216         expand_decl_cleanup_eh.
3217
3218         PR c++/5636
3219         * tree.h (CLEANUP_EH_ONLY): New macro.
3220         * stmt.c (expand_decl_cleanup_eh): New fn.
3221         (expand_cleanups): Check CLEANUP_EH_ONLY.
3222         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
3223         Use expand_decl_cleanup_eh.
3224         (expand_stmt): Adjust.
3225         * c-common.h: Adjust prototype.
3226
3227 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
3228
3229         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
3230         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
3231         (cris_target_asm_function_epilogue): Ditto.
3232         (cris_initial_frame_pointer_offset): Ditto.
3233         (cris_simple_epilogue): Ditto.
3234         (cris_expand_builtin_va_arg): Variable-size types come in
3235         by-reference.
3236
3237 2002-04-03  David S. Miller  <davem@redhat.com>
3238
3239         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
3240         little-endian.
3241         (set_fast_math): Correct 'fsr' type.
3242
3243 2002-04-03  Richard Henderson  <rth@redhat.com>
3244
3245         PR opt/3569
3246         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
3247         * toplev.c (check_global_declarations): Use it.
3248         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
3249         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3250         (LANG_HOOKS_DECLS): Add it.
3251         * langhooks.c (lhd_warn_unused_global_decl): New.
3252         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3253         * c-objc-common.c (c_warn_unused_global_decl): New.
3254         * c-tree.h (c_warn_unused_global_decl): Declare.
3255         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3256
3257 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
3258
3259         * langhooks-def.h (lhd_set_decl_assembler_name,
3260         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3261         (LANG_HOOKS_INITIALIZER): Update.
3262         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
3263         * langhooks.h (struct lang_hooks): New hook.
3264         * tree.c (set_decl_assembler_name): Move to langhooks.c.
3265         (lang_set_decl_assembler_name): Remove.
3266         (init_obstacks): Don't set hook.
3267         (decl_assembler_name): New function.
3268         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
3269         (decl_assembler_name): New.
3270         (lang_set_decl_assembler_name): Remove.
3271
3272 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
3273
3274         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
3275         works properly with .hidden symbols.
3276         * configure: Rebuilt.
3277         * config.in: Rebuilt.
3278         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
3279         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
3280         properly with .hidden symbols.
3281
3282 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
3283
3284         PR middle-end/6102
3285         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
3286         USE argument.
3287
3288 2002-04-03  Richard Henderson  <rth@redhat.com>
3289
3290         PR opt/4120
3291         * sched-rgn.c (sets_likely_spilled): New.
3292         (sets_likely_spilled_1): New.
3293         (add_branch_dependences): Use it.
3294
3295 2002-04-02  Richard Henderson  <rth@redhat.com>
3296
3297         PR opt/4311
3298         * loop.h (LOOP_FIRST_PASS): New.
3299         * loop.c (strength_reduce): Mind it when deciding to unroll.
3300         * toplev.c (rest_of_compilation): Set it.
3301
3302 2002-04-02  David S. Miller  <davem@redhat.com>
3303
3304         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
3305         mems_ok_for_ldd_peep when the order of the loads being examined
3306         is reversed.
3307         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
3308         existing comment to increase comprehension of this situation.
3309
3310 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
3311
3312         * config/sh/sh.md: Don't use union real_extract.
3313
3314 2002-04-02  Richard Henderson  <rth@redhat.com>
3315
3316         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
3317
3318 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3319
3320         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
3321         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
3322         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
3323         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
3324         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
3325         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
3326         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
3327         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
3328         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
3329         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
3330         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
3331         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
3332         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
3333         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
3334         Include as many configury headers via tm_file as possible.  This
3335         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
3336         * config/openbsd-oldgas.h: New file.
3337         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
3338         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
3339         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
3340         config/i386/i386-coff.h, config/i386/i386-interix.h,
3341         config/i386/iscdbx.h, config/i386/linux-aout.h,
3342         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
3343         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
3344         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
3345         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
3346         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
3347         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
3348         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
3349         config/i386/vxi386.h: Do not directly include configury headers.
3350         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
3351         Directly include configury headers that are no longer automatically
3352         included by the above headers.
3353         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
3354         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
3355         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
3356         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
3357         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
3358         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
3359         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
3360         (TARGET_VERSION): Define.
3361         * config/i386/beos-elf.h, config/i386/freebsd.h,
3362         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
3363         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
3364         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
3365         config/i386/sco5.h, config/i386/sysv4.h
3366         (TARGET_VERSION): Do not need to protect.
3367         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
3368         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
3369         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
3370         config/i386/i386-interix.h, config/i386/linux-aout.h,
3371         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
3372         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
3373         (YES_UNDERSCORES): Do not define - not needed.
3374         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
3375         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3376         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
3377         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
3378         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
3379         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
3380         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
3381         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
3382
3383 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
3384             Richard Henderson  <rth@redhat.com>
3385
3386         PR c/5484
3387         * function.c (assign_temp): Accept either type or decl argument.
3388         Detect variables whose size is too large to fit into an integer.
3389         * stmt.c (expand_decl): Pass the decl, not the type.
3390
3391 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
3392
3393         * protoize.c: Match include directory usage with cppdefault.c.
3394
3395 2002-04-03  Jeffrey A Law  (law@redhat.com)
3396             Hans-Peter Nilsson  <hp@bitrange.com>
3397
3398         * combine.c (simplify_comparison): Avoid narrowing a comparison
3399         with a paradoxical subreg when doing so would drop signficant bits.
3400
3401 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
3402
3403         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
3404         if POINTERS_EXTEND_UNSIGNED is defined.
3405
3406 2002-04-02  Richard Henderson  <rth@redhat.com>
3407
3408         PR opt/3967
3409         * local-alloc.c (contains_replace_regs): LO_SUM may contain
3410         replace regs.
3411
3412 2002-04-02  Richard Henderson  <rth@redhat.com>
3413
3414         * doc/standards.texi: Document required freestanding libc entry points.
3415
3416 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
3417
3418         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
3419         associated splitter.  Remove MQ constraint.
3420         (ctrdi_internal4): Correct CCmode clobber.
3421
3422 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3423
3424         * milli64.S ($$dyncall): New function.
3425         * t-linux (LIB1ASMFUNCS): Revise module list.
3426         (LIB1ASMSRC): Use pa/milli64.S.
3427
3428 2002-04-02  Richard Henderson  <rth@redhat.com>
3429
3430         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
3431         rename solaris_sys_varargs_h.
3432
3433 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3434
3435         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
3436         the same mode as its component.
3437
3438 2002-04-02  Richard Henderson  <rth@redhat.com>
3439
3440         PR opt/190
3441         * final.c (this_is_asm_operands): Export.
3442         * output.h (this_is_asm_operands): Declare.
3443         * config/i386/i386.c (print_operand): Error odd asm operands.
3444
3445 2002-04-02  Richard Henderson  <rth@redhat.com>
3446
3447         PR opt/420
3448         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
3449
3450 2002-04-01  Richard Henderson  <rth@redhat.com>
3451
3452         PR target/1538
3453         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
3454         * fixinc/fixincl.x: Rebuild.
3455
3456 2002-04-01  Richard Henderson  <rth@redhat.com>
3457
3458         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
3459         (atomic_alloc, atomic_free): New.
3460         (SIZE, MASK_FOR, PTR_IN): New.
3461         (emergency_reg_state, emergency_reg_state_free): New.
3462         (emergency_labeled_state, emergency_labeled_state_free): New.
3463         (reg_state_alloced, labeled_state_alloced): New.
3464         (alloc_reg_state, free_reg_state): New.
3465         (alloc_label_state, free_label_state, free_label_states): New.
3466         (push, pop, dup_state_stack, free_state_stack): Use them.
3467         (desc_label_state): Likewise.
3468         (uw_frame_state_for): Free label states and state stack.
3469         (uw_update_reg_address): Eliminate warnings.
3470
3471 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
3472
3473         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
3474         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
3475
3476 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3477
3478         * c-decl.c (grokdeclarator): Update.
3479         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3480         * c-tree.h (c_mark_addressable): New.
3481         * c-typeck.c (default_function_array_conversion, build_unary_op,
3482         build_array_ref, convert_for_assignment): Update.
3483         (mark_addressable): Rename.
3484         * calls.c (try_to_integrate, expand_call): Use langhook.
3485         * expr.c (expand_expr): Use langhook.
3486         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
3487         * langhooks.h (struct lang_hooks): New hook.
3488         * stmt.c (expand_asm_operands): Use langhook.
3489         * tree.h (mark_addressable): Remove.
3490 objc:
3491         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3492
3493 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3494
3495         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
3496         in previous change.
3497
3498 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
3499
3500         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
3501         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
3502
3503 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3504
3505         * c-common.c (unsigned_conversion_warning, convert_and_check,
3506         unsigned_type, signed_type, shorten_compare,
3507         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
3508         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
3509         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
3510         New.
3511         * c-decl.c (grokdeclarator): Update.
3512         * c-format.c (check_format_types): Update.
3513         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3514         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3515         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
3516         * convert.c (convert_to_integer): Use new hooks.
3517         * expmed.c (make_tree): Use new hooks.
3518         * expr.c (store_expr): Use new hooks.
3519         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
3520         all_ones_mask_p, unextend, fold): Use new hooks.
3521         * langhooks.h (struct lang_hooks_for_types): New hooks.
3522         * tree.h (signed_or_unsigned_type, signed_type,
3523         unsigned_type): Remove.
3524 objc:
3525         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3526         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3527
3528 2002-03-31  Richard Henderson  <rth@redhat.com>
3529
3530         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
3531         (desc_frgr_mem): Fix reference to f16-f31.
3532
3533 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3534
3535         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3536         RTVEC_ELT): Const-ify.
3537         * varray.h (VARRAY_CHECK): Const-ify.
3538         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
3539         ggc_mark_rtvec, ggc_mark): Const-ify.
3540
3541 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
3542
3543         * diagnostic.c: Include langhooks-def.h.
3544         * Makefile.in (diagnostic.o): Update.
3545
3546 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3547
3548         * c-common.c (c_unsafe_for_reeval): Rename.
3549         * c-common.h (c_unsafe_for_reeval): Rename.
3550         * c-decl.c (finish_incomplete_decl): Rename.
3551         (c_init_decl_processing): Don't set langhook.
3552         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3553         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3554         * c-objc-common.c (c_objc_common_init): Don't set langhook.
3555         * c-tree.h (finish_incomplete_decl): Rename.
3556         * langhooks-def.h (lhd_unsafe_for_reeval): New.
3557         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
3558         (LANG_HOOKS_INITIALIZER): Update.
3559         * langhooks.c (lhd_unsafe_For_reeval): New.
3560         * langhooks.h (struct langhooks): New hooks.
3561         * toplev.c (incomplete_decl_finalize_hook): Remove.
3562         (wrapup_global_declarations): Update.
3563         * tree.c (lang_unsafe_for_reeval): Remove.
3564         (unsafe_for_reeval): Update.
3565         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
3566         Remove.
3567 objc:
3568         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
3569         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3570
3571 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
3572
3573         * diagnostic.c (print_error_function): Remove.
3574         (default_print_error_function): Rename.
3575         (report_error_function): Update.
3576         * diagnostic.h (print_error_function): Remove.
3577         (default_print_error_function): Remove.
3578         * langhooks-def.h (struct diagnostic_context): Predeclare.
3579         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
3580         (LANG_HOOKS_INITIALIZER): Update.
3581         * langhooks.h (struct diagnostic context): Predeclare.
3582         (struct lang_hooks): New hook.
3583
3584 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3585
3586         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
3587         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
3588         !flag_pic.
3589         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
3590         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
3591         of PIC_OFFSET_TABLE_REGNUM thruout.
3592         * config/rs6000/rs6000.md: Likewise.
3593         * config/rs6000/darwin.h: Likewise.
3594
3595 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3596
3597         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
3598         unsigned HOST_WIDE_INT, not unsigned int.
3599
3600 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3601
3602         PR middle-end/6096, middle-end/6098, middle-end/6099
3603         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
3604         CODE_LABELs.
3605         (fill_slots_from_thread): Likewise.
3606
3607 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3608
3609         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
3610         floating fields in float regs.
3611         (function_arg_record_value_2): Likewise.
3612
3613 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3614
3615         * config/mmix/mmix.md (define_constants): Remove misleading
3616         FIXME.  Add MMIX_fp_rO_OFFSET.
3617         ("nonlocal_goto_receiver"): Don't have stack-frame address of
3618         saved rO as part of the pattern.  Remove FIXME.
3619         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
3620         here, at output-time.
3621
3622 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
3623
3624         PR middle-end/6100
3625         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
3626         REG_BR_PRED.
3627         (output_v9branch): Likewise.
3628
3629 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3630
3631         * gcc.c: Revert previous patch for now.
3632         * config/i386/djgpp.h: Likewise.
3633
3634 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
3635
3636         * config/mmix/crti.asm (_init): Register _fini with atexit.
3637         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
3638
3639 2002-03-31  Richard Henderson  <rth@redhat.com>
3640
3641         PR target/3997
3642         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
3643         (ASM_OUTPUT_DEF_FROM_DECLS): New.
3644
3645 2002-03-31  Richard Henderson  <rth@redhat.com>
3646
3647         * libgcc2.c (__bb_exit_func): Make static.
3648
3649         * config/alpha/alpha.md (trap): New.
3650
3651 2002-03-31  Richard Henderson  <rth@redhat.com>
3652
3653         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
3654         promoted argument types; build trap.
3655         (expand_builtin_trap): New.
3656         (expand_builtin): Use it.
3657         * stmt.c (expand_nl_goto_receivers): Likewise.
3658         * expr.h (expand_builtin_trap): Declare.
3659         * libfuncs.h (LTI_abort, abort_libfunc): New.
3660         * optabs.c (init_optabs): Init abort_libfunc.
3661
3662 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
3663
3664         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
3665         (LINK_COMMAND_SPEC): ... from here.
3666         (init_gcc_specs): Duplicate it here too, omitting
3667         shared_name in the second copy.
3668         (init_spec): Test for duplicate
3669         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
3670
3671 2002-03-30  David S. Miller  <davem@redhat.com>
3672
3673         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3674         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
3675
3676 2002-03-30  Roger Sayle <roger@eyesopen.com>
3677             Richard Henderson  <rth@redhat.com>
3678
3679         * regmove.c (combine_stack_adjustments_for_block): Avoid
3680         emitting a stack adjustment of zero bytes.  Let delete_insn
3681         update bb->head.
3682
3683 2002-03-30  Richard Henderson  <rth@redhat.com>
3684
3685         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
3686         (sparc_emitting_epilogue): New.
3687         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
3688         * config/sparc/sparc-protos.h: Update.
3689         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
3690         (TARGET_SWITCHES): Update.
3691         * config/sparc/sparc.md (return): Remove.
3692         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
3693         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
3694         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
3695         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
3696         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
3697         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
3698         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
3699         Remove MASK_EPILOGUE.
3700         * doc/invoke.texi: Update.
3701
3702 2002-03-30  Daniel Berlin  <dan@dberlin.org>
3703
3704         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
3705         CPP will start the file for us.
3706
3707 2002-03-30  Richard Henderson  <rth@redhat.com>
3708
3709         PR target/5446
3710         * config/ia64/ia64.c (group_barrier_needed_p): Special case
3711         prologue_allocate_stack.
3712         (ia64_single_set): Use insn codes for recognition of special
3713         cases, not rtl matching.
3714         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
3715
3716 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
3717
3718         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
3719
3720 2002-03-30  Richard Henderson  <rth@redhat.com>
3721
3722         PR target/6032
3723         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
3724         or -fomit-frame-pointer with profiling.
3725         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3726         (FUNCTION_PROFILER): Do nothing.
3727         (PROFILE_HOOK): New.
3728         * config/sparc/sparc.c (sparc_override_options): Don't check
3729         code models for profiling.
3730         (sparc_function_profiler): Remove.
3731         (sparc_profile_hook): New.
3732         * config/sparc/sparc-protos.h: Update.
3733
3734 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
3735
3736         PR optimization/6086
3737         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
3738         of SUBREG of volatile MEM or because the MEM was mode dependent,
3739         return CLOBBER instead of unmodified SUBREG.
3740
3741 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
3742
3743         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
3744         when not optimizing.
3745
3746         * toplev.c (rest_of_compilation): Cann mark_constant_function
3747         only when optimizing.
3748
3749         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
3750         are NULL.
3751
3752         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
3753         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
3754         (try_optimize_cfg): clear all AUX fields.
3755
3756         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
3757         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
3758         (ix86_address_cost): Be prepared for SUBREGed registers.
3759         (legitimate_address_p): Accept SUBREGed registers.
3760
3761 2002-03-29  Richard Henderson  <rth@redhat.com>
3762
3763         PR target/5672
3764         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
3765
3766 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3767
3768         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
3769         for aggregate and TFmode types.
3770
3771 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3772
3773         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
3774
3775 2002-03-29  Richard Henderson  <rth@redhat.com>
3776
3777         PR target/5886
3778         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
3779         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
3780
3781 2002-03-29  Richard Henderson  <rth@redhat.com>
3782
3783         PR target/6041
3784         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
3785         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
3786         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
3787         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
3788         conditional.
3789         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
3790
3791 2002-03-29  Dale Johannesen <dalej@apple.com>
3792
3793         * loop.c (combine_movables): Do allow combination of pseudos.
3794
3795 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
3796
3797         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
3798         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
3799         No functional change except ...
3800         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
3801         * doc/install.texi (*-*-freebsd*): Document port configuration.
3802
3803 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3804
3805         * Makefile.in (convert.o, calls.o, expmed.o): Update.
3806         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
3807         Use new hooks.
3808         * builtin-types.def (BT_PTRMODE): Update.
3809         * c-common.c (type_for_size): Rename c_common_type_for_size.
3810         (type_for_mode): Similarly.
3811         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
3812         Use new hook.
3813         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
3814         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
3815         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
3816         Redefine.
3817         * c-typeck.c (common_type, comptypes, default_conversion):
3818         Use new hooks.
3819         * calls.c: Include langhooks.h.
3820         (emit_library_call_value_1): Use new hooks.  Avoid redundant
3821         calls.
3822         * convert.c: Include langhooks.h
3823         (convert_to_pointer, convert_to_integer): Use new hooks.
3824         * except.c (init_eh): Similarly.
3825         * expmed.c: Include langhooks.h.
3826         (expand_mult_add): Use new hooks.
3827         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
3828         try_casesi): Similarly.
3829         * fold-const.c (optimize_bit_field_compare, make_range,
3830         decode_field_reference, fold_truthop, fold): Similarly.
3831         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
3832         put_var_into_stack): Similarly.
3833         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
3834         LANG_HOOKS_TYPE_FOR_SIZE): New.
3835         (LANG_HOOKS_TYPES_INITIALIZER): Update.
3836         * langhooks.h (lang_hooks_for_types): New hooks.
3837         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
3838         * tree.c (get_unwidened, get_narrower): Similarly.
3839         * tree.h (type_for_mode, type_for_size): Remove.
3840         * varasm.c (force_const_mem): Use new hooks.
3841         * utils2.c (nonbinary_modular_operation): Update.
3842 objc:
3843         * objc-act.c (handle_impent): Update.
3844         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
3845         Redefine.
3846
3847 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
3848
3849         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
3850         * config/ia64/ia64.c (basereg_operand): New.
3851         * config/ia64/ia64-protos.h (basereg_operand): Declare.
3852         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
3853
3854 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
3855
3856         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
3857         unwind information when frame_pointer_needed.
3858         (mmix_assemble_integer): Tweak wording in comment.
3859
3860 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
3861
3862         * Makefile.in (except.o): Update.
3863         * except.c: Include langhooks.h.
3864         (init_eh): Use langhook.
3865         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
3866         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
3867         (LANG_HOOKS_INITIALIZER): Update.
3868         * langhooks.h (lang_hooks_for_types): New.
3869         (struct lang_hooks): Add it.
3870         * tree.c (make_lang_type_fn, make_lang_type): Remove.
3871         * tree.h (make_lang_type_fn, make_lang_type): Remove.
3872 config:
3873         * alpha/alpha.c: Include langhooks.h.
3874         (alpha_build_va_list): Use langhook.
3875         * d30v/d30v.c: Include langhooks.h.
3876         (d30v_build_va_list): Use langhook.
3877         * i386/i386.c: Include langhooks.h.
3878         (ix86_build_va_list): Use langhook.
3879         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
3880         * s390/s390.c: Include langhooks.h.
3881         (s390_build_va_list): Use langhook.
3882         * stormy16/stormy16.c: Include langhooks.h.
3883         (stormy16_build_va_list): Use langhook.
3884
3885 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3886
3887         PR c++/5964
3888         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
3889         attributes.
3890         (length): Compute variable length for branches/calls/jumps here.
3891         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
3892         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
3893         define branch_type attribute.
3894         (divsi3_sp32): Maximum length is 6 not 7.
3895         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
3896         call_address_untyped_struct_value_sp32,
3897         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
3898         * config/sparc/sparc.c (empty_delay_slot): New function.
3899         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
3900         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
3901
3902 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
3903
3904         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
3905         nonzero_bits if not needed.
3906         (nonzero_bits) [XOR]: Likewise.
3907         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
3908         reg_last_set_mode and mode are both MODE_INT, but not equal.
3909         (record_value_for_reg): Compute reg_last_set_nonzero_bits
3910         in nonzero_bits_mode for MODE_INT modes.
3911
3912 2002-03-28  Richard Henderson  <rth@redhat.com>
3913
3914         PR target/5715
3915         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
3916         to GAS.  Correct drift between alternatives.
3917
3918 2002-03-28  Richard Henderson  <rth@redhat.com>
3919
3920         PR target/6087
3921         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
3922
3923 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
3924
3925         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
3926         emulation to the linker.
3927
3928 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
3929
3930         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
3931         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
3932
3933 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
3934
3935         * combine.c (simplify_and_const_int): Make sure to apply mask
3936         when force_to_mode returns a constant integer.  PR3311.
3937
3938 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3939
3940         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
3941
3942 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3943
3944         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
3945         and Objective-C Dialect Options.
3946
3947 2002-03-28  Richard Henderson  <rth@redhat.com>
3948
3949         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
3950         comparison should be done vs !=0 not >0 return code.  Tidy cases.
3951
3952 2002-03-28  Richard Henderson  <rth@redhat.com>
3953
3954         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
3955         on to c_expand_body.
3956         * c-tree.h (finish_function): Update decl.
3957         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
3958
3959 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
3960
3961         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
3962
3963 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
3964
3965         * rtlanal.c: Include flags.h
3966         (may_trap_p): Do not mark FP operations if trapping
3967         if !flag_trapping_math
3968         * Makefile.in (rtlanal.o): Add dependency on flag.h
3969         * ifcvt.c (noce_operand_ok): Avoid the lameness.
3970
3971 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
3972
3973         * mips.md: Use dconst1, not 1.0, as first argument of
3974         REAL_VALUE_LDEXP.  Don't use union real_extract.
3975
3976 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
3977
3978         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
3979         rather than $target.  Heed program_prefix and
3980         program_transform_name.  Search for gas in cross-compiler case too.
3981         "test -x" rather than "test -f".
3982         (gcc_cv_ld): Likewise.
3983         (gcc_cv_nm): Heed program_prefix and program_transform_name.
3984         (gcc_cv_objdump): Likewise.
3985         * configure: Regenerate.
3986
3987 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
3988
3989         * Makefile.in (attribs.o): Update.
3990         * attribs.c: Include langhooks.h.
3991         (decl_attributes): Use langhook.
3992         * c-decl.c (insert_default_attributes): Rename.
3993         * c-tree.h (c_insert_default_attributes): New.
3994         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
3995         (LANG_HOOKS_INITIALIZER): Update.
3996         * langhooks.h (struct lang_hooks): New hook.
3997         * tree.h (insert_default_attributes): Remove.
3998 objc:
3999         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
4000
4001 2002-03-27  Andreas Schwab  <schwab@suse.de>
4002
4003         * config/i386/i386.c (classify_argument): Also check for
4004         QUAL_UNION_TYPE.
4005
4006 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4007
4008         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
4009         any more.
4010
4011 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4012
4013         * i960.md (ret): Set PC.
4014         (nonlocal_goto): Fix expander.
4015         * builtins.c (epxand_builin_longjmp): Check that we've emitted
4016         some jump or call.
4017
4018 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
4019
4020         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
4021         of libcall regions.
4022
4023 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4024
4025         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
4026         assigning to BLOCK_FOR_INSN directly.
4027
4028 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
4029
4030         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
4031
4032 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4033
4034         * c-common.c (c_expand_expr): Fix prototype.
4035         * c-common.h (c_expand_expr): Always declare, update.
4036         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
4037         * c-objc-common.c (c_objc_common_init): No global hook.
4038         * expr.c (expand_expr): Use langhook.
4039         * expr.h (enum expand_modifier): Conditionally declare.
4040         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
4041         (LANG_HOOKS_INITIALIZER): Update.
4042         * langhooks.c (lhd_expand_expr): New.
4043         * langhooks.h (struct lang_hooks): New hook.
4044         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
4045         (lang_independent_init): Don't default hook.
4046 objc:
4047         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
4048
4049 2002-03-27  Richard Henderson  <rth@redhat.com>
4050
4051         PR target/6054
4052         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
4053         TARGET_CONST_GP.  Simplify conditions.
4054
4055 2002-03-27  Richard Henderson  <rth@redhat.com>
4056
4057         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
4058         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
4059         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
4060
4061 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
4062
4063         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
4064         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
4065         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
4066         Remove unnecessary masks.
4067         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
4068         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
4069         -mwindows, -mdll switches and their negations.
4070
4071 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4072
4073         * gcc-common.c (lang_mark_false_label_stack): Remove.
4074         * ggc.h (lang_mark_false_label_stack): Similarly.
4075
4076 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
4077
4078         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
4079
4080         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
4081         or __rtems_ is defined.
4082
4083 2002-03-26  Richard Henderson  <rth@redhat.com>
4084
4085         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
4086         if a non-trivial load was emitted.
4087         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
4088         in high+extra+low case.
4089
4090 2002-03-26  Richard Henderson  <rth@redhat.com>
4091
4092         * config.gcc (sparc*-solaris): Use float_format=sparc.
4093
4094 2002-03-26  Richard Henderson  <rth@redhat.com>
4095
4096         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
4097         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
4098         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
4099         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
4100         (WINT_TYPE_SIZE): Fix at 32.
4101
4102 2002-03-26  Richard Henderson  <rth@redhat.com>
4103
4104         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
4105         until after eh landing pad generation.
4106         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
4107         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
4108
4109 2002-03-26  Richard Henderson  <rth@redhat.com>
4110
4111         * expr.h (ADD_PARM_SIZE): One more convert for INC.
4112
4113 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
4114
4115         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
4116         and warning switches.
4117         (cc1_options):  Likewise.
4118
4119 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
4120
4121         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
4122         Restore more of the signal context.  Set no_reg_stack_frame.
4123         * config/ia64/unwind-ia64.c (unw_state_record):
4124         Add no_reg_stack_frame, comments.
4125         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
4126         (uw_update_context): Adjust bsp when unwinding from leaf,
4127         but not signal frame.
4128
4129 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
4130
4131         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
4132
4133 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
4134
4135         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
4136
4137 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
4138
4139         PR target/5621
4140         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
4141         "Add a pool_range attribute", which was lost during the ARM/Thumb
4142         merge.
4143
4144 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
4145
4146         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
4147         a register into the MAC16 accumulator.
4148
4149 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
4150
4151         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
4152         (Warning Options): Document -Wswitch-enum.
4153         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
4154         -Wswitch.
4155         (warn_switch_enum): Define variables.
4156         * flags.h (warn_switch_enum): Declare variables.
4157         * stmt.c (expand_end_case_type): When warn_switch_enum /
4158         -Wswitch-enum, perform switch checks.
4159         Fix PR c/5044.
4160
4161 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
4162
4163         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
4164         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
4165         (reload_muladdsi_compare0_scratch): Delete.
4166
4167 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
4168
4169         * doc/install.texi (*-*-freebsd*): Update.
4170
4171 2002-03-26  Richard Henderson  <rth@redhat.com>
4172
4173         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
4174         (SUB_PARM_SIZE): Cast DEC to ssizetype.
4175
4176         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
4177         types from the normal argument frame.
4178
4179         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
4180         variable sized objects by reference.
4181         (sparc_va_arg): Receive them by reference too.
4182
4183 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
4184
4185         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
4186         code to not restoring global registers.
4187
4188 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4189
4190         * Makefile.in (ggc-common.o): Update.
4191         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
4192         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
4193         * c-tree.h (c_mark_tree): New.
4194         * ggc-common.c: Include langhooks.h.
4195         (gcc_mark_trees): Use new langhook.
4196         * ggc-callbacks.c: Delete file.
4197         * ggc.h (lang_mark_tree): Remove.
4198         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
4199         (LANG_HOOKS_INITIALIZER): Update.
4200         * langhooks.h (struct lang_hooks): New hook.
4201 objc:
4202         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
4203
4204 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
4205
4206         * doc/cpp.texi: Exclude entire Top node from printed manual.
4207         Move option index after directive index.  Insert page breaks
4208         before GFDL and concept index.  Index environment variables
4209         with command line options.
4210         * doc/cppenv.texi: Use @vtable for environment variable list.
4211         Add paragraph explaining semantics of empty elements in path
4212         variables.  Exclude a cross-reference to Fishkill from the
4213         manpage.  Remove an unnecessary cross-reference of the entry
4214         right above the referer.  Don't use @anchor in text that goes
4215         into manpage.
4216         * doc/cppopts.texi: Cross-reference the environment variables
4217         section, not the specific environment variable, for consistency.
4218
4219 2002-03-25  Richard Henderson  <rth@redhat.com>
4220
4221         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
4222         anywhere in the block.  Don't refer to insns that have been
4223         removed from the chain.  Iterate backward through the new insns.
4224         Don't refer to edges that have been removed.
4225
4226 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
4227
4228         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
4229         test for overflow of constant.
4230
4231 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
4232
4233         PR target/2623
4234         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
4235         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
4236         these patterns on arm_archv4.
4237
4238 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
4239
4240         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
4241         int".
4242
4243 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
4244
4245         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
4246         float_handled, float_handler, float_signal, set_float_handler,
4247         and do_float_handler.  Set handler for SIGFPE to crash_signal.
4248         * toplev.h: Don't prototype do_float_handler.
4249
4250         * c-lex.c: Fold parse_float into lex_number.  Make warning
4251         about portability of hex float constants more informative, and
4252         don't issue it on top of a syntax error.
4253         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
4254         their callers.
4255         * real.h: Define REAL_VALUE_ABS here...
4256         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
4257         simplify_unary_real, simplify_binary_real, and
4258         simplify_binary_is2orm1 into their callers.
4259         * tree.c: Fold build_real_from_int_cst_1 into caller.
4260
4261         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
4262
4263         * tsystem.h: Include float.h here...
4264         * libgcc2.c: ... not here.
4265
4266 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
4267
4268         Fixes for: PR bootstrap/3591, target/5676
4269         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
4270         defined.  Do not disable exceptions or rtti.
4271         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
4272         mcore.h.  Disable exceptions and rtti, since they are not
4273         supported by EPOC.
4274
4275 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4276
4277         * c-decl.c (maybe_build_cleanup): Remove.
4278         * expr.c (expand_expr): Use langhook.
4279         * langhooks-def.h (lhd_return_null_tree,
4280         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
4281         (LANGHOOKS_INITIALIZER): Update.
4282         * langhooks.c (lhd_return_null_tree): New.
4283         * langhooks.h (struct lang_hooks): New hook.
4284         * tree-inline.c (initialize_inlined_parameters): Use langhook.
4285         * tree.h (maybe_build_cleanup): Remove.
4286
4287 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4288
4289         * regrename.c (build_def_use): Move recog_memoized
4290         before extract_insn.
4291
4292 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4293
4294         PR target/6043
4295         * expr.c (emit_group_store): Handle storing into CONCAT.
4296
4297 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
4298
4299         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
4300         corresponding MATCH_DUP.
4301
4302 2002-03-24  Richard Henderson  <rth@redhat.com>
4303
4304         * unroll.c (unroll_loop): Zero label_map.
4305
4306         * gcse.c: Include except.h.
4307         * Makefile.in (gcse.o): Update.
4308
4309 2002-03-24  Richard Henderson  <rth@redhat.com>
4310
4311         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
4312         Do resolve_unique_section before shared data clause.
4313
4314 2002-03-24  Richard Henderson  <rth@redhat.com>
4315
4316         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
4317
4318 2002-03-24  Richard Henderson  <rth@redhat.com>
4319
4320         * recog.c (peephole2_optimize): Split blocks when EH insns are
4321         generated in the middle of a block.  Do global life update if
4322         zapped EH edges.
4323
4324 2002-03-24  Richard Henderson  <rth@redhat.com>
4325
4326         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
4327
4328 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4329
4330         preprocessor/3951
4331         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
4332         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
4333         (init_dependency_output): Don't make no_output decision here.
4334
4335 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
4336
4337         * stmt.c (check_for_full_enumeration_handling): Remove tests of
4338         warn_switch.  Update description.
4339         (expand_end_case_type): Call check_for_full_enumeration_handling
4340         when warn_switch.
4341
4342 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4343
4344         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
4345         (m68hc11_split_move): Call it to see if the source and destination
4346         operands use the same direction auto inc/dec mode, otherwise make the
4347         source an offsetable memory operand and generate an add.
4348
4349 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4350
4351         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
4352         register for operand 2.
4353         ("*subsi3_zero_extendqi"): Likewise.
4354         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
4355         bits so that it is compatible with a pop.
4356         ("*andhi3_gen"): Likewise.
4357         ("xorhi3"): Likewise.
4358
4359 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4360
4361         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
4362         -pedantic here...
4363         (cpp_post_options): ... not here.
4364
4365 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4366             Aldy Hernandez  <aldyh@redhat.com>
4367
4368         Removal of separate preprocessor cpp0.
4369
4370         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
4371         cpp0, install-common): Update.
4372         * c-common.c (flag_preprocess_only): New.
4373         (c_common_init): Preprocess for -E.
4374         * c-common.h (flag_preprocess_only): New.
4375         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
4376         * c-objc-common.c (c_init_decl_processing): Exit quickly
4377         for NULL return from c_common_init.
4378         * cpplib.h (cpp_preprocess_file): New.
4379         * cppmain.c (main, general_init, pfile, progname): Remove.
4380         (do_preprocessing): Rename cpp_preprocess_file, don't call
4381         cpp_finish.  Don't close stdout here.
4382         (setup_callbacks): Update prototype.
4383         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
4384         Update.
4385         * tradcpp.c (main): Ignore -quiet.
4386 objc:
4387         * lang-specs.h (default_compilers): Preprocess with cc1obj.
4388
4389 2002-03-24  Richard Henderson  <rth@redhat.com>
4390
4391         PR optimization/5742
4392         * machmode.def: Add inner mode field to complex modes.
4393         * config/mips/mips.c (mips_function_value): Always define.  Add
4394         new argument to handle libcalls.
4395         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
4396         (FUNCTION_VALUE): Likewise.
4397         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
4398         * config/mips/mips-protos.h: Update.
4399
4400 2002-03-23  Richard Henderson  <rth@redhat.com>
4401
4402         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
4403         * config/sparc/sparc-protos.h: Update.
4404         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
4405
4406 2002-03-23  Richard Henderson  <rth@redhat.com>
4407
4408         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
4409         _start or _init begins the text segment.
4410
4411 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
4412
4413         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
4414         not HOST_WIDEST_INT.
4415         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
4416
4417 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
4418
4419         PR java/5489
4420         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
4421         operand argument to output_return_instruction.
4422         * arm.c (arm_print_operand, case 'd'): If the operand is
4423         const_true_rtx then just return.
4424         (arm_print_operand, case 'D'): If the operand is const_true_rtx
4425         then abort.
4426
4427 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
4428
4429         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
4430         (Warning Options): Document -Wswitch-default.
4431         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
4432         -Wswitch.
4433         (warn_switch_default): Define variable.
4434         (warn_switch): Update comment.
4435         * flags.h (warn_switch_default): Declare variable.
4436         (warn_switch): Update comment.
4437         * stmt.c (expand_end_case): Check for and, when
4438         warn_switch_no_default, warn of a missing default case.
4439
4440 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
4441
4442         * real.h (N): Special case 128 bit doubles.
4443
4444         * combine.c (simplify_comparison): When widening modes, ignore
4445         sign extension on CONST_INTs.
4446
4447 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4448
4449         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
4450         passed to adjust_address.  Fix comment formatting.
4451
4452
4453 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
4454
4455         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
4456         Always make REAL_VALUE_TYPE a struct containing an array of
4457         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
4458         big it is.  Don't declare or use union real_extract.
4459
4460         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
4461         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
4462         (print_operand), config/arm/arm.c (output_move_double),
4463         config/arm/arm.md (consttable_4, consttable_8),
4464         config/romp/romp.c (output_fpops), config/s390/s390.h
4465         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
4466         (xtensa_output_literal): Don't use union real_extract.
4467
4468         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
4469         (sfmode_constant_to_ulong), config/ns32k/merlin.h
4470         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
4471         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
4472         (PRINT_OPERAND): Don't use local version of union
4473         real_extract.
4474
4475         * config/convex/convex.c (check_float_value), config/vax/vax.c
4476         (vax_float_literal), config/m88k/m88k.md (divdf3),
4477         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
4478         config/pdp11/pdp11.c (output_move_quad): Don't do host
4479         arithmetic on target floating point quantities.
4480
4481         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
4482         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
4483
4484         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
4485         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
4486
4487         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
4488         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
4489         INFINITY.
4490         * print-rtl.c (print_rtx): Disable code which needs
4491         floating-point emulator.
4492         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
4493         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
4494         depending on HOST_FLOAT_FORMAT to be defined properly.
4495
4496         * config/1750a/1750a.c (get_double, float_label): Delete.
4497         (print_operand): Delete huge commented-out chunk.  Use
4498         REAL_VALUE_TO_DECIMAL.
4499         * config/1750a/1750a-protos.h: Delete prototypes of deleted
4500         functions.
4501         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
4502         IEEE_FLOAT_FORMAT.
4503         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
4504         Use REAL_VALUE_TO_DECIMAL as ELF version does.
4505         * config/m88k/m88k.c (real_power_of_2_operand,
4506         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
4507         real_extract out of the union; run the input through
4508         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
4509         from that into the union.
4510         * config/pdp11/pdp11.c (output_move_double): Rearrange
4511         parentheses to make automatic indenter happy.
4512
4513         * doc/tm.texi (Cross-compilation): Rename node to "Floating
4514         Point" and rewrite to describe current situation.  Also adjust
4515         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
4516         match code.
4517         * doc/rtl.texi: Adjust cross reference.
4518
4519 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
4520
4521         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
4522         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
4523         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
4524         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
4525         prevent use of sp as a reload register.
4526         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
4527         non_acc_reg_operand.
4528         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
4529         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
4530         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
4531         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
4532
4533 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4534
4535         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
4536         * cpplex.c (unterminated): Delete.
4537         (parse_string): No string literal may extend over multiple
4538         lines.  Suppress the error when preprocessing assembly.
4539         * cppmain.c (scan_translation_unit): Strings are single-line.
4540
4541         * doc/cpp.texi: Update to match.
4542
4543 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4544
4545         PR optimization/5854
4546         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
4547         Shut up warnings.
4548         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
4549         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
4550         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
4551         const0 if scratch register was not allocated.
4552         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
4553         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
4554         with GEN_INT (...).
4555         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
4556         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
4557         with GEN_INT (...) everywhere.  Remove constraints in define_split
4558         patterns.
4559         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
4560         require scratch register for setting 0 into regs/non-pushable memory.
4561
4562 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4563
4564         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
4565         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
4566
4567 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
4568
4569         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
4570         * cppinit.c (cpp_create_reader):  On by default.
4571         (cpp_handle_option):  Handle -W[no-]endif-labels.
4572         (cpp_post_options):  Also enable if -pedantic.
4573         * cpplib.c (do_else):  Use it.
4574         (do_endif):  Likewise.
4575         * doc/cppopts.texi:  Document new option.
4576         * doc/invoke.texi:  Document new option.
4577
4578 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
4579
4580         * config/i386/i386.c, config/i386/i386.md: Change all occurences
4581         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
4582
4583 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
4584
4585         * flow.c (calculate_global_regs_live): Clear aux fields of
4586         ENTRY and EXIT.
4587
4588 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
4589
4590         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
4591         REG or MEM subregs, pass rtx * instead of rtx to it.
4592         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
4593         rtx * instead of rtx to alter_subreg.
4594         * config/m32r/m32r.c (gen_split_move_double): Likewise.
4595         * config/pj/pj.c (pj_output_rval): Likewise.
4596
4597 2002-03-22  Richard Henderson  <rth@redhat.com>
4598
4599         PR target/3177
4600         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
4601         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
4602         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
4603         (ia64_expand_prologue): Look at int_regs, not words, for number
4604         of incomming int regs.
4605
4606 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
4607
4608         * expr.c (expand_expr): A RESULT_DECL is part of a call.
4609
4610 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
4611
4612         * toplev.c (flag_loop_optimize, flag_crossjumping):
4613         New static variables.
4614         (rest_of_compilation): Conditionalize crossjumping and
4615         loop optimizer.
4616         (parse_options_and_default_flags): Default loop_optimize and
4617         crossjumping.
4618         (lang_independent_options): Add -fcrossjumping and -floop-optimize
4619         * invoke.texi (crossjumping, loop-optimize): Document.
4620
4621 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4622
4623         * real.c (eiisneg): Move outside #ifdef NANS.
4624
4625 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4626
4627         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
4628         frequencies match; avoid match on different loop depths.
4629         (try_crossjump_to_bb): Kill tests that no longer brings time
4630         savings.
4631         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
4632         updating code.
4633         (split_edge): Likewise.
4634
4635         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
4636         variable.
4637
4638         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
4639         * cfgrtl.c: Include insn-config.h
4640         (split_block) Dirtify block in presence of conditional execution
4641
4642 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4643
4644         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
4645         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
4646         (function_arg): Constify CUMULATIVE_ARGS.
4647         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
4648         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
4649         (UNITS_PER_DOUBLE): New macro.
4650         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
4651         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
4652         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
4653         fp_regs and stack_words.
4654         (EABI_FLOAT_VARARGS_P): New macro.
4655         * config/mips/mips.c (struct mips_arg_info): New.
4656         (mips_arg_info): New function.
4657         (function_arg_advance): Use it.  Add adjustment instructions here
4658         rather than in function_arg.
4659         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
4660         for VOIDmode at the beginning of the function.
4661         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
4662         (function_arg_pass_by_reference): Likewise.
4663         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
4664         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
4665         (mips_va_start): Likewise.  Use the new stack_words field of
4666         CUMULATIVE_ARGS to set up overflow area.  Reformat.
4667         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
4668         doubles and other types, aligning the overflow pointer for non-doubles
4669         too.  Remove some code duplication.  Replace hard-coded constants.
4670
4671 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
4672
4673         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
4674         (CLASS_UNITS): Undefine.
4675         (CLASS_MAX_NREGS): Use FP_INC.
4676         * config/mips/mips.c (compute_frame_size): Likewise.
4677         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
4678
4679 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4680
4681         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
4682         prototype, and handle lexing numbers and identifiers.
4683         (parse_identifier): Update to new form of parse_slow.
4684         (parse_number): Fast path only, use parse_slow otherwise.
4685         (_cpp_lex_direct): Update calls to parse_number.
4686
4687 2002-03-21  DJ Delorie  <dj@redhat.com>
4688
4689         * bb-reorder.c (make_reorder_chain_1): Protect against
4690         when redundant edges are omitted.
4691         * predict.c (dump_prediction): Likewise.
4692
4693 2002-03-21  Richard Henderson  <rth@redhat.com>
4694
4695         PR target/5996
4696         * fixinc/inclhack.def (solaris_stdio_tag): New.
4697         * fixinc/fixincl.x: Regenerate.
4698
4699 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4700
4701         PR c/5597
4702         * c-typeck.c (process_init_element): Flag non-static
4703         initialization of a flexible array member as illegal.
4704
4705 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
4706
4707         * config/rs6000/t-linux64: New.
4708         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
4709         t-ppccomm.  Use t-rs6000 and t-linux64.
4710         (powerpc64-*-gnu* <tmake_file>): Likewise.
4711         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
4712         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
4713         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
4714
4715 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
4716
4717         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
4718         flag_really_no_inline instead of optimize == 0.
4719
4720         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
4721
4722         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
4723
4724         * flags.h (flag_really_no_inline): New.
4725
4726         * c-common.c (c_common_post_options): Initialize
4727         flag_really_no_inline.
4728
4729         * toplev.c (flag_really_no_inline): New.
4730
4731 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4732
4733         * config/avr/avr.md (length): Fix length computation for
4734         conditional branches.
4735
4736 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4737
4738         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
4739         sdbout.o, profile.o): Update.
4740         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
4741         langhook.
4742         * c-common.h (gettags): Move here from tree.h.
4743         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
4744         insert_block, getdecls, kept_level_p, global_bindings_p): New.
4745         * dbxout.c (dbxout_init): Use getdecls langhook.
4746         * expr.c (expand_expr): Use insert_block langhook.
4747         * fold-const.c: Include langhooks.h.
4748         (fold_range_test, fold_binary_op_with_conditional_arg,
4749         fold): Use global_bindings_p langhook.
4750         * integrate.c (expand_inline_function): Use insert_block langhook.
4751         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
4752         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
4753         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
4754         LANG_HOOKS_GETDECLS): New.
4755         (LANG_HOOKS_INITIALIZER): Update.
4756         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
4757         langhook.
4758         * langhooks.h (struct lang_hooks_for_decls): New.
4759         (struct lang_hooks): Update.
4760         * profile.c: Include langhooks.h.
4761         (output_func_start_profiler): Use new langhooks.
4762         * sdbout.c: Include langhooks.h.
4763         (sdbout_init, sdbout_finish): Use getdecls langhook.
4764         * stmt.c: Include langhooks.h.
4765         (expand_fixup, fixup_gotos): Use new langhooks.
4766         * stor-layout.c: Include langhooks.h.
4767         (variable_size): Use global_bindings_p langhook.
4768         * toplev.c (compile_file): Use getdecls langhook.
4769         * tree-inline.c (remap_block): Use insert_block langhook.
4770         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
4771         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
4772
4773 2002-03-21  Richard Henderson  <rth@redhat.com>
4774
4775         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
4776         constants in .data when -fpic.
4777
4778 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4779
4780         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
4781         where appropriate.
4782
4783 2002-03-21  Tom Tromey  <tromey@redhat.com>
4784
4785         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
4786
4787 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4788
4789         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
4790
4791         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
4792
4793 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
4794             Richard Henderson  <rth@redhat.com>
4795
4796         PR c/5354
4797         * c-common.c (c_expand_expr): Preserve result of a statement
4798         expression if needed.
4799
4800 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
4801
4802         PR bootstrap/4195
4803         * genrecog.c (maybe_both_true_mode): Remove.
4804         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
4805         * machmode.def (Pmode): Likewise.
4806
4807 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
4808
4809         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
4810         (nonlocal_mentioned_p_1): New function.
4811         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
4812         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
4813         (mark_constant_function): Recognize pure functions.
4814         * rtl.h (global_reg_mentioned_p): New prototype.
4815         * rtlanal.c (global_reg_mentioned_p,
4816         global_reg_mentioned_p_1): New function.
4817
4818 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4819
4820         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
4821         UNIX assert.h.
4822         * fixinc/fixincl.x: Regenerate.
4823
4824 2002-03-20  Jason Merrill  <jason@redhat.com>
4825
4826         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
4827
4828 2002-03-20  Michael Meissner  <meissner@redhat.com>
4829
4830         * doc/invoke.texi (Optimize Options): Document that -O2 sets
4831         -fstrict-aliasing.
4832
4833 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4834
4835         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
4836         ".literal_position" directive before the constant pool.
4837
4838 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4839
4840         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
4841         Add Craig Rodrigues.
4842         Add Brad Lucier to testers.
4843
4844 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4845
4846         PR target/4792
4847         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
4848         to if_then_else.
4849         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
4850         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
4851         instead of insn_extract.
4852
4853 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4854
4855         PR bootstrap/4192
4856         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
4857
4858         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
4859         stmt if some case has been output.
4860
4861 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
4862
4863         PR c/5972
4864         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
4865         movsfcc_1, movdfcc_1): Add %O2.
4866         * config/i386/i386.c (print_operand): Handle %ON.
4867         Print . before float condition codes in Sun as cmov syntax.
4868         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
4869         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
4870         no longer true.
4871
4872 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
4873
4874         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
4875         return instruction if PC was popped.
4876
4877 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
4878
4879         * config/xtensa/xtensa.md: Remove unused type attributes.
4880         (adddi_carry, subddi_carry): Change type attribute to "multi".
4881
4882 2002-03-19  Dale Johannesen  <dalej@apple.com>
4883
4884         PR optimization/5999, middle-end/5731
4885         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
4886         multiplications by reciprocals.
4887
4888 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4889
4890         * Makefile.in: Update.
4891         * c-common.c: Include langhooks.h.
4892         (inline_forbidden_p): Use new hook.
4893         * diagnostic.c: Include langhooks.h.
4894         (format_with_decl, announce_function,
4895         default_print_error_function): Use new hook.
4896         * dwarf2out.c (dwarf2_name): Use new hook.
4897         * function.c: Include langhooks.h.
4898         (init_function_start): Use new hook.
4899         * langhooks-def.h (lhd_decl_printable_name): New.
4900         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
4901         (LANGHOOKS_INITIALIZER): Update.
4902         * langhooks.c (lhd_decl_printable_name): New.
4903         * langhooks.h (struct lang_hooks): New hook.
4904         * toplev.c (decl_name, decl_printable_name): Remove.
4905         (open_dump_file): Use new hook.
4906         (process_options): Remove old hook.
4907         * tree.h (decl_printable_name): Remove.
4908 objc:
4909         * objc-act.c (objc_init): Remove old hook.
4910         (objc_printable_name): Export.
4911         * objc-act.h (objc_printable_name): New.
4912         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
4913
4914 2002-03-19  Jim Blandy  <jimb@redhat.com>
4915
4916         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
4917         the start_source_file debug hook, not the current line number.
4918
4919 2002-03-19  Richard Henderson  <rth@redhat.com>
4920
4921         * flow.c (EH_USES): Provide default.
4922         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
4923         * doc/tm.texi (EH_USES): New.
4924
4925         * config/ia64/ia64.c (ia64_eh_uses): New.
4926         * config/ia64/ia64-protos.h: Update.
4927         * config/ia64/ia64.h (EH_USES): New.
4928
4929 2002-03-19  Richard Henderson  <rth@redhat.com>
4930
4931         * varasm.c (output_constant_def): Fix stupid typo.
4932
4933 2002-03-19  Richard Henderson  <rth@redhat.com>
4934
4935         PR 5879
4936         * except.c (current_function_has_exception_handlers): New.
4937         * except.h: Declare it.
4938         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
4939         Combine tests that disable all sibcalls for the function.
4940
4941 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
4942
4943         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
4944         for INTEGER_CST.
4945
4946 2002-03-19  Richard Henderson  <rth@redhat.com>
4947
4948         PR 5977, 5991
4949         * config/ia64/ia64.c: Revert 2002-03-01 patch.
4950         * config/ia64/ia64.h (INIT_EXPANDERS): New.
4951
4952 2002-03-19  Jim Blandy  <jimb@redhat.com>
4953
4954         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
4955         name, even if the replacement list contains no tokens, as required
4956         by Dwarf.
4957
4958 2002-03-19  Jason Merrill  <jason@redhat.com>
4959
4960         * varasm.c (globalize_decl): Get the name from the RTL, not
4961         DECL_ASSEMBLER_NAME.
4962
4963         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
4964
4965 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
4966
4967         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
4968         subdi_carry): Define.
4969
4970 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4971
4972         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
4973         about -fpic/-fPIC if extra_warnings set.
4974
4975 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
4976
4977         * expr.c (expand_expr): Sign-extend CONST_INT generated from
4978         TREE_STRING_POINTER.
4979         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
4980
4981 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4982
4983         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
4984         in favor of SP if FRAME_POINTER_REQUIRED is false.
4985
4986 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
4987
4988         * emit-rtl.c (gen_int_mode): New function.
4989         * rtl.h: Prototype for it.
4990         * combine.c (make_extraction, simplify_comparison), expmed.c
4991         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
4992         (convert_modes, store_field), optabs.c (expand_fix),
4993         simplify-rtx.c (neg_const_int, simplify_unary_real),
4994
4995         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
4996         Use it instead of GEN_INT (trunc_int_for_mode (...)).
4997
4998 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
4999
5000         PR c/5656
5001         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
5002         convert_parm_for_inlining.
5003         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
5004         Define.
5005         * langhooks-def.h: Likewise.
5006         * objc/objc-lang.c: Likewise.
5007         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
5008         function.
5009         * tree-inline.c (initialize_inlined_parameters):
5010         Call convert_parm_for_inlining lang hook if needed.
5011         * c-typeck.c (c_convert_parm_for_inlining): New function.
5012         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
5013
5014 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
5015
5016         * calls.c (precompute_arguments): Do not assume that temporaries
5017         can be destroyed after expanding the argument.
5018         (expand_call): Likewise.
5019
5020 2002-03-15  Eric Christopher  <echristo@redhat.com>
5021
5022         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
5023         Fix register preference on last change.
5024         * config/mips/mips.c (mips_return_in_memory): New function.
5025         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
5026         * config/mips/mips-protos.h: Declare.
5027         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
5028         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
5029
5030 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
5031
5032         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
5033         a register too.
5034         (anddi3, iorsi3): Likewise.
5035
5036         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
5037         use %gprel for symbols that are going to be placed in linkonce
5038         sections.
5039
5040         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
5041         RETURN_ADDRESS_POINTER_REGNUM to $ra.
5042         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
5043         not needed.  Disregard leaf_function_p().
5044         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
5045         mips16 frame pointer.
5046         * config/mips/mips.md (store ra): Only to small SP offsets.
5047         2001-08-22  Graham Stott  <grahams@redhat.com>
5048         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
5049         return a REG rtx for the return address register.
5050
5051 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
5052
5053         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
5054         constant-pool addresses as "mode-dependent".
5055         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
5056
5057 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
5058
5059         PR target/5740
5060         * expr.c (emit_group_load): Use extract_bit_field if
5061         needed for CONCAT arguments.
5062
5063 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
5064
5065         PR target/4863
5066         * arm.md (tablejump): Make this a define_expand.  For PIC add the
5067         offset to the base of the table.
5068         (thumb_tablejump): Matcher for Thumb tablejump insn.
5069         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
5070         as the difference of two labels.
5071         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
5072         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
5073         tables in the code.
5074         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
5075         * arm.c (get_jump_table_size): If the table is not in the text
5076         section, return zero.
5077
5078 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
5079
5080         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
5081         of gen_rtx_SUBREG.
5082         (arm_reload_out_hi): Use gen_lowpart instead of
5083         gen_rtx_SUBREG to access QImode components.
5084         * config/arm/arm.md: Disable zero_extend split for QImode
5085         subregs in BIG_ENDIAN mode.
5086         (storehi_bigend): Match use of least significant byte.
5087         (storeinthi): Remove extraneous SUBREG.
5088         Add missing construction of operands[2].
5089         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
5090         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
5091         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
5092
5093 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
5094
5095         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
5096         any_operand.
5097
5098 2002-03-17  Richard Henderson  <rth@redhat.com>
5099
5100         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
5101         explicitly.
5102
5103 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
5104
5105         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
5106         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
5107
5108 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5109
5110         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
5111
5112         * predict.c (estimate_bb_frequencies): Delete unused variables.
5113
5114 2002-03-17  Richard Henderson  <rth@redhat.com>
5115
5116         * config/ia64/ia64.c (ia64_attribute_table): Move before
5117         targetm definition.  Make static.
5118
5119 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
5120
5121         * c-common.h (yyparse, c_common_parse_file): New.
5122         * c-lang.c: Include c-common.h.
5123         (LANG_HOOKS_PARSE_FILE): Redefine.
5124         * c-lex.c: Include c-common.h.
5125         (yyparse): Rename c_common_parse_file.  Call yyparse.
5126         * c-parse.in (yyparse): Remove macro.
5127         * c-tree.h (yyparse_1): Remove.
5128         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
5129         (LANG_HOOKS_INITIALIZER): Update.
5130         * langhooks.h (struct lang_hoooks): New hook parse_file.
5131         * toplev.c (compile_file): Use parse_file hook.
5132         * tree.h (yyparse): Remove.
5133         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
5134
5135 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
5136
5137         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
5138         float_truncate, not fix.
5139         ("*truncdfsf2_real"): Ditto.
5140         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
5141
5142         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
5143
5144 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
5145
5146         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
5147         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
5148         where appropriate.  Make the second reference to
5149         leaf_function_p a function call, as intended.  Reindented.
5150
5151         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
5152         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
5153
5154         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
5155         add register to non-constant into sp.
5156
5157         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
5158         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
5159         (mips16_gp_pseudo_rtx): Lose.
5160         (INIT_EXPANDERS): Deleted.
5161         * config/mips/mips.c (mips_init_machine_status): New.
5162         (mips_free_machine_status): New.
5163         (mips_mark_machine_status): New.
5164         (override_options): Set them.
5165         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
5166         (struct machine_function): ... new.  Replaced all references.
5167         (mips_add_gc_roots): Don't mark them.
5168         (embedded_pic_fnaddr_reg): New, extracted from...
5169         (embedded_pic_offset): ... here.
5170         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
5171         (movsi): Likewise.
5172
5173 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5174
5175         * cppinit.c: Revert -MD removal.
5176
5177 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5178
5179         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
5180         soft registers by default for 68HC12.
5181         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
5182         when compiling with -fomit-frame-pointer.
5183         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
5184         (expand_epilogue): Likewise.
5185         (m68hc11_gen_rotate): Use exg when rotating by 8.
5186
5187 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5188
5189         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
5190         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
5191         (splits): Remove unused add splits.
5192         ("*addhi3_68hc12"): Tune constraints.
5193         ("addhi_sp"): Try to use X instead of Y in all cases and if the
5194         constant fits in 8-bits and D is dead use abx/aby instructions.
5195         ("*addhi3"): Remove extern declaration of ix_reg.
5196         ("*subsi3"): Optimize and provide new split.
5197         ("subhi3"): Cleanup.
5198         ("*subhi3_sp"): Avoid saving X if we know it is dead.
5199         (arith splits): For 68hc12 save the address register on the stack
5200         and do the arithmetic operation with a pop.
5201
5202 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5203
5204         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
5205         allocating QImode in address registers.
5206         ("*movqi_m68hc11"): Likewise.
5207
5208 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
5209
5210         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
5211
5212 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
5213
5214         * cppinit.c (print_help): Display -MD and -MMD.
5215         Don't display usage string.  Update assertion syntax and
5216         typo.
5217         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
5218         (cpp_handle_option): Update.
5219
5220 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
5221
5222         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
5223         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
5224         and define it so that regardless of target CPU size,
5225         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
5226         of "int" rather than "long."
5227
5228 2002-03-15  Richard Henderson  <rth@redhat.com>
5229
5230         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
5231         size as a tree.
5232
5233 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5234
5235         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
5236         ("tstqi" split): Avoid using memory for tstqi on address register.
5237         (splits): Remove constraints.
5238         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
5239         ("cmpdf", "cmpsf"): Remove since not used.
5240         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
5241         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
5242
5243 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5244
5245         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
5246         ("neghi2"): Tighten constraints.
5247         ("one_cmplsi2"): Optimize and simplify split.
5248         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
5249
5250 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5251
5252         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
5253         and split of AND operation to clear the upper bits.
5254         ("*logicalsi3_zextqi"): Likewise.
5255         ("*logicallhi3_zexthi_ashift8"): Likewise.
5256         ("*logicalsi3_silshr16"): Likewise.
5257         ("logicalsi3_silshl16"): Likewise.
5258         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
5259
5260 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5261
5262         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
5263         (m68hc11_indirect_p): New function.
5264         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
5265         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
5266         TARGET_M6812.
5267         (asm_print_register): Likewise.
5268         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
5269         (m68hc11_indirect_p): Declare.
5270         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
5271         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
5272         (TARGET_SWITCHES): New option -mrelax.
5273         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
5274         destination.
5275         ("iorsi3", "xorsi3"): Likewise.
5276         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
5277         ("*andhi3_mem"): New to handle destination in memory with bclr
5278         and a scratch register.
5279         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
5280         ("*andhi3_const"): New when operand2 is constant.
5281         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
5282         ("*andhi3_gen"): Cleanup of the old "andhi3".
5283         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
5284         ("xorqi3"): Update constraints.
5285
5286 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5287
5288         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
5289         for reg_equiv_memory_loc when the operand is a register that does
5290         not get a hard register (stack location).
5291         (tst_operand): After reload, accept all memory operand.
5292         (symbolic_memory_operand): Fix detection of symbolic references.
5293         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
5294         accept symbols and any constant.
5295
5296 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5297
5298         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
5299         note on the insn that sets the soft frame register.
5300         (must_parenthesize): ix and iy are also reserved names.
5301         (print_operand_address): One more place where parenthesis are required
5302         to avoid confusion with register names.
5303         (m68hc11_gen_movhi): Allow push of stack pointer.
5304         (m68hc11_check_z_replacement): Fix handling of parallel with a
5305         clobber.
5306         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
5307         the replacement register is.
5308         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
5309         and D8_REGS classes.
5310         (MODES_TIEABLE_P): All modes are tieable except QImode.
5311
5312 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5313
5314         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
5315         (___subdi3): Likewise.
5316         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
5317         (__map_data_section): Optimize 68hc11 case.
5318
5319 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5320
5321         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
5322         than a shift to avoid adding a register with itself.
5323         (m68hc11_memory_move_cost): Take into account NO_REGS.
5324         (m68hc11_register_move_cost): Update and use memory move cost
5325         for soft registers.
5326         (m68hc11_address_cost): Make cost of valid offset not 0 so that
5327         it gives more opportunities to cse to optimize.
5328         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
5329         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
5330
5331 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
5332
5333         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
5334         * c-common.def (CLEANUP_STMT): New tree node.
5335         * c-common.h (CLEANUP_DECL): New macro.
5336         (CLEANUP_EXPR): Likewise.
5337         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
5338         * expr.c (expand_expr): Tidy.
5339         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
5340         * tree-inline.c (initialize_inlined_parameters): Clean up
5341         new local variables.
5342
5343 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5344
5345         PR bootstrap/4128
5346         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
5347         before movrXX only, use reg_overlap_mentioned_p.
5348         Only special case NE if just one insn can be generated.
5349
5350 2002-03-15  Jason Merrill  <jason@redhat.com>
5351
5352         * varasm.c (assemble_variable): Call resolve_unique_section before
5353         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
5354         of error_mark_node.
5355
5356 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5357
5358         PR target/5170
5359         * arm.md (split pattern for thumb shiftable immediates): Add comment
5360         explaining non-obvious test.
5361
5362 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
5363
5364         PR target/5712
5365         * arm.md (movaddr, movaddr_insn): Delete.
5366
5367 2002-03-15  Jason Merrill  <jason@redhat.com>
5368
5369         * toplev.c (wrapup_global_declarations): Clarify variable handling.
5370         -fkeep-static-consts doesn't apply to comdats.
5371
5372 2002-03-14  Richard Henderson  <rth@redhat.com>
5373
5374         * c-decl.c: Include c-pragma.h.
5375         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5376         (finish_function): Tidy.
5377         * c-pragma.c: Include c-common.h.
5378         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
5379         (handle_pragma_weak): Use them.
5380         (init_pragma): Register pending_weaks.
5381         * c-pragma.h (maybe_apply_pragma_weak): Declare.
5382         * print-tree.c (print_node): Print DECL_WEAK.
5383         * varasm.c (mark_weak_decls): Remove.
5384         (remove_from_pending_weak_list): Remove.
5385         (add_weak): Remove.
5386         (asm_emit_uninitialised): Call globalize_decl for weak commons.
5387         (weak_decls): Make a tree_list.
5388         (declare_weak): Cons weak_decls directly.
5389         (globalize_decl): Remove weak_decls elements directly.
5390         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
5391         symbols.  Don't pretend to handle aliases.
5392         (init_varasm_once): Update weak_decls registry.
5393         * Makefile.in: Update dependencies.
5394
5395 2002-03-14  Richard Henderson  <rth@redhat.com>
5396
5397         PR target/5312
5398         * config/ia64/ia64.c: Include tm_p.h last.
5399         (gen_nop_type): Remove duplicate definition.
5400         (cycle_end_fill_slots): Set sched_data for second L slot.
5401         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
5402         (nop_cycles_until): Fix typos.
5403
5404 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
5405
5406         PR optimization/5891
5407         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
5408
5409 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
5410
5411         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
5412           descriptors correctly.
5413
5414 2002-03-14  Michael Meissner  <meissner@redhat.com>
5415
5416         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
5417         100, allowing MAX_UNROLLED_INSNS to be overridden.
5418
5419         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
5420         --param.
5421
5422         * unroll.c (params.h): Include.
5423         (MAX_UNROLLED_INSNS): Delete, now in params.h.
5424
5425         * doc/invoke.texi (--param max-unroll-insns): Document.
5426
5427         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
5428
5429 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5430
5431         * arm.md: Fix warnings about constraints in peepholes and splits.
5432
5433 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
5434
5435         * cpphash.h (struct lexer_state): Remove line_extension member.
5436         * cpplib.c (dequote_string, do_linemarker): New functions.
5437         (linemarker_dir): New data object.
5438         (DIRECTIVE_TABLE): No longer need to interpret #line in
5439         preprocessed source.  Delete obsolete comment about return
5440         values of handlers.
5441         (end_directive, directive_diagnostics, _cpp_handle_directive):
5442         Don't muck with line_extension.
5443         (directive_diagnostics): No need to issue warnings for
5444         linemarkers here.
5445         (_cpp_handle_directive): Issue warnings for linemarkers here,
5446         when appropriate.  Dispatch linemarkers to do_linemarker, not
5447         do_line.
5448         (do_line): Code to handle linemarkers split out to do_linemarker.
5449         Convert escape sequences in filename argument, both places.
5450
5451         * cppmacro.c (quote_string): Rename cpp_quote_string and
5452         export.  All callers changed.
5453         * cpplib.h (cpp_quote_string): Prototype.
5454         * cppmain.c (print_line): Call cpp_quote_string on to_file
5455         before printing it.
5456
5457         * doc/cpp.texi: Document that escapes are now interpreted in
5458         #line and in linemarkers, and that non-printing characters are
5459         converted to octal escapes when linemarkers are generated.
5460
5461 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
5462
5463         * emit-rtl.c (try_split): Use delete_insns.
5464         * recog.c (split_all_insns): Fix terminating condition.
5465
5466 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
5467             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5468
5469         PR target/5828
5470         * arm.c (arm_output_epilogue): Fix floating-point register save
5471         adjustment when using a frame pointer.
5472
5473 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
5474
5475         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
5476         * config/mips/mips.c (compute_frame_size): Retrofit them here.
5477         (save_restore_insns, mips_expand_epilogue): And here.
5478         (build_mips16_call_stub): And here.
5479         (mips_function_value): Use the new macros to decide whether a single
5480         or complex float can be returned in floating-point registers.  Return
5481         a parallel rtx in the complex case.
5482
5483 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
5484
5485         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
5486         call after liveness analysis.
5487
5488         * recog.c (split_insn): Use delete_insn_and_edges.
5489
5490         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
5491         instructions to have branch prediction notes.
5492         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
5493
5494 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
5495
5496         * configure.in: Don't pass -Wno-long-long to a ADA compiler
5497         that doesn't support it.
5498         * configure: Regenerate.
5499
5500 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5501
5502         PR target/5626
5503         * config/sparc/sparc.md (normal_branch, inverted_branch,
5504         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5505         inverted_fp_branch): Adjust calls to output_cbranch.
5506         Set length attribute.
5507         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
5508         output_v9branch.  Set length attribute.
5509         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
5510         predicates.
5511         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
5512         (output_cbranch): Likewise.  Handle far branches.
5513         (output_v9branch): Handle far branches.
5514         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
5515         Adjust prototypes.
5516         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
5517         noov_compare64_op predicates.
5518
5519 2002-03-13  Jason Merrill  <jason@redhat.com>
5520
5521         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
5522         into the function and constify it.
5523         * gthr-dce.h, gthr-solaris.h: Likewise.
5524
5525 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
5526
5527         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
5528         * config/rs6000/rs6000.c (rs6000_va_arg): Use
5529         std_expand_builtin_va_arg if not ABI_V4.
5530
5531 2002-03-13  Jason Merrill  <jason@redhat.com>
5532
5533         * varasm.c (globalize_decl): New fn.
5534         (assemble_start_function): Use it.
5535         (asm_emit_uninitialized): Use it.
5536         (assemble_alias): Use it.
5537         (assemble_variable): Use it.
5538
5539 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
5540
5541         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
5542         2002-03-12 internal visibility change.
5543         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
5544         visibility into SYMBOL_REF_FLAG.
5545
5546 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
5547
5548         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
5549         VOIDmode operand.  Add compile-time optimization for constant results.
5550
5551 2002-03-12  Jason Merrill  <jason@redhat.com>
5552
5553         * c-typeck.c (convert_for_assignment): Don't allow conversions
5554         between pointers and references.  Only allow lvalues to convert to
5555         reference.
5556
5557 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
5558
5559         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
5560         before prologue, to avoid scheduling problems.
5561
5562 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5563
5564         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
5565         (ELIMINABLE_REGS): Add sfp->sp.
5566         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
5567
5568 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5569
5570         PR optimization/5892
5571         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
5572
5573 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
5574
5575         * loop.c (basic_induction_var): Don't call convert_modes if mode
5576         classes are different.
5577
5578 2002-03-12  Richard Henderson  <rth@redhat.com>
5579
5580         PR optimization/5901
5581         * function.c (reposition_prologue_and_epilogue_notes): Position
5582         the markers after/before the last/first insn not deleted.
5583
5584 2002-03-12  Richard Henderson  <rth@redhat.com>
5585
5586         PR optimization/5878
5587         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
5588         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
5589         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5590
5591         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
5592         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
5593         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
5594
5595         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
5596         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
5597         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
5598         also.  Don't set it if not flag_pic.
5599         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
5600         to be INVALID_REGNUM when not used.
5601
5602 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
5603
5604         * expmed.c (store_bit_field): Reset alias set for memory.
5605         (extract_bit_field): Same.
5606
5607 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5608
5609         * c-common.c (c_tree_code_type, c_tree_code_length,
5610         c_tree_code_name, add_c_tree_codes): Delete.
5611         * c-common.h (add_c_tree_codes): Delete.
5612         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
5613         Define.
5614         * c-objc-common.c (c_objc_common_init): Don't call
5615         add_c_tree_codes, instead set lang_unsafe_for_reeval.
5616         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
5617         objc_tree_code_name, add_objc_tree_codes): Delete.
5618         (objc_init): Don't call add_objc_tree_codes.
5619         * objc/objc-lang.c (tree_code_type, tree_code_length,
5620         tree_code_name): Define.
5621         * toplev.c (lang_independent_init): Don't set
5622         tree_code_length[IDENTIFIER_NODE].
5623         * tree.c (tree_code_type, tree_code_length, tree_code_name):
5624         Delete definitions, moved to language front-ends.
5625         * tree.def (IDENTIFIER_NODE): Hardwire the length.
5626         * tree.h (tree_code_type, tree_code_length, tree_code_name):
5627         Const-ify.
5628         (tree_code_length): Change type to unsigned char.
5629
5630 2002-03-12  Richard Henderson  <rth@redhat.com>
5631
5632         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
5633         internal visibility change.
5634
5635 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5636
5637         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
5638         validize_mem() instead of change_address to avoid clobbering
5639         memory attributes.
5640
5641 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5642
5643         * c-lex.h (position_after_whitespace): Remove.
5644
5645 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
5646
5647         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
5648         (lex_string): Use unsigned char pointers.
5649
5650 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5651
5652         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
5653         is not a valid memory_operand.
5654
5655 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5656
5657         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
5658         * config/xtensa/lib1funcs.asm: Fix copyright to include
5659         special case for libgcc files.
5660         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
5661         (__divsi3): Likewise.
5662         (__umodsi3): Likewise.
5663         (__modsi3): Likewise.
5664         * config/xtensa/lib2funcs.S: Fix copyright to include
5665         special case for libgcc files.
5666
5667 2002-03-12  Tom Rix  <trix@redhat.com>
5668
5669         * collect2.c (resolve_lib_name): Move outside of
5670         OBJECT_FORMAT_COFF ifdef.
5671         (ignore_library): Same.
5672
5673 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5674
5675         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
5676
5677 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
5678
5679         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
5680         to function_section before writing out the constant pool.
5681
5682 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
5683
5684         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
5685         zero_constant.
5686         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
5687
5688 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
5689
5690         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
5691         (adddi3): Likewise.
5692         (movdf): Likewise.
5693         (movdi): Likewise.
5694         (cmpsi splitter): Likewise.
5695         (modsi3): Fail if <= 0.
5696         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
5697         redundant test when HOST_BITS_PER_WIDE_INT != 32.
5698         (reg_or_sub_cint64_operand): Likewise.
5699         (num_insns_constant_wide): Optimize sign extension.
5700         (rs6000_legitimize_address): Likewise.
5701
5702 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5703
5704         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5705         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5706
5707 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
5708
5709         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
5710         address calculation.
5711
5712 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
5713
5714         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
5715         scratch register to DImode / TImode.
5716         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
5717         register used does not overlap the target.
5718
5719 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5720
5721         * Makefile.in (debug.o): Depend on debug.h.
5722         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
5723         * debug.c (do_nothing_debug_hooks): Likewise.
5724         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
5725         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
5726         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
5727         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
5728         * dwarfout.c (dwarf_debug_hooks): Likewise.
5729         * integrate.c (output_inline_function): Likewise.
5730         * objc/objc-act.c (synth_module_prologue): Likewise.
5731         * sdbout.c (sdb_debug_hooks): Likewise.
5732         * toplev.c (debug_hooks): Likewise.
5733         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5734
5735 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5736
5737         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
5738         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
5739         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
5740         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
5741         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
5742         * defaults.h (POINTER_SIZE): Define.
5743         * doc/tm.texi (POINTER_SIZE): Document default.
5744
5745 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5746
5747         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
5748
5749 2002-03-11  Richard Henderson  <rth@redhat.com>
5750
5751         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
5752         if rebuild_label_notes_after_reload.
5753
5754 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
5755
5756         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
5757         emit pic register load if "internal" visibility.
5758         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
5759         (cris_expand_builtin_va_arg): Do all computations on trees.
5760
5761 2002-03-11  Richard Henderson  <rth@redhat.com>
5762
5763         * rtlanal.c: Include recog.h.
5764         (keep_with_call_p): Fix thinko.
5765         * Makefile.in (rtlanal.o): Update dependencies.
5766
5767 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
5768
5769         * genflags.c (gen_insn): Use IS_VSPACE.
5770         * genoutput.c (output_insn_data): Likewise.
5771         (process_template): Likewise.
5772
5773 2002-03-11  Richard Henderson  <rth@redhat.com>
5774
5775         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
5776
5777 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5778
5779         * Makefile.in: Update.
5780         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
5781         Update documentation.
5782         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
5783         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
5784
5785 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
5786
5787         * Makefile.in: Give texi2pod its input file as a command line
5788         argument, not on stdin.
5789
5790 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
5791             Daniel Berlin  <dan@dberlin.org>
5792
5793         C++ alias analysis improvement.
5794         * alias.c (record_component_aliases): Record aliases for base
5795         classes too.
5796
5797 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5798
5799         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
5800
5801 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
5802
5803         * toplev.c (vms_fopen): Remove, not needed.
5804
5805         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
5806
5807         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
5808
5809         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
5810         for FP, already done later.
5811
5812         * toplev.c (debug_args): Add entry for VMS_DEBUG.
5813         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
5814
5815 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
5816
5817         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
5818         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
5819         LARGEST_EXPONENT_IS_NORMAL for the given mode.
5820         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
5821         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
5822         (ediv, emul, eldexp, esqrt): Likewise.
5823         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
5824         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
5825         (saturate): New function.
5826         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
5827         (make_nan): Use a saturation value instead of a NaN if
5828         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
5829         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
5830         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
5831         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
5832         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
5833         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
5834         !ROUND_TOWARDS_ZERO.
5835         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
5836         (ROUND_TOWARDS_ZERO): Document.
5837
5838 2002-03-11  Andreas Jaeger  <aj@suse.de>
5839
5840         * cfg.c (dump_flow_info): Remove unused variable.
5841
5842 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
5843
5844         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
5845         computations on trees.
5846
5847 2002-03-10  Richard Henderson  <rth@redhat.com>
5848
5849         PR 5693:
5850         * reload.c (copy_replacements_1): New.
5851         (copy_replacements): Use it to recurse through the rtx.
5852
5853 2002-03-10  Richard Henderson  <rth@redhat.com>
5854
5855         * loop.c (strength_reduce): Compute number of iterations as
5856         unsigned HOST_WIDE_INT.
5857
5858 2002-03-10  Richard Henderson  <rth@redhat.com>
5859
5860         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
5861         to move away from the end of the block.
5862
5863 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5864
5865         PR preprocessor/5899
5866         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
5867
5868 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5869
5870         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
5871
5872         * attribs.c (decl_attributes): Fix signed/unsigned warning.
5873
5874 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
5875
5876         * config/mmix/mmix.c: Improve comments.
5877         (mmix_target_asm_function_prologue): Drop variable
5878         empty_stack_frame.  Don't allocate unused slot above fp.
5879         (mmix_target_asm_function_epilogue): Mirror prologue changes.
5880         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
5881         brace in first column.
5882         (enum reg_class): Ditto.
5883         (FIRST_PARM_OFFSET): Now 0.
5884         (USER_LABEL_PREFIX): Remove #if 0:d definition.
5885
5886 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5887
5888         * combine.c (make_extraction): Fix error in last change.
5889
5890 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5891
5892         * c4x.c (c4x_fp_reglist): Const-ify.
5893         * cris.c (cris_print_operand): Likewise.
5894         * i386.c (ix86_va_arg): Likewise.
5895         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
5896         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
5897         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
5898         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
5899         * mcore.h (regno_reg_class): Likewise.
5900         * mips.c (gen_int_relational): Likewise.
5901         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
5902         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
5903         * pdp11.c (move_costs): Likewise.
5904         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
5905         * s390.c (s390_branch_condition_mnemonic, regclass_map):
5906         Likewise.
5907         * s390.h (regclass_map): Likewise.
5908         * sh.c (shift_amounts): Likewise.
5909         * sh.md (rotlsi3): Likewise.
5910
5911 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5912
5913         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
5914         (ne0+5): Use new clobber to generate proper shift pattern.
5915         Patch by Michael Matz <matz@kde.org>.
5916
5917 2002-03-09  Andreas Schwab  <schwab@suse.de>
5918
5919         * gcc.c (validate_all_switches): Also handle `%W{...}'.
5920
5921 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
5922
5923         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
5924
5925 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
5926
5927         PR middle-end/5877
5928         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
5929         even for non-representable constants.
5930
5931 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5932
5933         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
5934         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
5935         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
5936         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
5937         (pop_function_context): Compute MAY_SHARE parameter for
5938         fixup_var_refs.
5939         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
5940         (gen_mem_addressof): Call fixup_var_refs with new parm.
5941
5942         * combine.c (make_extraction): Don't make extension of CONST_INT.
5943
5944 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5945
5946         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
5947         in o32 and o64 ABIs.
5948         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
5949         but getting fixed-size structs passed in registers regardless of
5950         padding in o32 and o64 ABIs.
5951
5952         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
5953         offset before loading address of argument passed by transparent
5954         reference.
5955
5956 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5957
5958         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
5959
5960 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
5961
5962         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
5963         marker such that registers after it are saved.
5964
5965 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5966
5967         * sparc.c (arith_4096_operand): Fix error in last change.
5968
5969 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
5970
5971         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
5972         defaults for MEABI.
5973
5974 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5975
5976         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
5977         vectors.
5978
5979 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
5980
5981         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
5982
5983 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
5984
5985         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
5986         removed; fix return value.
5987         * combine.c (combine_instructions): Dirtify blocks where we failed to
5988         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
5989         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
5990
5991 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5992
5993         * gcse.c (insert_insn_end_bb): Fix typo in last change.
5994
5995 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
5996
5997         * recog.c (peephole2_optimize): Re-distribute EH edges.
5998
5999 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6000
6001         * expr.c (expand_expr): Use unsave lang hook.
6002         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
6003         (LANG_HOOKS_INITIALIZER): Update.
6004         * langhooks.h (struct lang_hooks): New hook unsave.
6005         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
6006         (unsave_expr_1): Remove unused lang_unsave_expr_now.
6007         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
6008         (unsave_expr_now): Remove.
6009         * tree.h (unsave_expr_now, lang_unsave,
6010         lang_unsave_expr_now): Remove.
6011         (lhd_unsave): New.
6012
6013 2002-03-08  Andreas Jaeger  <aj@suse.de>
6014
6015         * flow.c (propagate_block_delete_insn): Remove unused variable.
6016
6017 2002-03-08  Kazu Hirata  <kazu@hxi.com>
6018
6019         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
6020         insn length for memory load/store.
6021
6022 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
6023
6024         * doc/install.texi (--with-libiconv-prefix): Document.
6025
6026 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
6027
6028         * doc/sourcebuild.texi: Fix typo.
6029
6030 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
6031
6032         PR c/3711
6033         * builtins.c (std_expand_builtin_va_arg): Do all computations on
6034         trees.
6035
6036 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6037
6038         * rtl.c (copy_most_rtx): Move from here ...
6039         * emit-rtl.c (copy_most_rtx): ... to here.
6040
6041 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
6042
6043         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
6044         SUBTARGET_CPP_SIZE_SPEC.
6045         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
6046
6047         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
6048
6049 2002-03-07  Matt Hiller  <hiller@redhat.com>
6050
6051         * gensupport.c (first_dir_md_include): Renamed from include;
6052         change all references.
6053         (last_dir_md_include): Renamed from last_include; change all
6054         references.
6055         (init_md_reader): Unconditionally initialize base_dir whether or
6056         not filename is a relative path.
6057
6058 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
6059
6060         * config/fp-bit.c (_unord_f2): Compile it in even if
6061         US_SOFTWARE_GOFAST is enabled.
6062
6063         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
6064         NULL_RTX.  Set all HFmode operations as NULL_RTX.
6065         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
6066         NULL_RTX, try reversing the comparison and the operands.
6067
6068 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6069
6070         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
6071         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
6072         and MATCH_OP_DUP.
6073
6074 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
6075
6076         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
6077
6078 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6079
6080         * basic-block.h (fixup_abnormal_edges): Declare.
6081         * reload1.c (fixup_abnormal_edges): New function.
6082         * reg-stack.c (convert_regs): Use it.
6083
6084         * gcse.c (insert_insn_end_bb): Handle trapping insns.
6085
6086         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
6087
6088 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
6089
6090         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
6091         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
6092         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
6093         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
6094         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
6095         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
6096         unless x and y could be infinite.
6097         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
6098         Check that the common type of both arguments is a real, even for
6099         targets without unordered comparisons.  Allow an integer argument
6100         to be compared against a real.
6101         (expand_tree_builtin): Use expand_unordered_cmp.
6102         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
6103         * cse.c (fold_rtx): Likewise.  Fix indentation.
6104         * fold-const.c (fold_real_zero_addition_p): New.
6105         (fold): Use it, and the new HONOR_... macros.
6106         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
6107         * jump.c (reversed_comparison_code_parts): After searching for
6108         the true comparison mode, use HONOR_NANS to decide whether it
6109         can be safely reversed.
6110         (reverse_condition_maybe_unordered): Remove IEEE check.
6111         * simplify-rtx.c (simplify_binary_operation): Use the new macros
6112         to decide which simplifications are valid.  Allow the following
6113         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
6114         and (a - -b) to (a + b).
6115         (simplify_relational_operation): Use HONOR_NANS.
6116         * doc/tm.texi: Document the MODE_HAS_... macros.
6117
6118 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
6119
6120         * combine.c (simplify_comparison): If simplifying a logical shift
6121         right and compare with constant, force the comparison to unsigned.
6122
6123 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
6124
6125         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
6126
6127         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
6128         -mabi=no-altivec
6129         (alt_reg_names): Remove % for vrsave.
6130
6131 2002-03-06  Richard Henderson  <rth@redhat.com>
6132
6133         PR optimization/5844
6134         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
6135         if used indicates we've already emitted one copy of an operand.
6136         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
6137         (gen_split): Supply a non-null used.
6138
6139 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6140
6141         * reload1.c (reload): Unshare all rtl after reload is done.
6142
6143         * simplify-rtx.c (simplify_plus_minus): Do not abort,
6144         but simply fail if the expression is too complex to simplify.
6145         (simplify_gen_binary): Handle simplify_plus_minus failures.
6146
6147 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
6148
6149         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
6150         consistently call delete_trivially_dead_insns after CSE and GCSE;
6151         fix DFI_life dumping; do jump threading after liveness; do crossjumping
6152         after liveness2; update comment in last crossjumping.
6153         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
6154
6155 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
6156
6157         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
6158         after completing fast dead code elimination.
6159
6160         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
6161         COMPARE operator.
6162
6163 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
6164
6165         * version.c:  Fix misplaced leading blanks on first line.
6166
6167 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
6168
6169         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
6170
6171 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
6172
6173         * cfgcleanup.c (mentions_nonequal_regs): New function.
6174         (thread_jump): Use it.
6175         * toplev.c (rest_of_compilation): Run jump threading after
6176         liveness.
6177
6178 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
6179
6180         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
6181         patch.
6182
6183 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6184
6185         * predict.c (estimate_bb_frequencies): Do not reload the
6186         frequencies from notes.
6187
6188 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
6189
6190         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
6191         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
6192
6193         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
6194         delete_noop_moves): Return indeger.
6195         * flow.c (ndead): New variable.
6196         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
6197         BB argument; update callers.
6198         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
6199         (life_analysis): Do not call purge_all_dead_edges.
6200         (update_life_info): Return number of deleted insns; print statistics.
6201         (update_life_info_in_dirty_blocks): likewise.
6202         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
6203         return number of insns deleted.
6204
6205         * cse.c: Include timevar.h
6206         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
6207         iterate until stabilizes; print statistics; return number of killed
6208         insns.
6209         * Makefile.in: (cse.o): Add timevar.h dependency
6210         * rtl.h (delete_trivially_dead_insns): New.
6211         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
6212         * toplev.c (rest_of_compilation): Update callers.
6213
6214         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
6215         (try_optimize_cfg): Do not update liveness.
6216         (cleanup-cfg): Loop until try_optimize_cfg and dead code
6217         removal stabilizes; use delete_trivially_dead_insns.
6218
6219         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
6220
6221 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
6222
6223         * cppmain.c (setup_callbacks): Disable #pragma and #ident
6224         callbacks when processing assembly language.
6225
6226 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6227
6228         * pa.h (ASM_FILE_END): Define.
6229         * som.h (ASM_FILE_END): Delete.
6230
6231         * pa.c (function_arg): Don't pass floats in general registers in
6232         indirect calls if TARGET_ELF32.
6233
6234 2002-03-05  Richard Henderson  <rth@redhat.com>
6235
6236         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
6237
6238 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
6239
6240         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
6241
6242 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6243
6244         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
6245         -r command line.  Don't hide any symbols if not building
6246         shared libgcc.
6247
6248 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
6249
6250         * cfg.c (dump_flow_info): Warn about profile mismatches.
6251         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
6252         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
6253
6254 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6255
6256         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
6257         wide volatile memory by parts.
6258
6259 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
6260
6261         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
6262         is NULL.
6263
6264 2002-03-05  Richard Henderson  <rth@redhat.com>
6265
6266         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
6267
6268 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6269
6270         * toplev.c (documented_lang_options): Document more
6271         language-specific options.
6272         * doc/invoke.texi (Warning Options): Correct documentation for
6273         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
6274         * c-decl.c (c_decode_option): Use a table to handle warning options.
6275
6276 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
6277
6278         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
6279         parameter to mmix_encode_section_info.
6280         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
6281         relocatably.  Always produce ELF, not mmo if linking relocatably.
6282         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
6283         first is non-zero, don't add symbol prefix.
6284         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
6285         prototype accordingly.
6286
6287 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
6288
6289         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
6290
6291 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
6292
6293         * configure.in: Increase required makeinfo version to 4.1.
6294         * configure: Regenerate.
6295
6296 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
6297
6298         * .cvsignore: Remove *.info* and genrtl*; these files are generated
6299         elsewhere now.
6300
6301 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
6302
6303         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
6304         * doc/invoke.texi: Fix @math uses.
6305
6306 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
6307
6308         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
6309         removal
6310
6311 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
6312
6313         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
6314         (powerpc-*-eabisimaltivec*): Same.
6315
6316         * config/rs6000/t-ppcendian: New.
6317
6318 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6319
6320         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
6321         nonimmediate_src_operand and nonimmediate_lsrc_operand to
6322         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
6323
6324 2002-03-03  Richard Henderson  <rth@redhat.com>
6325
6326         * toplev.c (rest_of_decl_compilation): Revert last two changes.
6327
6328 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
6329
6330         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
6331         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
6332         tree.c, config/m68k/m68k.c:
6333         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
6334         REAL_ARITHMETIC blocks unconditional.  Delete some further
6335         #ifdef blocks predicated on REAL_ARITHMETIC.
6336         * flags.h, toplev.c: Delete remaining references to
6337         flag_pretend_float.
6338
6339         * doc/invoke.texi: Remove documentation of -fpretend-float.
6340         * doc/tm.texi: Describe the various REAL_* macros as provided by
6341         real.h, not by the target configuration files.
6342
6343         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
6344         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
6345         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
6346         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
6347         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
6348         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
6349         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
6350         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
6351         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6352         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
6353         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
6354         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
6355         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
6356         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
6357         config/xtensa/xtensa.h:
6358         Do not define, undefine, or mention in comments any of
6359         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
6360         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
6361         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
6362         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
6363         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
6364         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
6365         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
6366         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
6367         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
6368
6369 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6370
6371         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
6372         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
6373         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
6374         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
6375         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
6376         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
6377         Delete.
6378         * defaults.h (BITS_PER_WORD): Define.
6379         * doc/tm.texi (BITS_PER_WORD): Document default value.
6380
6381         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
6382         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
6383         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
6384
6385 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6386
6387         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
6388         lieu of explicit sizeof/sizeof.
6389         * i386.c (override_options, ix86_init_mmx_sse_builtins,
6390         ix86_expand_builtin): Likewise.
6391         * mips.c (mips_add_gc_roots): Likewise.
6392         * mmix.c (mmix_output_condition): Likewise.
6393         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
6394         altivec_init_builtins): Likewise.
6395         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
6396         * cppexp.c (Nsuff, parse_number): Likewise.
6397         * cppinit.c (builtin_array_end): Likewise.
6398         * gcc.c (n_default_compilers, process_command): Likewise.
6399         * genpreds.c (output_predicate_decls): Likewise.
6400         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
6401         * lcm.c (N_ENTITIES): Likewise.
6402         * stor-layout.c (set_sizetype): Likewise.
6403
6404 2002-03-03  Richard Henderson  <rth@redhat.com>
6405
6406         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
6407         for types or labels.
6408
6409 2002-03-03  Richard Henderson  <rth@redhat.com>
6410
6411         * c-decl.c (start_decl): Initialized variables are not common.
6412
6413 2002-03-02  Per Bothner  <per@bothner.com>
6414
6415         * gcc.c (option_map):  Suport new --bootclasspath option.
6416         --CLASSPATH is now just an alias for --classpath.
6417
6418 2002-03-02  Richard Henderson  <rth@redhat.com>
6419
6420         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
6421         load if "internal" visibility.
6422         * doc/extend.texi: Document visibility meanings.
6423
6424 2002-03-02  Richard Henderson  <rth@redhat.com>
6425
6426         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
6427         to functions as well.
6428
6429 2002-03-02  Richard Henderson  <rth@redhat.com>
6430
6431         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
6432         (handle_visibility_attribute): Don't call assemble_visibility.
6433         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
6434         without asmspec.  Invoke assemble_alias when needed.
6435         * varasm.c (maybe_assemble_visibility): New.
6436         (assemble_start_function, assemble_variable, assemble_alias): Use it.
6437
6438 2002-03-02  Richard Henderson  <rth@redhat.com>
6439
6440         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
6441         invoke ENCODE_SECTION_INFO with first call flag.
6442
6443         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
6444         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
6445         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
6446         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
6447         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
6448         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
6449         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
6450         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
6451         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
6452         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
6453         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6454         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
6455         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
6456         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
6457         config/mcore/mcore-protos.h, config/mcore/mcore.c,
6458         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
6459         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
6460         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6461         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
6462         config/sh/sh.h, config/sparc/sparc.h,
6463         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
6464         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
6465         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
6466         FIRST argument.  As needed, examine it and do nothing.
6467
6468         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
6469         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
6470         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
6471
6472         * config/arm/t-pe (pe.o): Add dependencies.
6473
6474 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6475
6476         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
6477         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
6478         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
6479         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
6480         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
6481         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
6482         * defaults.h (BITS_PER_UNIT): Define.
6483         * doc/tm.texi (BITS_PER_UNIT): Document default value.
6484
6485 2002-03-02  Kazu Hirata  <kazu@hxi.com>
6486
6487         * config/h8300/h8300-protos.h: Add a prototype for
6488         compute_a_shift_length.
6489         * config/h8300/h8300.c (h8300_asm_insn_count): New.
6490         (compute_a_shift_length): Likewise.
6491         (h8300_adjust_insn_length): Do not adjust insn length of shift
6492         insns.
6493         * config/h8300/h8300.md (anonymous shift patterns): Use
6494         compute_a_shift_length.
6495
6496 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6497
6498         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
6499         trunc_int_for_mode.
6500
6501         * emit-rtl.c (offset_address): Call update_temp_slot_address.
6502
6503 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6504
6505         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
6506         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
6507         * flags.h (flag_zero_initialized_in_bss): Declare.
6508         * toplev.c (flag_zero_initialized_in_bss): New flag.
6509         (lang_independent_options): Add flag_zero_initialized_in_bss.
6510         * tree.c (initializer_zerop): New function.
6511         * tree.h (initializer_zerop): Declare.
6512         * varasm.c (assemble_variable): If we can emit bss, put zero
6513         initializers in the bss section.
6514
6515 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
6516
6517         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
6518         like more than one symbol per .weak directive.
6519
6520 2002-03-01  Richard Henderson  <rth@redhat.com>
6521
6522         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
6523         adjust argument_pointer by pretend_args_size.
6524         (ia64_va_start): Adjust va_start address by -pretend_args_size.
6525
6526 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6527
6528         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
6529
6530 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
6531
6532         * toplev.c (rest_of_compilation): Delete dead jumptables before
6533         loop.
6534         * flow.c (delete_dead_jumptables): Make global.
6535         * rtl.h (delete_dead_jumptables): Declare.
6536
6537 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
6538
6539         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
6540         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
6541         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
6542
6543 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6544
6545         * config/h8300/h8300-protos.h: Fix formatting.
6546         * config/h8300/h8300.c: Likewise.
6547         * config/h8300/h8300.h: Likewise.
6548
6549 2002-03-01  Kazu Hirata  <kazu@hxi.com>
6550
6551         * config/h8300/h8300.c (print_operand): Support 16-bit
6552         constant addresses.
6553         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
6554
6555 2002-02-28  Richard Henderson  <rth@redhat.com>
6556
6557         * expmed.c (store_bit_field): Prevent generation of CONCATs;
6558         pun complex values as integers; use gen_lowpart instead of
6559         gen_rtx_SUBREG.
6560         (extract_bit_field): Likewise.
6561
6562 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
6563             David Edelsohn  <edelsohn@gnu.org>
6564
6565         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
6566         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
6567         (SUPPORTS_WEAK): Likewise.
6568         * output.h (add_weak): Add tree param.
6569         * varasm.c (add_weak): Likewise.  Save decl.
6570         (struct weak_syms): Add decl field.
6571         (mark_weak_decls): New function.
6572         (init_varasm_once): ggc_add_root mark_weak_decls.
6573         (assemble_start_function): Use ASM_WEAKEN_DECL.
6574         (assemble_variable): Likewise.
6575         (assemble_alias): Likewise.
6576         (declare_weak): Pass decl to add_weak.
6577         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
6578         (remove_from_pending_weak_list): Declare and define for
6579         ASM_WEAKEN_DECL.
6580         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
6581         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
6582         * defaults.h (SUPPORTS_WEAK): Likewise.
6583         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6584         .weak for code sym.  Do emit .size for descriptor sym.
6585         (ASM_DECLARE_FUNCTION_SIZE): Define.
6586         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
6587         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
6588         .lglobl unless TARGET_XCOFF.  Formatting fixes.
6589         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
6590         .weak for code sym.
6591         (HANDLE_PRAGMA_WEAK): Remove.
6592         (ASM_WEAKEN_LABEL): Remove.
6593         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
6594
6595 2002-03-01  Jason Merrill  <jason@redhat.com>
6596
6597         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
6598         (TARGET_EXPR_CLEANUP): New macro.
6599
6600 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
6601
6602         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
6603         to take ptr_extend into account as third type of extension.
6604         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
6605         fields used by SUBREG_PROMOTED_UNSIGNED_P.
6606         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
6607         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
6608         * calls.c (precompute_arguments): Use new macro.
6609         (expand_call): Ditto.
6610         * combine.c (nonzero_bits): Ditto.
6611         (record_promoted_value): Ditto.
6612         * expr.c (store_expr): Ditto.
6613         (expand_expr): Ditto.
6614         * function.c (assign_parms): Ditto.
6615
6616 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
6617
6618         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
6619         override -shared and -shared-libgcc.
6620
6621 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
6622
6623         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
6624         of "ultrasparc".
6625         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
6626         to be broken.
6627
6628 2002-02-28  Richard Henderson  <rth@redhat.com>
6629
6630         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
6631         4 cycle latency from MM producers.
6632         (ia64_internal_sched_reorder): Likewise with pipeline flush.
6633
6634 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
6635
6636         * mklibgcc.in: Don't use GNU make extension.
6637
6638 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6639
6640         * c-parse.in (STATIC): New terminal.
6641         (scspec): New non-terminal.  Update productions accordingly.
6642         (program): Remove bogus ifc / end ifc.
6643         (array_declarator): Simplify production using STATIC.
6644
6645 2002-02-28  Jim Meyering  <meyering@lucent.com>
6646
6647         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
6648         \a still means TARGET_BELL.
6649
6650 2002-02-28  Richard Henderson  <rth@redhat.com>
6651
6652         * haifa-sched.c (sched_emit_insn): New.
6653         (schedule_block): Use last_scheduled_insn to track last insn.
6654         * sched-int.h (sched_emit_insn): Prototype.
6655         * config/ia64/ia64.c (last_issued): Remove.
6656         (ia64_variable_issue): Don't set it.
6657         (nop_cycles_until): Use sched_emit_insn.
6658
6659 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
6660
6661         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
6662         extended constants.
6663
6664 2002-02-28  Kazu Hirata  <kazu@hxi.com>
6665
6666         * config/h8300/h8300.c: Fix formatting.
6667         * config/h8300/h8300.h: Likewise.
6668
6669 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6670
6671         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
6672         which may overwrite the high byte of the frame pointer.
6673
6674 2002-02-28  Bo Thorsen  <bo@suse.de>
6675
6676         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
6677         (STARTFILE_SPEC): Add 64 bit files.
6678         (ENDFILE_SPEC): Likewise.
6679
6680 2002-02-28  Jason Merrill  <jason@redhat.com>
6681
6682         * c-decl.c (finish_function): Only warn about missing return
6683         statement with -Wreturn-type.
6684
6685 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
6686
6687         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
6688
6689         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
6690         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
6691
6692 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6693
6694         * basic-block.h (BB_REACHABLE): Renumber.
6695         (BB_DIRTY, BB_NEW): New flags.
6696         (clear_bb_flags): Declare.
6697         (update_life_info_in_dirty_blocks): Declare.
6698         * cfg.c (clear_bb_flags): New function.
6699         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
6700         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
6701         reorder_insns, emit_insn_after): Mark block as dirty.
6702         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
6703         (update_life_info_in_dirty_blocks): New function.
6704         * recog.c (apply_change_group): Dirtify block.
6705
6706         * cse.c (cse_insn): Reorder emitting of jump insn to keep
6707         cfg consistent.
6708         * gcse.c (delete_null_pointer_checks): Likewise.
6709
6710         * toplev.c (dump_file_index): Move cse2 after bp,
6711         add DFI_null
6712         (dump_file_info): Similary.
6713         (rest_of_compilation): Avoid most of CFG rebuilds;
6714         do first if converision after null pointer checks, do cse2
6715         after branch prediction; avoid full liveness rebuild after
6716         initializing subregs.
6717         * invoke.texi (-d options): Document -du, renumber.
6718
6719         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
6720         (notice_new_block): Do not set BB_UPDATE_LIFE.
6721         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
6722          merge_blocks_move_successor_nojumps, merge_blocks,
6723          try_crossjump_to_edge): Likewise.
6724         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
6725         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
6726         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
6727         (merge_of_block): Do not use life_data_ok.
6728         (find_if_case_1): Do not use SET_UPDATE_LIFE.
6729         (if_convert): Use BB_DIRTY mechanizm to update life.
6730         * lcm.c (optimize_mode_switching): Update
6731         update_life_info_in_dirty_blocks
6732
6733 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
6734
6735         * Makefile.in (integrate.o): Update.
6736         * c-decl.c (copy_lang_decl): Rename.
6737         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6738         * integrate.c: Include langhooks.h.
6739         (copy_decl_for_inlining): Update to use langhook.
6740         * langhooks-def.h (lhd_do_nothing_t,
6741         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
6742         (LANG_HOOKS_INITIALIZER): Update.
6743         * langhooks.c (lhd_do_nothing_t): New.
6744         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
6745         * tree.h (copy_lang_decl): Remove.
6746 objc:
6747         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
6748
6749 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
6750
6751         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
6752         POST_DEC, and POST_MODIFY.
6753
6754 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6755
6756         * c-typeck.c (digest_init): Remove unused parameter; all
6757         callers changed.
6758
6759 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
6760
6761         * expmed.c (expand_shift): Correctly test for low part of a
6762         subreg.
6763
6764 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
6765
6766         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
6767         insn UIDs with insn addresses.
6768
6769 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6770
6771         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
6772         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
6773         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
6774         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
6775         gcc.c, toplev.c: Delete code implementing -traditional mode.
6776
6777         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
6778         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
6779         Document removal of -traditional mode for compilation, and
6780         remove documentation only relevant to that mode.
6781
6782         * config/nextstep.h, config/ptx4.h, config/svr4.h,
6783         config/convex/convex.h, config/d30v/d30v.h,
6784         config/i386/dgux.h, config/i386/osf1elf.h,
6785         config/i386/osfelf.h, config/i386/osfrose.h,
6786         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
6787         config/m68k/hp310.h, config/m88k/dgux.h,
6788         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
6789         config/m88k/m88k.h, config/m88k/openbsd.h,
6790         config/mips/abi64.h, config/mips/osfrose.h,
6791         config/mips/svr4-5.h, config/mips/svr4-t.h,
6792         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6793         config/stormy16/stormy16.h: Remove all references to
6794         -traditional from target specs.  Delete all mention of the
6795         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
6796         delete a couple of commented-out definitions of
6797         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
6798         to -traditional.
6799
6800         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
6801         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
6802
6803 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
6804
6805         * mklibgcc.in: Don't use \n in a line subject to
6806         interpretation by echo.
6807
6808 2002-02-27  Graham Stott  <grahams@redhat.com>
6809
6810         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
6811         Constify NAME.
6812
6813         * loop.c (prescan_loop): Handle PARALLEL.
6814
6815         * unroll.c (loop_iterations): Return 0 if the add_val for
6816         a BIV is REG.
6817
6818         * final.c (output_operand_lossage): Constify PFX_STR.
6819
6820         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
6821
6822 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
6823
6824         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
6825         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
6826
6827 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
6828
6829         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6830
6831 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
6832
6833         * cpplex.c (_cpp_lex_token): Handle directives in macro
6834         arguments.
6835         * cpplib.c (_cpp_handle_directive): Save and restore state
6836         if parsing macro args when entering a directive.
6837         * cppmacro.c (collect_args): No need to handle directives
6838         in macro arguments.
6839         (enter_macro_context, replace_args): Use the original macro
6840         definition in case it was redefined whilst collecting arguments.
6841 doc:
6842         * cpp.texi: Update.
6843
6844 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
6845
6846         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
6847         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
6848         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
6849         method on AIX.
6850         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
6851         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
6852         (load_toc_v4_PIC_2): Same.
6853
6854 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
6855
6856         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
6857
6858 2002-02-26  Richard Henderson  <rth@redhat.com>
6859
6860         * config/alpha/alpha.md (ashldi_se): Re-enable.
6861
6862 2002-02-26  Richard Henderson  <rth@redhat.com>
6863
6864         * config/alpha/alpha.c (alpha_encode_section_info): Examine
6865         MODULE_LOCAL_P; improve commentary.
6866
6867 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
6868
6869         * doc/cpp.texi: Clarify documentation of relationship between
6870         #line and #include.
6871
6872 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6873
6874         * config/h8300/h8300-protos.h: Update the prototype for
6875         compute_logical_op_length.  Add the prototype for
6876         compute_logical_op_cc.
6877         * config/h8300/h8300.c (compute_logical_op_length): Figure out
6878         code from operands.
6879         (compute_logical_op_cc): New.
6880         * config/h8300/h8300.md: Combine all the logical op patterns
6881         in HImode and SImode.  Use compute_logical_op_cc.
6882
6883 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
6884
6885         * config/i386/i386.c (print_operand): Don't append ATT-style
6886         length suffixs to x87 opcodes when in Intel mode.
6887
6888 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
6889
6890         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
6891         (init_emit_once): Update calls.
6892         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
6893         (init_syntax_once): Prototype.
6894
6895 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6896
6897         * pa-linux.h (LIB_SPEC): Update definition.
6898         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
6899
6900 2002-02-26  Richard Henderson  <rth@redhat.com>
6901
6902         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
6903         if we emitted a stop bit.
6904
6905 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6906
6907         * configure.in (libgcc_visibility): Substitute.
6908         * configure: Rebuilt.
6909         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
6910         defined symbols .hidden.
6911
6912 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6913
6914         * attribs.c (c_common_attribute_table): Add visibility.
6915         (handle_visibility_attribute): New function.
6916         * varasm.c (assemble_visibility): New function.
6917         * output.h (assemble_visibility): Add prototype.
6918         * tree.h (MODULE_LOCAL_P): Define.
6919         * crtstuff.c (__dso_handle): Use visibility attribute.
6920         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
6921         for MODULE_LOCAL_P symbols too.
6922         * config/ia64/ia64.c (ia64_encode_section_info): Handle
6923         MODULE_LOCAL_P symbols the same way as local symbols.
6924         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
6925         into .sdata/.sbss by the user.
6926         * doc/extend.texi (Function Attributes): Document visibility
6927         attribute.
6928
6929 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
6930
6931         PR debug/5770
6932         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
6933         STRING_CST initializer spanning the whole variable without
6934         embedded zeros.
6935         If expand_expr returned MEM, don't use it.
6936
6937 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
6938
6939         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
6940         generate a die for the lexical block.
6941
6942 2002-02-26  Kazu Hirata  <kazu@hxi.com>
6943
6944         * config/h8300/h8300-protos.h: Add a prototype for
6945         compute_logical_op_length.
6946         * config/h8300/h8300.c (compute_logical_op_length): New.
6947         * config/h8300/h8300.md (anonymous logical patterns): Use
6948         compute_logical_op_length for length.
6949
6950 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6951
6952         * dwarf2out.c (modified_type_die): Do not call type_main_variant
6953         for vectors.
6954         (gen_type_die): Same.
6955
6956         * attribs.c (handle_vector_size_attribute): Set debug information.
6957
6958 2002-02-26  Daniel Egger  <degger@fhm.edu>
6959
6960         * config/rs6000/rs6000.md: Swap define_insn attributes to
6961         fix incorrect generation of merge high instructions instead
6962         of merge low.
6963
6964 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6965
6966         * c-typeck.c (really_start_incremental_init): Use
6967         bitsize_zero_node for vectors.
6968
6969 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
6970
6971         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
6972         ("*set_vrsave_internal"): Same.
6973
6974 2002-02-25  Richard Henderson  <rth@redhat.com>
6975
6976         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
6977         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
6978
6979 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
6980
6981         PR target/5755
6982         * config/i386/i386.c (ix86_return_pops_args): Only pop
6983         fake structure return argument if it was passed on the stack.
6984
6985 2002-02-25  Jason Merrill  <jason@redhat.com>
6986
6987         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
6988         RESULT_DECL.
6989
6990 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
6991
6992         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
6993         link with shared_name only.
6994         * doc/invoke.texi (Link Options): Document new behavior.
6995
6996 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
6997
6998         * c-typeck.c (push_init_level): Handle vectors.
6999
7000 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
7001
7002         * config/sparc/sparc.c (const64_high_operand): Zero-extend
7003         operands of SPARC_SETHI_P.
7004         (input_operand): Likewise.
7005         (sparc_emit_set_const32): Likewise.
7006         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
7007         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
7008         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
7009         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
7010         (movdi_insn_sp64_vis): Likewise.
7011         (movdi split, movdf split): Use SETHI32.
7012         * doc/md.texi: Document SPARC constraints L, M and N.
7013
7014 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
7015
7016         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
7017         ("*set_vrsave_internal"): use mfspr for Darwin.
7018
7019         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
7020         gen_get_vrsave_internal.
7021
7022 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7023
7024         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
7025
7026 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7027
7028         * cpplex.c (cpp_interpret_charconst): Get signedness or
7029         otherwise of wide character constants correct.
7030         * cppexp.c (lex): Get signedness of wide charconsts correct.
7031
7032 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7033
7034         * optabs.c (widen_operand): Only call convert_modes for
7035         promoted SUBREG if signedness matches.
7036         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
7037
7038 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7039
7040         * cpplib.c (glue_header_name): Use local buffer to build up
7041         header name.
7042
7043 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7044
7045         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
7046
7047 2002-02-23  Kazu Hirata  <kazu@hxi.com>
7048
7049         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
7050         H8/300[HS] separately.
7051         * config/h8300/h8300.md: Remove the early clobber constraint
7052         from bit field patterns.
7053
7054 2002-02-23  Kazu Hirata  <kazu@hxi.com>
7055
7056         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
7057         register_operand.
7058         (mulhisi3): Likewise.
7059         (umulqisi3): Likewise.
7060         (umulhisi3): Likewise.
7061
7062 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
7063
7064         * cppinit.c (output_deps): Correct test for stdout output.
7065         (init_dependency_output): Cure warning.
7066
7067 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7068
7069         * expr.c (store_expr): When converting expression to promoted
7070         equivalent type, allow using SUBREG_REG of TARGET as the target
7071         of the expansion of EXP.
7072         * loop.c (basic_induction_var, case SUBREG): Always look inside.
7073         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
7074         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
7075         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
7076         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
7077
7078 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
7079
7080         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
7081         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
7082         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
7083
7084 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
7085
7086         PR optimization/5747
7087         * loop.c (scan_loop): Update reg info if move_movables created new
7088         pseudos.
7089
7090 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
7091
7092         * gcc.c (init_gcc_spec): Revert last change.
7093
7094 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
7095
7096         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
7097         gpc_reg_operand constraint.
7098
7099 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
7100
7101         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
7102         Simplify comparison of `low'.
7103         (add_operand): Fix formatting.
7104         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
7105         (mask_operand): Disallow mask to wrap in 64-bit mode.
7106         (rs6000_stack_info): Remove redundant test setting push_p.
7107         (output_toc): Fix formatting.
7108         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
7109         cc_reg_not_cr0_operand constraint.
7110         (booldi3, boolcdi3 splitters): Same.
7111
7112 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
7113
7114         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
7115
7116 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
7117
7118         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
7119         gcc invoked with -shared-libgcc.
7120
7121 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
7122
7123         PR c++/5748
7124         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
7125         decl if any of elements was TREE_USED.
7126
7127 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
7128
7129         * config/sparc/sol2.h: Don't include sys/mman.h.
7130         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
7131         (arith_4096_operand): Don't throw high bits away.
7132         (const64_operand): Take sign extension of CONST_INTs into account.
7133         (const64_high_operand, sparc_emit_set_const32): Likewise.
7134         (GEN_HIGHINT64): Likewise.
7135         (sparc_emit_set_const64_quick1): Likewise.
7136         (const64_is_2insns): Likewise.
7137         (print_operand): Use trunc_int_for_mode for sign extension.
7138         * config/sparc/sparc.h (SMALL_INT32): Likewise.
7139         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
7140         chars.  Assume CONST_INT is already properly sign-extended.
7141         (movdi split): Sign-extend each SImode part.
7142         (andsi3 split): Don't mask high bits off, so that result
7143         remains properly sign-extend.
7144         (iorsi3 split): Likewise.
7145         (xorsi3 split): Likewise.
7146
7147 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
7148
7149         * fold-const.c (fold): Fix typo in comments.
7150
7151 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
7152
7153         * Makefile.in (langhooks.o): Update dependencies.
7154
7155 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
7156
7157         * langhooks.c: Include flags.h.
7158
7159 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
7160
7161         * testsuite/gcc.dg/attr-alwaysinline.c: New.
7162
7163         * c-common.c (c_common_post_options): Set inline trees by
7164         default.
7165
7166         * doc/extend.texi (Function Attributes): Document always_inline
7167         attribute.
7168         Update documentation about inlining when not optimizing.
7169
7170         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
7171
7172         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
7173         unless DECL_ALWAYS_INLINE.
7174
7175         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
7176         unless DECL_ALWAYS_INLINE.
7177         (c_disregard_inline_limits): Disregard if always_inline set.
7178
7179         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
7180         Disregard if always_inline set.
7181         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
7182         unless DECL_ALWAYS_INLINE.
7183
7184         * attribs.c (handle_always_inline_attribute): New.
7185         (c_common_attribute_table): Add always_inline.
7186
7187         * config/rs6000/altivec.h: Add prototypes for builtins
7188         requiring the always_inline attribute.
7189
7190 2002-02-21  Eric Christopher  <echristo@redhat.com>
7191
7192         * expmed.c (store_bit_field): Try to simplify the subreg
7193         before generating a new one when when the mode size of
7194         value is less than maxmode.
7195
7196 2002-02-21  Richard Henderson  <rth@redhat.com>
7197
7198         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
7199         than gen_rtx_PLUS to form the sum.
7200         * explow.c (force_reg): Rearrange to not allocate new pseudo
7201         when force_operand returns a register.
7202         * expr.c (expand_assignment): Allow offset_rtx expansion to
7203         return a sum.  Do not force addresses into registers.
7204         (expand_expr): Likewise.
7205         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
7206         to canonicalize arithmetic that didn't simpify.
7207         (simplify_plus_minus): New argument force; update
7208         all callers.  Don't split CONST unless we can do something with it,
7209         and wouldn't lose the constness of the operands.
7210
7211         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
7212         that we generated earlier.
7213
7214 2002-02-21  Tom Tromey  <tromey@redhat.com>
7215
7216         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7217         (output_line_info): Use constant `1', with a long explanatory
7218         comment.
7219         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
7220
7221 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
7222
7223         * jump.c (redirect_jump): If old label has no UID, don't try to
7224         delete it.
7225
7226 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
7227
7228         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
7229         If input is constant, do shifts at compile time.
7230
7231 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
7232
7233         * doc/extend.texi: Fix some more overfull hboxes.
7234
7235 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7236
7237         PR optimization/4994
7238         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
7239         register moves.
7240
7241 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7242
7243         PR c++/4574
7244         * expr.h (expand_and): Add mode argument.
7245         * expmed.c (expand_and): Add mode argument.
7246         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
7247         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
7248         * except.c (expand_builtin_extract_return_addr): Likewise.
7249         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7250         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
7251         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
7252         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
7253         * config/c4x/c4x.md: Use GEN_INT (x) instead of
7254         gen_rtx (CONST_INT, VOIDmode, x).
7255
7256 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
7257
7258         PR c/4697:
7259         * stmt.c (warn_if_unused_value): Move side effects test once more.
7260
7261 2002-02-20  Torbjorn Granlund  <tege@swox.com>
7262
7263         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
7264         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
7265
7266 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
7267
7268         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
7269         SUBREG or ZERO_EXTEND.
7270
7271 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
7272
7273         * sh.h (current_function_anonymous_args): Remove.
7274         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
7275         of current_function_varargs and current_function_stdarg is set.
7276         * sh.c (sh_expand_prologue): Check current_function_varargs /
7277         current_function_stdarg / TARGET_SH5 instead of
7278         current_function_anonymous_args.
7279
7280         * sh64.h (TARGET_VERSION): Define.
7281
7282 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
7283
7284         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
7285         VRSAVE_REGNO on TARGET_ALTIVEC.
7286
7287 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
7288
7289         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
7290         bits of SImode const_int.
7291         (includes_rshift_p): Likewise.
7292         (print_operand): Call mask_operand and mask64_operand with correct
7293         mode.
7294         (rs6000_output_function_epilogue): Pad traceback table to word.
7295         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
7296         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
7297         mask64_operand with correct mode.
7298         (FUNCTION_ARG_REGNO_P): Correct parentheses.
7299
7300 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7301
7302         PR debug/4461
7303         * varasm.c (get_pool_constant_mark): New.
7304         * rtl.h (get_pool_constant_mark): Add prototype.
7305         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
7306         be represented if it has not been output.
7307
7308 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7309
7310         * combine.c (do_SUBST): Sanity check substitutions of
7311         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
7312         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
7313         CONST_INT into its operand.
7314         (known_cond): Likewise, for ZERO_EXTEND.
7315         * simplify-rtx.c (simplify_unary_operation): Fix condition to
7316         allow for simplification of wide modes.  Reject CONST_INTs in
7317         ZERO_EXTEND when their actual mode is not given.
7318
7319 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
7320
7321         * c-decl.c (pushdecl): If no global declaration is found for an
7322         extern declaration in block scope, try a limbo one.
7323
7324 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7325
7326         PR c++/4401
7327         * c-common.c (pointer_int_sum): Moved from...
7328         * c-typeck.c (pointer_int_sum): ...here.
7329         * c-common.h (pointer_int_sum): Add prototype.
7330
7331 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
7332
7333         PR c++/5713
7334         * c-decl.c (duplicate_decls): Return 0 if issued error about
7335         redeclaration.
7336
7337 2002-02-20  Roger Sayle  <roger@eyesopen.com>
7338             Jakub Jelinek  <jakub@redhat.com>
7339
7340         PR c/4389
7341         * tree.c (host_integerp): Ensure that the constant integer is
7342         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
7343         when pos is zero or non-zero respectively.  Clarify comment.
7344         * c-format.c (check_format_info_recurse): Fix host_integerp
7345         usage; the pos argument should be zero when assigning to a
7346         signed HOST_WIDE_INT.
7347
7348 2002-02-20  Richard Henderson  <rth@redhat.com>
7349
7350         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
7351         of the operand, rather than assuming TImode.
7352         (ix86_expand_binop_builtin): Cope with commutative patterns
7353         using nonimmediate_operand for both operands.
7354         (ix86_expand_timode_binop_builtin): Likewise.
7355         (ix86_expand_store_builtin): Validate operand 1.
7356         (ix86_expand_unop1_builtin): Likewise.
7357
7358 2002-02-20  Philip Blundell  <philb@gnu.org>
7359
7360         PR 5705
7361         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
7362
7363 2002-02-20  Richard Henderson  <rth@redhat.com>
7364
7365         PR c/5615
7366         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
7367
7368 2002-02-20  Tom Tromey  <tromey@redhat.com>
7369
7370         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7371         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7372         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7373         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
7374         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
7375         unconditionally.
7376
7377 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
7378
7379         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
7380           for (const_int 0) in X not just INTVAL.
7381
7382 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7383
7384         * doc/extend.texi: Avoid or reduce overfull hboxes.
7385
7386 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
7387
7388         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
7389         operations if the field does not start at a mode boundary.
7390
7391 2001-02-20      Joel Sherrill <joel@OARcorp.com>
7392
7393         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
7394         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
7395         Also done for -Acpu and -Amachine.
7396
7397 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7398
7399         * cppinit.c (init_dependency_output): Take deps output file
7400         from -o if none given with -MF.  Suppress normal output.
7401         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
7402         * doc/cpp.texi, doc/invoke.texi: Update.
7403
7404 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7405
7406         * toplev.c (output_quoted_string): Write unprintable
7407         characters with octal escapes.
7408
7409 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7410
7411         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
7412         really_call_used[VRSAVE_REGNO] if not Altivec.
7413
7414 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
7415
7416         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
7417         MODE_MASK.
7418         (constant_pool_expr_1): Fix formatting.
7419         (rs6000_legitimize_reload_address): Likewise.
7420
7421 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7422
7423         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
7424         now that we have one.
7425
7426 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
7427
7428         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
7429         end of first block of bitfields (which was only seven bits);
7430         rename dummy to unused_1; remove comment which is no longer true.
7431
7432 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7433
7434         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
7435
7436 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7437
7438         PR 5399
7439         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
7440         if generating PIC.
7441
7442         PR 5054
7443         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
7444         arm_is_longcall_p rather than inspecting call-type cookie
7445         directly.
7446         (call_value_insn) [TARGET_THUMB]: Likewise.
7447
7448 2002-02-19  Graham Stott  <grahams@redhat.com>
7449
7450         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
7451
7452 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
7453
7454         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
7455         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
7456         (FP_SAVE_INLINE): Delete.
7457
7458         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
7459         * config/rs6000/eabi.asm: Remove ABI save restore routines.
7460         * config/rs6000/t-ppccomm: Build crtsavres.o.
7461         * config/rs6000/crtsavres.asm: New file.
7462
7463 2002-02-19  Philip Blundell  <philb@gnu.org>
7464
7465         * config/arm/arm.c (use_return_insn): Don't reject interrupt
7466         functions.
7467         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
7468         (output_return_instruction): Allow interrupt functions to return with
7469         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
7470         (arm_expand_prologue): Subtract 4 before stacking LR in an
7471         interrupt function.
7472
7473 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
7474
7475         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
7476         decl, not just FUNCTION_DECL.
7477         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
7478         (arm_assemble_integer): Likewise.
7479         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
7480         marked local.
7481
7482 2002-02-19  matthew green  <mrg@eterna.com.au>
7483
7484         * config.gcc (sparc-*-netbsdelf*): Enable target.
7485         (sparc64-*-netbsd*): New target.
7486         * config/sparc/netbsd-elf.h: New file.
7487         * config/sparc/t-netbsd64: New file.
7488
7489 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
7490
7491         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
7492
7493 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
7494
7495         * doc/invoke.texi: explicitly list the style guidelines that
7496         -Weffc++ checks for.
7497
7498 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
7499
7500         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
7501
7502 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7503
7504         PR other/5718
7505         * gcc.c (cpp_unique_options): Treat -o as indicating object file
7506         only if not -E.  If -E, pass -o through to the preprocessor.
7507
7508 2002-02-19  Kazu Hirata  <kazu@hxi.com>
7509
7510         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
7511         register number with an appropriate macro.
7512
7513 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
7514
7515         * doc/rtl.texi (Constants): Close @code tag.
7516
7517 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
7518
7519         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
7520         ("mmx_uavgv4hi3"): Same.
7521         ("pmulhrwv4hi3"): Same.
7522
7523         * tree-inline.c (walk_tree): Handle vectors.
7524
7525         * c-common.c (constant_expression_warning): Handle vectors.
7526         (overflow_warning): Same.
7527
7528         * sched-deps.c (sched_analyze_2): Handle vectors.
7529
7530         * rtlanal.c (rtx_unstable_p): Handle vectors.
7531         (rtx_varies_p): Same.
7532         (count_occurrences): Same.
7533         (regs_set_between_p): Same.
7534         (modified_between_p): Same.
7535         (modified_in_p): Same.
7536         (volatile_insn_p): Same.
7537         (volatile_refs_p): Same.
7538         (side_effects_p): Same.
7539         (may_trap_p): Same.
7540         (inequality_comparisons_p): Same.
7541         (replace_regs): Same.
7542         (computed_jump_p_1): Same.
7543
7544         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
7545         argument.
7546         (inner_mode_array): New.
7547         (copy_rtx): Handle vectors.
7548         (copy_most_rtx): Same.
7549         (rtx_equal_p): Same.
7550         (get_mode_alignment): Adjust for vectors.
7551
7552         * resource.c (mark_referenced_resources): Handle vectors.
7553         (mark_set_resources): Same.
7554
7555         * reload1.c (eliminate_regs): Handle vectors.
7556         (elimination_effects): Same.
7557         (scan_paradoxical_subregs): Same.
7558
7559         * reload.c (subst_reg_equivs): Handle vectors.
7560
7561         * regrename.c (scan_rtx): Handle vectors.
7562
7563         * regclass.c (reg_scan_mark_refs): Handle vectors.
7564
7565         * recog.c (find_single_use_1): Handle vectors.
7566
7567         * local-alloc.c (equiv_init_varies_p): Handle vectors.
7568         (contains_replace_regs): Same.
7569         (memref_referenced_p): Same.
7570
7571         * integrate.c (copy_rtx_and_substitute): Handle vectors.
7572         (subst_constants): Same.
7573
7574         * genattrtab.c (attr_copy_rtx): Handle vectors.
7575         (encode_units_mask): Same.
7576         (clear_struct_flag): Same.
7577         (count_sub_rtxs): Same.
7578
7579         * gcse.c (want_to_gcse_p): Handle vectors.
7580         (oprs_unchanged_p): Same.
7581         (hash_expr_1): Same.
7582         (oprs_not_set_p): Same.
7583         (expr_killed_p): Same.
7584         (compute_transp): Same.
7585         (store_ops_ok): Same.
7586
7587         * function.c (purge_addressof_1): Do not allow paradoxical subregs
7588         of vectors.
7589         (fixup_var_refs_1): Same.
7590         (instantiate_virtual_regs_1): Same.
7591
7592         * fold-const.c (operand_equal_p): Handle vectors.
7593         (fold): Same.
7594         (rtl_expr_nonnegative_p): Same.
7595
7596         * flow.c (mark_used_regs): Handle vectors.
7597
7598         * df.c (df_uses_record): Handle vectors.
7599
7600         * cselib.c (cselib_subst_to_values): Handle vectors.
7601         (cselib_mem_conflict_p): Same.
7602         (hash_rtx): Same.
7603
7604         * cse.c (canon_reg): Handle vectors.
7605         (fold_rt): Same.
7606         (cse_process_notes): Same.
7607         (count_reg_usage): Same.
7608         (canon_hash): Same.
7609
7610         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
7611
7612         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
7613
7614         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
7615         (gen_rtx): Handle CONST_VECTOR.
7616         (gen_const_vector_0): New.
7617         (copy_rtx_if_shared): CONST_VECTORs can be shared.
7618         (reset_used_flags): Same.
7619         (copy_insn_1): Same.
7620         (initializer_constant_valid_p): Handle VECTOR_CST.
7621
7622         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
7623
7624         * doc/rtl.texi (Constants): Document const_vector.
7625         (CONST0_RTX): Update for vectors.
7626         (RTL sharing): Same.
7627
7628         * print-tree.c (print_node): Add case for VECTOR_CST.
7629
7630         * tree.h (TREE_VECTOR_CST_ELTS): New.
7631         (struct tree_vector): New.
7632         (union tree_node): Add vector node.
7633         (build_vector): Add prototype.
7634
7635         * tree.def (VECTOR_CST): New.
7636
7637         * tree.c (build_vector): New.
7638
7639         * expmed.c (make_tree): Handle CONST_VECTOR.
7640
7641         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
7642         (CONST_VECTOR_ELT): New.
7643         (CONST_VECTOR_NUNITS): New.
7644
7645         * machmode.h (GET_MODE_INNER): New.
7646         (DEF_MACHMODE): Accept 8th arg.
7647
7648         * machmode.def: Add 8th argument for vector inner mode.
7649         Add inner vector modes for vectors.
7650
7651         * rtl.def (VEC_CONST): Remove.
7652         (CONST_VECTOR): New.
7653
7654         * expr.c (clear_storage): Allow vectors.
7655         (is_zeros_p): Handle VECTOR_CST.
7656
7657         * varasm.c (output_constant_pool): Handle vectors.
7658         (rtx_const): Add veclo and vechi fields.
7659         (kind): Add RTX_VECTOR.
7660         (decode_rtx_const): Add case for vector.
7661
7662         * config/rs6000/rs6000-protos.h: Add zero_constant.
7663
7664         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
7665         constants.  Force easy vector constants into memory.
7666         (easy_vector_constant): New.
7667         (emit_easy_vector_constant): New.
7668         (rs6000_legitimize_reload_address): Do not generate bad reloads on
7669         darwin.
7670
7671         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
7672         instruction does.
7673         ("altivec_lvxl"): Same.
7674         (altivec_lvebx): Same.
7675         (altivec_lvehx): Same.
7676         (altivec_lvewx): Same.
7677         ("*movv4si_const0"): New.
7678         ("*movv4sf_const0"): New.
7679         ("*movv8hi_const0"): New.
7680         ("*movv16qi_const0"): New.
7681
7682 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7683
7684         * config/h8300/h8300.c (notice_update_cc): Use
7685         cc_status.value2.
7686
7687 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7688
7689         * config/h8300/h8300.md (divmod patterns): Change the
7690         constraints for operands[1] to register_operand.
7691
7692 2002-02-18  Kazu Hirata  <kazu@hxi.com>
7693
7694         * config/h8300/h8300-protos.h: Remove the prototype for
7695         p_operand.
7696         * config/h8300/h8300.c (p_operand): Remove.
7697         * config/h8300/h8300.md: Replace p_operand with
7698         const_int_operand.
7699
7700 2002-02-18 Philip Blundell <pb@nexus.co.uk>
7701
7702         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
7703         comment.
7704         (output_return_instruction): Allow use of LDR to unstack
7705         return addresss even for interrupt handlers or when
7706         interworking.  If compiling for ARMv5, use interworking-safe
7707         return instructions by default.  Remove duplicated code and
7708         lengthy "strcat" sequences.
7709
7710 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7711
7712         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
7713         (LINK_EH_SPEC): Define.
7714         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
7715
7716 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
7717
7718         * config/s390/s390.c (s390_emit_prologue): Do not set the
7719         frame_related flag for call-clobbered registers.
7720
7721 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7722
7723         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
7724         (construct_container): Fix handling of SSE operands.
7725         (ix86_expand_builtin): Fix handling of 64bit pointers.
7726         (mmx_maskmovq_rex): New pattern.
7727
7728 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7729
7730         * regrename.c (kill_set_value): Handle subregs properly.
7731
7732 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
7733
7734         * objc/objc-act.c (handle_impent): Remove leading '*'
7735         from objc_class_name.
7736
7737 2002-02-17  Richard Henderson  <rth@redhat.com>
7738
7739         * config/alpha/alpha.c (some_small_symbolic_operand,
7740         some_small_symbolic_operand_1, split_small_symbolic_operand,
7741         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
7742         Handle small SYMBOL_REFs anywhere, not just inside memories.
7743         * config/alpha/alpha-protos.h: Update.
7744         * config/alpha/alpha.h (PREDICATE_CODES): Update.
7745         * config/alpha/alpha.md (small symbolic operand splitter): Update.
7746
7747 2002-02-17  Roland McGrath  <roland@frob.com>
7748
7749         * config.gcc (powerpc-*-gnu-gnualtivec*,
7750         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
7751         * config/rs6000/gnu.h: New file.
7752         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
7753         Grok "gnu" in rs6000_abi_name.
7754         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
7755         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
7756         Grok -mcall-gnu analogous to -mcall-linux et al.
7757         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7758         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
7759         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
7760
7761 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
7762
7763         PR c/3444:
7764         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
7765         shortening.
7766
7767 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7768
7769         * config/cris/cris.h: Undefine STARTFILE_SPEC and
7770         ENDFILE_SPEC before (re)defining them.
7771
7772 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7773
7774         * config/h8300/h8300.c: Fix formatting.
7775         * config/h8300/h8300.h: Likewise.
7776
7777 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7778
7779         * doc/tm.texi: Explain why empty strings should not be
7780         marked for translation.
7781
7782 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7783
7784         * final.c (output_operand_lossage): Changed to accept
7785         printf style arguments. Change calls where necessary.
7786         * output.h (output_operand_lossage): Change declaration
7787         accordingly. Update copyright.
7788         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
7789         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
7790         Update copyright date where necessary.
7791
7792         * config/i386/i386.c (print_operand): Likewise. Remove use of
7793         sprintf.
7794
7795         * config/cris/cris.c (cris_operand_lossage): Likewise.
7796         Rename parameter so that exgettext recognizes it as
7797         translatable message.
7798         (LOSE_AND_RETURN): Rename parameter to msgid.
7799
7800 2002-02-17  Kazu Hirata  <kazu@hxi.com>
7801
7802         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
7803         hard coded register number with an appropriate macro.
7804         (HARD_REGNO_MODE_OK): Likewise.
7805         (ARG_POINTER_REGNUM): Likewise.
7806         (STATIC_CHAIN_REGNUM): Likewise.
7807         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
7808         * config/h8300/h8300.md (define_constants): Define more
7809         register numbers.
7810
7811 2002-02-17  Philipp Thomas  <pthomas@suse.de>
7812
7813         * config/i386/i386.h: Don't mark empty strings for translation.
7814
7815 2002-02-16  H.J. Lu <hjl@gnu.org>
7816
7817         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
7818
7819 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
7820
7821         * cppinit.c (merge_include_chains): Check for brack being
7822         NULL before attempting to merge it with qtail.
7823
7824 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
7825
7826         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
7827         DBX_DEBUG.
7828
7829 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7830
7831         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
7832
7833 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7834
7835         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
7836         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
7837         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
7838
7839 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7840
7841         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
7842         now only if !TARGET_FIX.
7843         (*movsi_nt_vms_fix): New pattern.
7844
7845 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
7846
7847         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
7848         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
7849         (alpha_sa_mask, alpha_sa_size): Reflect above change.
7850         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
7851         (alpha_start_function, alpha_expand_epilogue): Likewise.
7852         (unicosmk_gen_dsib): Likewise.
7853
7854 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7855
7856         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
7857
7858 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
7859
7860         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
7861         check_and_change_labels, s390_final_chunkify): Delete.
7862         (s390_split_branches, s390_chunkify_pool): New functions.
7863         (s390_function_prologue): Call them.
7864
7865         * config/s390/s390.h (S390_REL_MAX): Delete.
7866         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
7867
7868         * config/s390/s390.md (cjump, icjump, jump): Fix length
7869         attribute calculation.
7870
7871
7872 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
7873
7874         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
7875         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
7876
7877 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7878
7879         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
7880         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
7881         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
7882
7883 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7884
7885         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
7886
7887 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
7888
7889         * reload.c (find_dummy_reload): Check that an output register
7890         is valid for its mode.
7891
7892 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
7893
7894         * combine.c (known_cond): After replacing the REG of a SUBREG, try
7895         to simplify it.
7896
7897         * function.c (assign_parms): Demote promoted argument passed by
7898         transparent reference.
7899
7900 2001-02-14      Joel Sherrill <joel@OARcorp.com>
7901
7902         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
7903         -Acpu() and -Amachine() to eliminate warnings.
7904
7905 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
7906
7907         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
7908
7909 2002-02-14  Kazu Hirata  <kazu@hxi.com>
7910
7911         * config/h8300/h8300-protos.h: Update the prototype for
7912         const_costs.
7913         * config/h8300/h8300.c (const_costs): Treat SET as a little
7914         more expensive operation.
7915         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
7916         reference to const_costs.
7917
7918 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
7919
7920         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
7921
7922 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
7923
7924         PR c/5503:
7925         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
7926         use arguments from newtype.
7927
7928 2002-02-13  Eric Christopher  <echristo@redhat.com>
7929
7930         * config/mips/mips.c (override_options): Add check for march/mipsX
7931         on the same command line. Fix error message in cpu processing.
7932         Remove architecture and ISA checks.
7933
7934 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7935
7936         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
7937
7938         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
7939
7940 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
7941
7942         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
7943         alternatives.
7944         ("*movv8hi_internal1"): Same.
7945         ("*movv16qi_internal1"): Same.
7946         ("*movv4sf_internal1"): Same.
7947
7948         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
7949         not push_reload for altivec modes.
7950
7951 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
7952
7953         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
7954         all RTEMS targets including removal of #includes from config/*/rtems*.h
7955         file and adding them to tm_file setting. Added xm_defines=POSIX to
7956         many targets.
7957         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
7958         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
7959         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
7960         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
7961         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
7962         config/m68k/rtemself.h: Ditto.
7963         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
7964         config/mips/rtems64.h: Ditto.
7965         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
7966         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
7967         Ditto.
7968         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
7969         config/sparc/rtemself.h: Ditto.
7970         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
7971         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
7972         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
7973         more like arm-elf.
7974         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
7975         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
7976         target made more similar to i386-elf.
7977         * config/i386/t-rtems-i386: Added soft float support and multilibs.
7978         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
7979         be similar to config/m68k/t-m68kelf.
7980         * gthr-rtems.h: Encapsulate with extern "C" for C++.
7981
7982 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
7983
7984         * regmove.c (kill_value): Handle subregs.
7985
7986 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7987
7988         * i386.md (mul patterns): Allow memory operand to be first;
7989         add expanders where needed; fix constraints.
7990         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
7991         Allow memory operand to be the first.
7992
7993         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
7994         operands.
7995
7996 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
7997
7998         PR c/5681:
7999         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
8000         GET_MODE (x).
8001
8002 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
8003
8004         PR optimization/5547:
8005         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
8006         all valid IA-32 address modes involving non-scaled %ebx and
8007         GOT/GOTOFF as displacement.
8008
8009 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
8010
8011         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
8012         after emitting ltorg insns.
8013
8014         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
8015         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
8016         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
8017         *abssf2): Fix "op_type" attribute.
8018
8019 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
8020
8021         * mkconfig.sh: Avoid using a subshell redirect.
8022         ($output.T): Change to $(output)T.
8023         (ENABLE_NLS): Remove unneeded undef.
8024
8025         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
8026         * config/alpha/x-vms (libsubdir): Define.
8027
8028         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
8029         register frame procedures. Optimize retrieving context.
8030
8031         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
8032         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
8033         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
8034
8035 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8036
8037         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
8038         Make same change as for find_base_value.
8039
8040 2002-02-13  Kazu Hirata  <kazu@hxi.com>
8041
8042         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
8043         of QImode and SImode.
8044
8045 2002-02-13  Kazu Hirata  <kazu@hxi.com>
8046
8047         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
8048         length computation of movsi.
8049         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
8050
8051 2002-02-13  Kazu Hirata  <kazu@hxi.com>
8052
8053         * config/h8300/h8300.md (subqi3): Tighten the predicate for
8054         operands[2] to register_operand.
8055
8056 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
8057
8058         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
8059
8060 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
8061
8062         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
8063         for altivec_lvx* and altivec_stvx*.
8064         ("*movv4si_internal"): Add constraint for loading from GPRs.
8065         ("*movv8hi_internal1"): Same.
8066         ("*movv16qi_internal1"): Same.
8067         ("*movv4sf_internal1"): Same.
8068
8069         * config/rs6000/rs6000.c (altivec_register_operand): New.
8070
8071         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
8072         altivec_register_operand.
8073
8074 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
8075
8076         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
8077         handle SYMBOL_REF.
8078
8079 2002-02-13  Stan Shebs  <shebs@apple.com>
8080
8081         * c-typeck.c (digest_init): Handle vectors.
8082         (really_start_incremental_init): Same.
8083         (pop_init_level): Same.
8084         (process_init_element): Same.
8085
8086         * varasm.c (output_constant): Same.
8087
8088         * expr.c (clear_storage): Same.
8089         (store_constructor): Same.
8090
8091 2002-02-12  Eric Christopher  <echristo@redhat.com>
8092
8093         * explow.c (hard_function_value): Add comment explaining
8094         signed/unsigned comparison.
8095
8096 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
8097
8098         * jump.c (never_reached_warning): Add finish argument.
8099         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
8100         real insn after end.
8101         * rtl.h (never_reached_warning): Adjust prototype.
8102         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
8103         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
8104         never_reached_warning.
8105
8106 2002-02-12  Graham Stott  <grahams@redhat.com>
8107
8108         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
8109
8110 2002-02-12  Kazu Hirata  <kazu@hxi.com>
8111
8112         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
8113         logical shifts on H8/300.
8114         (shift_alg_si): Improve several shifts on H8/300.
8115         (get_shift_alg): Likewise.
8116
8117 2002-02-12  Graham Stott  <grahams@redhat.com>
8118
8119         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
8120
8121 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8122
8123         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
8124         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
8125
8126 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
8127
8128         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
8129         non-CONST_INT through default_assemble_integer.
8130         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
8131         <case 8>: Abort for CONST_DOUBLE.
8132
8133 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8134
8135         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
8136         is specified.
8137         * config/pa/pa-linux.h (LIB_SPEC): Delete.
8138         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
8139
8140 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
8141
8142         * config/stormy16/stormy16.md (zero_extendqihi2): New.
8143
8144 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
8145
8146         * regrename.c (regrename_optimize): Don't accept a
8147         part-clobbered register if the replaced register is not part
8148         clobbered.
8149
8150         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
8151         take padding into account when computing the argument value.
8152
8153         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
8154
8155         * combine.c (try_combine): Apply substitutions in
8156         CALL_INSN_FUNCTION_USAGE too.
8157
8158 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
8159
8160         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
8161         __builtin_altivec_abs*.
8162         (bdesc_abs): New.
8163
8164         * config/rs6000/rs6000.h (rs6000_builtins): Add
8165         ALTIVEC_BUILTIN_ABS*.
8166
8167         * config/rs6000/altivec.h: Use const char for builtins expecting
8168         literals.
8169         (vec_abs): New versions for C and C++.
8170         (vec_abss): Same.
8171
8172 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8173
8174         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
8175         using Pmode.
8176
8177 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8178
8179         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
8180         constant definition from h8300.md.
8181         (FRAME_POINTER_REGNUM): Likewise.
8182         * config/h8300/h8300.md (define_constants): Add FP_REG.
8183
8184 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8185
8186         * config/h8300/h8300.c (print_operand): Remove redundant code.
8187
8188 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8189
8190         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
8191         * config/h8300/h8300.c (byte_reg): Make it static.
8192
8193 2002-02-10  Richard Henderson  <rth@redhat.com>
8194
8195         PR c/5623
8196         * c-typeck.c (incomplete_type_error): Handle flexible array members.
8197
8198 2002-02-10  Richard Henderson  <rth@redhat.com>
8199
8200         PR c++/5624
8201         * tree.c (append_random_chars): Don't abort if main_input_filename
8202         does not exist.
8203
8204 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
8205
8206         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
8207
8208 2002-02-10  Kazu Hirata  <kazu@hxi.com>
8209
8210         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
8211         (pushhi1): Likewise.
8212
8213 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8214
8215         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
8216         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
8217
8218 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
8219
8220         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
8221         remove MASK_VIS.
8222         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
8223
8224 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8225
8226         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
8227         a half of an SImode register on H8/300.
8228
8229 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
8230
8231         * i386.md (movdi_2): Add missing '!'.
8232
8233 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8234
8235         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
8236         definitions.
8237
8238 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8239
8240         * config/h8300/h8300.md (length): Correct the distance valid
8241         for the short branch.
8242
8243 2002-02-09  Kazu Hirata  <kazu@hxi.com>
8244
8245         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
8246
8247 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
8248
8249         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
8250         registers in SImode.
8251         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
8252         part-clobbered.
8253
8254         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
8255         patch.
8256
8257         Contribute sh64-elf.
8258         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
8259         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
8260         (sh_cannot_modify_jumps_p): New function.
8261         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
8262         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
8263         (sh_ms_bitfield_layout_p): New function.
8264         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
8265                     Zack Weinberg  <zack@codesourcery.com>
8266         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
8267         expand_simple_binop instead of expand_binop.
8268         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
8269         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
8270         use of .quad and .uaquad.
8271         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
8272         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
8273         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8274         * config/sh/sh.md (movdi_const, movdi_const_32bit,
8275         movdi_const_16bit): Make sure all CONSTs have modes.
8276         (sym2PIC): Ditto, but by adjusting all callers.
8277         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
8278         if the prologue calls the SHmedia argument decoder or register
8279         saver.
8280         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8281         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
8282         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
8283         (sh_expand_epilogue): Don't emit USE of return target register.
8284         (prepare_move_operands): Legitimize DImode PIC addresses.
8285         (sh_media_register_for_return): Skip tr0, used to initialize the
8286         PIC register.
8287         (sh_expand_prologue): Remove explicit USE of return register.
8288         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
8289         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
8290         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
8291         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
8292         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
8293         EXTRA_CONSTRAINT_T.
8294         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
8295         (MOVI_SHORI_BASE_OPERAND_P): New.
8296         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
8297         (EXTRA_CONSTRAINT_T): Define in terms of them.
8298         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
8299         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
8300         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
8301         alternatives supporting TARGET_REGS.
8302         (UNSPEC_GOTPLT): New constant.
8303         (movdi split): Move incrementing of LABEL_NUSES...
8304         (movdi_const, movdi_const_32bit): Here.  Use
8305         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
8306         (movdi_const_16bit): New.
8307         (call, call_value) [flag_pic]: Use GOTPLT.
8308         (call_pop, call_value_pop): New expands.
8309         (call_pop_compact, call_pop_rettramp): New insns.
8310         (call_value_pop_compact, call_value_pop_rettramp): New insns.
8311         (sibcall) [flag_pic]: Use GOT.
8312         (builtint_setjmp_receiver): Remove bogus, unused expand.
8313         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
8314         (*pt, *ptb, ptrel): New insns.
8315         (sym2GOT): Handle DImode GOT.
8316         (sym2GOTPLT, symGOTPLT2reg): New expands.
8317         (sym2PIC): New expand.
8318         (shcompact_return_tramp): Use GOTPLT to return trampoline.
8319         (shcompact_return_tramp_i): Use return register explicitly.
8320         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
8321         disable flag_reorder_blocks.
8322         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8323         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
8324         clobbers, for clarity.
8325         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
8326         restoring of r0 in macl as MAYBE_DEAD.
8327         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
8328         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
8329         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
8330         alter_subreg all over.
8331         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
8332         reload, instead of emitting instructions that would require
8333         reloading.
8334         (casesi_load_media): Add missing modes.
8335         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
8336         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
8337         as used if the argument decoder is called.
8338         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8339         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
8340         Pmode, then extend it to DImode if necessary.
8341         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8342         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
8343         constants in FPU-enabled SHmedia, let them be loaded from memory.
8344         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
8345         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
8346         Adjust whitespace in assembly output templates.
8347         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
8348         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
8349         mode of if_then_else.
8350         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
8351         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
8352         sh.h.
8353         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
8354                     Joern Rennecke <amylaar@redhat.com>
8355         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
8356         (SUBTARGET_CPP_PTR_SPEC): New.
8357         (SUBTARGET_CPP_SPEC): Remove.
8358         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8359         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8360         Fix typo in previous checkin.
8361         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
8362         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
8363         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
8364                     Alexandre Oliva  <aoliva@redhat.com>
8365         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
8366         what single FP register can hold for SHmedia target.
8367         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
8368                     Alexandre Oliva  <aoliva@redhat.com>
8369         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
8370         Do not split into SUBREG.
8371         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
8372         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
8373         and added new functions as specified in SH5 ABI r9.
8374         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
8375         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
8376         8-byte boundary.
8377         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
8378         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
8379         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
8380         and consttable_window_ends.
8381         2001-06-03  Graham Stott  <grahams@redhat,com>
8382         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
8383         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
8384         * config/sh/sh.c (print_operand): Handle floating-point pair,
8385         vector and matrix registers.
8386         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
8387         vector modes into account.
8388         * config/sh/sh.md (movv2sf): Split move between registers into
8389         movdf.
8390         (movv4sf, movv16sf): Introduce insns that get split only after
8391         reload.
8392         * config/sh/shmedia.h: Fix Copyright dates.
8393         * config/sh/ushmedia.h: Likewise.  Move loop counter
8394         declarations into conditionals that uses them.
8395         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
8396         loop boundary.
8397         * config/sh/sshmedia.h: Fix Copyright dates.
8398         (sh_media_PUTCFG): Fix constraints.
8399         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
8400         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
8401         ptrmemfunc_vbit_in_delta for SH5.
8402         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
8403         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
8404         * invoke.texi: Likewise.
8405         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
8406         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
8407         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
8408         GCC_pop_shmedia_regs_nofpu): New global symbols.
8409         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
8410         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
8411         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
8412         compact function with nonlocal labels.
8413         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
8414         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
8415         (initial_elimination_offset): Account for their stack space.
8416         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
8417         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
8418         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
8419         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
8420         least one of the operands to be a register.
8421         (movv2sf): Likewise.  Renamed to movv2sf_i.
8422         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
8423         prepare_move_operands() before emitting SHmedia insns.
8424         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
8425         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
8426         Don't save nor initialize r12.  Don't mis-align the stack.
8427         Pad the code with a nop.
8428         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
8429         stack.
8430         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
8431         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
8432         [__SHMEDIA__]: Implement.
8433         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
8434         * config/sh/sh.md: Set latency of `pt' closer to reality.
8435         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
8436         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
8437         Set move, load and store type attributes.
8438         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
8439         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
8440         profiling.
8441         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
8442         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
8443         * config/sh/sh.c (sh_media_register_for_return): New function.
8444         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
8445         branch-target register.
8446         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
8447         * config/sh/sh.md (return_media_i): Use any call-clobbered
8448         branch-target register.
8449         (return_media): If r18 wasn't copied in the prologue, copy it
8450         here.
8451         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
8452         Clear class FP0_REGS.
8453         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
8454         from elf.h.
8455         2001-03-08  DJ Delorie  <dj@redhat.com>
8456         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
8457         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
8458         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
8459         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8460         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
8461         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
8462         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
8463         return value correctly for call_cookie.
8464         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
8465         * config/sh/crt1.asm (start): Modified so as to call
8466         ___setup_argv_and_call_main.
8467         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
8468         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
8469         SHmedia mode.
8470         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
8471         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
8472         (STRIP_NAME_ENCODING): Use it.
8473         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
8474         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
8475         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
8476         prepare_scc_operands().
8477         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
8478         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
8479         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
8480         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
8481         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
8482         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
8483         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
8484         used in shcompact_incoming_args.
8485         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
8486         change.
8487         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
8488         mode.
8489         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
8490         Adjust accordingly.
8491         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8492         Simplify.  Adjust.  Add sanity check.
8493         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
8494         FPU_SINGLE_BIT.
8495         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
8496         TARGET_SHCOMPACT.
8497         (udivsi3, divsi3): Use them.
8498         (force_mode_for_call): New insn.
8499         (call, call_value, sibcall_value): Emit it before SHcompact
8500         calls.
8501         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
8502         * config/sh/sh.md (call, call_value, sibcall): Make sure the
8503         call cookie is non-NULL before taking its value.
8504         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
8505         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
8506         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
8507         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
8508         block.
8509         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
8510         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
8511         temporary for stack adjusts.  Use MACL and MACH to pass
8512         arguments to shcompact_incoming_args.
8513         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
8514         clobber r1.
8515         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
8516         (nested_trampoline): Load static chain address into r1.
8517         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
8518         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
8519         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
8520         fp_arith_reg_operand().
8521         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
8522         * config/sh/sh.md (casesi): Sign-extend the first two operands,
8523         and use signed compares for them.
8524         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
8525         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
8526         ones properly aligned.
8527         (find_barrier): Account for extra alignment needed for 8-byte wide
8528         constants.
8529         (machine_dependent_reorg): Require a label for the second 4-byte
8530         constant after an 8-byte one.
8531         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
8532         change.
8533         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8534         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
8535         last_float when switching float modes.
8536         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
8537         auto-increment for general-purpose registers.
8538         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
8539         result.
8540         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
8541         for stack adjust.
8542         * config/sh/sh.c (sh_builtin_saveregs): Support using all
8543         registers for varargs.
8544         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
8545         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
8546         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
8547         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
8548         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
8549         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
8550         call_cookie accordingly.
8551         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
8552         (SHCOMPACT_BYREF): Likewise.
8553         (SHCOMPACT_FORCE_ON_STACK): New macro.
8554         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
8555         (sh_builtin_saveregs): Likewise.
8556         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8557         shcompact_incoming_args): Use new shift values.  Support
8558         sequences of consecutive and non-consecutive pushes/pops.
8559         * config/sh/sh.md (return): Don't explicitly use PR_REG.
8560         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
8561         * config/sh/sh.h (TEXT_SECTION): Define.
8562         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
8563         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
8564         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
8565         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
8566         return values on FPU-enabled SHmedia.
8567         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
8568         FPU-enabled SHmedia.
8569         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
8570         value is returned in a non-FP reg and is not returned by
8571         reference.
8572         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
8573         jump_ind.
8574         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
8575         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
8576         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
8577         quad-aligned to be passed by callee-copy reference.
8578         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
8579         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
8580         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
8581         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
8582         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
8583         copying low-numbered FP regs to r7 and r8.
8584         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
8585         FP regs to general-purpose regs only if the copy was passed on the
8586         stack.
8587         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
8588         copying FP reg to r9.
8589         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
8590         copy FP regs to general-purpose regs only in outgoing calls.
8591         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
8592         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
8593         HOST_WIDE_INT.
8594         * config/sh/sh.h (struct sh_args): Document all fields.
8595         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
8596         passed partially on the stack should not consider making
8597         sibcalls.
8598         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
8599         stack_regs only for incoming calls.  When passing FP args,
8600         make sure there are FP regs available before modifying
8601         call_cookie.
8602         (SHCOMPACT_BYREF): Pass double args in general-purpose
8603         registers by reference.
8604         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
8605         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
8606         attempt to generate sibcalls if the caller got any arguments
8607         by reference.
8608         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
8609         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
8610         to 8-byte boundaries.
8611         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
8612         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
8613         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
8614         stored in the stack.
8615         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
8616         for the offsets to have the ISA bit set.
8617         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
8618         invocation.  Use beq instead of bgt to mark end of sequence of
8619         loads.
8620         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
8621         bgt to mark end of sequence of stores.
8622         * config/sh/sh.c (arith_operand): Don't check whether
8623         CONST_OK_FOR_J for now.
8624         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
8625         instead of long for conversion.
8626         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
8627         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
8628         before passing it to fprintf.
8629         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
8630         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
8631         Call set_fpscr before reading/writing SR.
8632         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
8633         Call set_fpscr.
8634         * config/sh/lib1funcs.asm: Add `.align 2' directives before
8635         SHmedia code.
8636         (FMOVD_WORKS): Define on SH5 with FPU.
8637         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
8638         setting.
8639         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
8640         _fpscr_values.
8641         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
8642         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
8643         address.
8644         (ia_main_table): Ditto.
8645         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
8646         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8647         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
8648         the definitions from sh.h.
8649         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
8650         TARGET_SH5.
8651         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
8652         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
8653         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8654         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
8655         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
8656         Increment LABEL_NUSES.
8657
8658         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
8659         TARGET_SH5.
8660         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
8661         defined.
8662         * config/sh/elf.h (SIZE_TYPE): Likewise.
8663         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
8664         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8665         shcompact_incoming_args): Load switch table addresses using
8666         datalabel.
8667         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8668         (NO_BUILTIN_SIZE_TYPE): Define.
8669         (SIZE_TYPE): Don't define.
8670         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
8671         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
8672         definition of __SH5__=32 for -m5-compact-nofpu.
8673         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
8674         ADDR_DIFF_VEC.
8675         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
8676         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
8677         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
8678         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
8679         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
8680         (INSN_LENGTH_ALIGNMENT): Likewise.
8681         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8682         * config/sh/sh.md (call, call_value, sibcall): Simplify
8683         copying of non-branch-target register.
8684         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8685         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
8686         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
8687         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
8688         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
8689         floating-point values as structs.
8690         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
8691         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
8692         general-purpose register.
8693         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
8694         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8695         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
8696         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
8697         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
8698         (ENCODE_SECTION_INFO): Enclose variables and constants in
8699         DATALABEL unspecs.
8700         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
8701         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
8702         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
8703         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
8704         only for LABEL_REFs.  For SYMBOL_REFs, prepend
8705         SH_DATALABEL_ENCODING to the symbol name.
8706         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
8707         convert_mode().
8708         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
8709         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
8710         UNSPEC_DATALABEL.
8711         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
8712         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
8713         (DATALABEL_REF_P): Don't require CONST.
8714         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
8715         REL label.
8716         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
8717         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
8718         right.
8719         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8720         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
8721         Use shallow_copy_rtx and PUT_MODE to change the mode of
8722         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
8723         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
8724         on SHmedia using GENERAL_REGs.
8725         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8726         bltu_media_i): Fix reversion of conditions.
8727         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
8728         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
8729         * config/sh/sh.c (output_far_jump): Save r13 in macl.
8730         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
8731         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
8732         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
8733         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
8734         (GCC_nested_trampoline): Likewise.
8735         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
8736         * config/sh/sh.c (gen_datalabel_ref): Define.
8737         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
8738         (INITIALIZE_TRAMPOLINE): Likewise.
8739         (TRAMPOLINE_ADJUST_ADDRESS): Define.
8740         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
8741         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
8742         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
8743         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
8744         (ic_invalidate): Adjust for SH5.
8745         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
8746         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
8747         _nested_trampoline.
8748         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
8749         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
8750         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
8751         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8752         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
8753         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
8754         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
8755         * config/sh/sh.c (target_reg_operand): Match only target-branch
8756         registers and pseudos that aren't virtual registers.
8757         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8758         Copy operands that don't match target_reg_operand to pseudos.
8759         (call_media, call_value_media, sibcall_media): Use
8760         target_reg_operand instead of target_operand.
8761         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
8762         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
8763         * config/sh/sh.c (target_reg_operand): Match hardware registers
8764         other than branch-target registers.
8765         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
8766         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
8767         (fpscr_values) [SH5 == 32]: Define.
8768         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
8769         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
8770         Handle function addresses coming in SUBREGs.
8771         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
8772         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
8773         shcompact_return_trampoline): Use datalabel where appropriate.
8774         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
8775         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
8776         general-purpose register to copy one branch-target register to
8777         another.
8778         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8779         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
8780         SYMBOL_REFs with VOIDmode.
8781         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
8782         bltu_media_i): New insns.
8783         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
8784         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
8785         (INIT_CUMULATIVE_ARGS): Likewise.
8786         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
8787         * machmode.def (V16SFmode): New mode.
8788         * c-common.c (type_for_mode): Support V2SF and V16SF.
8789         * tree.c (build_common_tree_nodes_2): Likewise.
8790         * tree.h (tree_index): Likewise.
8791         * calls.c (emit_call_1): Take args_so_far.  Adjust all
8792         callers.  Introduce CALL_POPS_ARGS.
8793         * tm.texi (CALL_POPS_ARGS): Document.
8794         * config/sh/crt1.asm: Implement in SHmedia mode.
8795         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
8796         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
8797         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
8798         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
8799         Implement divsi and udivsi in SHmedia mode.  Introduce
8800         SHcompact trampolines.
8801         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
8802         only in SHmedia64.
8803         (regno_reg_class): Rewrite.
8804         (fp_reg_names): Remove.
8805         (sh_register_names, sh_additional_register_names): New.
8806         (print_operand): Added `u'.  Support SUBREGs in addresses.
8807         Add parentheses around shifted CONSTs.
8808         (output_file_start): Output .mode and .abi directives.
8809         (shiftcosts, addsubcosts, multcosts): Adjust.
8810         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
8811         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
8812         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
8813         bytes, not registers.  Take into account the need for the
8814         SHcompact incoming args trampoline.  Adjust all callers.
8815         (sh_expand_prologue): Take stack_regs into account.  Call
8816         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
8817         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
8818         stack aligned as per SH5 ABI.
8819         (sh_builtin_saveregs): Support SH5 ABI.
8820         (sh_build_va_list, sh_va_start): Likewise.
8821         (initial_elimination_offset): Take alignment into account.
8822         Compute location of PR according to the SH5 stack frame.
8823         (arith_reg_operand): Reject branch-target registers.
8824         (shmedia_6bit_operand): New.
8825         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
8826         (target_reg_operand): Match DImode only.  Accept SUBREGs.
8827         (target_operand): New.
8828         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
8829         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
8830         SIBCALL_REGS for SHmedia.
8831         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
8832         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
8833         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
8834         (TARGET_SWITCHES): New SH5 flags.
8835         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
8836         VALID_REGISTER_P to disable unsupported registers.
8837         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
8838         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
8839         (FUNCTION_ARG_PADDING): Define.
8840         (FASTEST_ALIGNMENT): Adjust.
8841         (SH_REGISTER_NAMES_INITIALIZER): New.
8842         (sh_register_names): Declare.
8843         (DEBUG_REGISTER_NAMES): Define.
8844         (REGISTER_NAMES): Define based on sh_register_names.
8845         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
8846         (sh_additional_register_names): Declare.
8847         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
8848         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
8849         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
8850         (REGISTER_NATURAL_MODE): Define.
8851         (FIRST_PSEUDO_REGISTER): Adjust.
8852         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
8853         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
8854         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
8855         (VECTOR_MODE_SUPPORTED_P): Define.
8856         (REG_CLASS_CONTENTS): Adjust.
8857         (SMALL_REGISTER_CLASSES): Adjust.
8858         (REG_ALLOC_ORDER): Adjust.
8859         (INDEX_REG_CLASS): Adjust.
8860         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
8861         (CONST_OK_FOR_LETTER_P): Adjust.
8862         (PREFERRED_RELOAD_CLASS): Adjust.
8863         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
8864         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
8865         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
8866         (FIRST_FP_PARM_REG): Adjust.
8867         (CALL_POPS_ARGS): Define.
8868         (FUNCTION_ARG_REGNO_P): Adjust.
8869         (struct sh_args): New fields.
8870         (GET_SH_ARG_CLASS): Adjust.
8871         (INIT_CUMULATIVE_ARGS): Adjust.
8872         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
8873         (FUNCTION_ARG_ADVANCE): Adjust.
8874         (FUNCTION_ARG): Adjust.
8875         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
8876         (FUNCTION_ARG_CALLEE_COPIES): Define.
8877         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
8878         (STRICT_ARGUMENT_NAMING): Define.
8879         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
8880         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
8881         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
8882         (SETUP_INCOMING_VARARGS): Adjust.
8883         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
8884         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
8885         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
8886         (SUBREG_OK_FOR_INDEX_P): Adjust.
8887         (EXTRA_CONSTRAINT_S): Update.
8888         (EXTRA_CONSTRAINT_T): New.
8889         (EXTRA_CONSTRAINT): Adjust.
8890         (GO_IF_LEGITIMATE_INDEX): Adjust.
8891         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
8892         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
8893         (MOVE_MAX): Adjust.
8894         (MAX_MOVE_MAX): Define.
8895         (Pmode): Adjust.
8896         (CONST_COSTS): Adjust.
8897         (REGISTER_MOVE_COST): Adjust.
8898         (BRANCH_COST): Adjust.
8899         (TEXT_SECTION_ASM_OP): Adjust.
8900         (DBX_REGISTER_NUMBER): Adjust.
8901         (ASM_OUTPUT_DOUBLE_INT): New.
8902         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
8903         (PREDICATE_CODES): Adjust.
8904         (PROMOTE_MODE): Adjust.
8905         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
8906         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
8907         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
8908         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
8909         (DR0_REG, DR2_REG, DR4_REG): Renumber.
8910         (TR0_REG, TR1_REG, TR2_REG): New.
8911         (XD0_REG): Renumber.
8912         (UNSPEC_COMPACT_ARGS): New.
8913         (type): Added pt and ptabs.
8914         (length): Default to 4 on SHmedia.  Default pt length to 12
8915         and     20 on SHmedia32 and SHmedia64, respectively.
8916         (pt): New function unit.
8917         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
8918         Add whitespace between operands of SHmedia instructions.
8919         (movdicc): Fix.
8920         (adddi3_media, addsi3_media): Adjust constraints.
8921         (subsi3) [SHmedia]: Force operand 1 into a register.
8922         (udivsi3_i1_media, udivsi3_i4_media): New.
8923         (udivsi3): Support SHmedia.
8924         (divsi3_i1_media, divsi3_i4_media): New.
8925         (divsi3): Support SHmedia.
8926         (anddi3, iordi3, xordi3): Adjust constraints.
8927         (zero_extendhidi2, zero_extendqidi2): New.
8928         (extendsidi2, extendhidi2, extendqidi2): New.
8929         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
8930         (pop_e, pop_fpul, pop_4): Likewise.
8931         (movsi_media): Support FP and BT registers.
8932         (movsi_media_nofpu): New.  Adjust splits to DImode.
8933         (lduw, ldub): Renamed to zero_extend* above.
8934         (movqi_media): Fix typo.
8935         (movdi_media): Support FP and BT registers.
8936         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
8937         (movdi_const_32bit): New.
8938         (shori_media): Require immediate operand.  Use `u' for output.
8939         (movdf_media, movsf_media): Simplified.
8940         (movdf_media_nofpu, movsf_media_nofpu): New.
8941         (movdf, movsf): Adjust
8942         (movv2sf, movv2sf, movv16sf): New.
8943         (beq_media, beq_media_i): Adjust constraints.  Don't use
8944         scratch BT register.
8945         (bne_media, bne_media_i): Likewise.
8946         (bgt_media, bgt_media_i): Likewise.
8947         (bge_media, bge_media_i): Likewise.
8948         (bgtu_media, bgtu_media_i): Likewise.
8949         (bgeu_media, bgeu_media_i): Likewise.
8950         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
8951         bunordered): Emit jump insn.  Force operands to registers when
8952         needed.
8953         (jump_media, jump): Simplify.
8954         (call_compact, call_compact_rettramp): New.
8955         (call_value_compact, call_value_compact_rettramp): New.
8956         (call_media, call_value_media): Simplify.
8957         (sibcall_compact, sibcall_media): New.
8958         (call, call_value): Adjust for SHmedia and SHcompact.
8959         (sibcall, sibcall_value, untyped_call): Likewise.
8960         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
8961         (indirect_jump): Adjust for SHmedia.
8962         (casesi_jump_media): New.
8963         (nop): Re-enable for SHmedia.
8964         (call_site): Restrict to SH1.
8965         (casesi): Adjust for SHmedia.
8966         (casesi_shift_media, casesi_load_media): New.
8967         (return): Explicitly use PR register.  Call return trampoline
8968         on SHcompact.
8969         (return_i): Explicitly use PR register.
8970         (shcompact_return_tramp, shcompact_return_tramp_i): New.
8971         (return_media): Adjust.
8972         (shcompact_incoming_args): New.
8973         (epilogue): Adjust.
8974         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
8975         (movstrsi): Disable on SH5.
8976         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
8977         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
8978         (subsf3, subsf3_media): Likewise.
8979         (mulsf3, mulsf3_media, mac_media): Likewise.
8980         (divsf3, divsf3_media): Likewise.
8981         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
8982         (floatsisf2, fux_truncsfsi2): Likewise.
8983         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
8984         constraints.
8985         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
8986         (cmpunsf_media, cmpsf): Likewise.
8987         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
8988         (abssf2, abssf2_media): Likewise.
8989         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
8990         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
8991         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
8992         (floatsidf2, fix_truncdfsi2): Likewise.
8993         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
8994         constraints.
8995         (cmpeqdf_media, cmpgtdf_media): Likewise.
8996         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
8997         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
8998         (absdf2, absdf2_media): Likewise.
8999         (extendsfdf2, extendsfdf2_media): Likewise.
9000         (truncsfdf2, truncsfdf2_media): Likewise.
9001         * config/sh/sh64.h: New file.
9002         * config/sh/t-sh64: New file.
9003         * config/sh/shmedia.h: New file.
9004         * config/sh/ushmedia.h: New file.
9005         * config/sh/sshmedia.h: New file.
9006         * configure.in: Added sh64-*-elf.
9007         * configure: Rebuilt.
9008         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
9009         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
9010         (reg_class_from_letter): Use `b' for TARGET_REGS.
9011         (print_operand): Support `%M', `%m', `AND' and
9012         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
9013         (andcosts): Adjust for SHmedia.
9014         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
9015         Likewise.
9016         (target_reg_operand): New function.
9017         * config/sh/sh-protos.h (target_reg_operand): Declare.
9018         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
9019         FP registers on SH5.
9020         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
9021         on SH4.
9022         (TARGET_REGISTER_P): New macro.
9023         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
9024         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
9025         (EXTRA_CONSTRAINT_S): New macro.
9026         (EXTRA_CONSTRAINT): Adjust.
9027         (FLOAT_TYPE_SIZE): Define to 32.
9028         (Pmode): DImode on SHmedia.
9029         (CONST_COSTS): Adjust for SHmedia literals.
9030         (PREDICATE_CODES): Added target_reg_operand.
9031         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
9032         * config/sh/sh.md: Remove all attrs from SHmedia insns.
9033         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
9034         (cmpdi): Accept SHmedia.
9035         (movdicc_false, movdicc_true): New insns.
9036         (movdicc): New expand.
9037         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
9038         no_new_pseudos.
9039         (addsi3_media): Match `S' constraint.
9040         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
9041         (negdi2): Expand for SHmedia.
9042         (one_cmpldi2): New expand.
9043         (zero_extendsidi2): Change from expand to insn.
9044         (extendsidi2): Add constraints.
9045         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
9046         LD/ST address.  Fix SI immediate loading split.
9047         (movhi_media, movqi_media, lduw, ldub): New insns.
9048         (movhi, movqi): Accept SHmedia.
9049         (shori_media, movdi_media): Relax input constraints.  Split
9050         symbolic constants.
9051         (movdf_media, movsf_media): New insn.  New split to movdi.
9052         (movdf, movsf): Match on SHmedia.
9053         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
9054         bgeu_media): New insns and splits.  New insns with `_i' suffix.
9055         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
9056         (bunordered): New expand.
9057         (jump_compact): Renamed from `jump'.
9058         (jump_media): New insn.
9059         (jump): New expand.
9060         (call_media, call_value_media): New insns.
9061         (call, call_value): Adjust.
9062         (indirect_jump_compact): Renamed from `indirect_jump'.
9063         (indirect_jump_media): New insn.
9064         (indirect_jump): New expand.
9065         (untyped_call, return): Accept SHmedia.
9066         (return_media): New insn.
9067         (prologue, epilogue, blockage): Accept SHmedia.
9068         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
9069         (sunordered): New expand.
9070         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
9071         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
9072         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
9073         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
9074         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
9075         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
9076         abssf2_media): New insns.
9077         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
9078         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
9079         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
9080         floatdidf2, floatsidf2_media, fix_truncdfdi2,
9081         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
9082         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
9083         absdf2_media): New insns.
9084         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
9085         (extendsfdf2_media, truncdfsf2_media): New insns.
9086         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
9087         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
9088         * config/sh/sh.h (CONST_OK_FOR_J): Document.
9089         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
9090         * config/sh/sh.md (adddi3): New expand.
9091         (adddi3_media, adddi3z_media): New insns.
9092         (adddi3_compact): Renamed from adddi3.
9093         (addsi3_media): Use add.l r63 to add constant zero.
9094         (subdi3): New expand.
9095         (subdi3_media): New insn.
9096         (subdi3_compact): Renamed from subdi3.
9097         (mulsidi3): New expand.
9098         (mulsidi3_media): New insn.
9099         (mulsidi3_compact): Renamed from mulsidi3.
9100         (umulsidi3): New expand.
9101         (umulsidi3_media): New insn.
9102         (umulsidi3_compact): Renamed from umulsidi3.
9103         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
9104         (ashlsi3, ashrsi3, lshrsi3): Use them.
9105         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
9106         (ashldi3, ashrdi3, lshrdi3): Use them.
9107         (zero_extendsidi2): New expand.
9108         (extendsidi2): New insn.
9109         (movsi_media): New insn.  Split to movdi to load constants.
9110         (movsi): Enable for shmedia.
9111         (movdi_media): New insn.  Use shori_media to load wide constants.
9112         (short_media): New insn.
9113         (movdi): Enable for shmedia.
9114         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
9115         * config/sh/sh.h (CPP_SPEC): Added `m5'.
9116         (SUBTARGET_CPP_SPEC): Added `!m5'.
9117         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
9118         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
9119         to all other SH variants.
9120         (TARGET_DEFAULT): Set to SH1_BIT.
9121         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
9122         (BITS_PER_WORD): Raise to 64 on shmedia.
9123         (MAX_BITS_PER_WORD): Change to 64.
9124         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
9125         (INT_TYPE_SIZE): Keep as 32.
9126         (UNITS_PER_WORD): Raise to 8 on shmedia.
9127         (MIN_UNITS_PER_WORD): Keep as 4.
9128         (POINTER_SIZE): Raise to 64 on shmedia.
9129         (CONST_OK_FOR_J): New macro.
9130         (CONST_OK_FOR_LETTER_P): Use it.
9131         (processor_type): Add PROCESSOR_SH5.
9132         * config/sh/sh.md: Conditionalize all expands, insns and
9133         splits to TARGET_SH1.
9134         (cpu): Added sh5.
9135         (addsi3_compact): Renamed from...
9136         (addsi3): Now an expand.
9137         (addsi3_media, subsi3_media): New insns.
9138         (subsi3): Don't negate constants with SHmedia.
9139
9140         * hooks.c: New file.
9141         * hooks.h: New file.
9142         * Makefile.in (HOOKS_H): New.
9143         (TARGET_DEF_H): Added $(HOOKS_H).
9144         (OBJS): Added hooks.o.
9145         (cfgcleanup.o, bb-reorder.o): Added target.h.
9146         (hooks.o): Added dependencies.
9147         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
9148         (TARGET_INITIALIZER): this.
9149         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
9150         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
9151         * bb-reorder.c: Include target.h.
9152         (reorder_basic_blocks): Skip if cannot modify jumps.
9153         * cfgcleanup.c: Include target.h.
9154         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
9155
9156 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
9157
9158         * config/mips/mips.md (casesi_internal, casesi_internal_di):
9159         Protect jump delay slot instructions with .set noreorder and
9160         .set nomacro.
9161
9162 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
9163
9164         * config/mips/mips.md (casesi_internal_di): Calculate
9165         the index into the target offset table correctly.
9166
9167 2002-02-08  Richard Henderson  <rth@redhat.com>
9168
9169         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
9170         * final.c (output_addr_const): Accept and discard SUBREG.
9171         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
9172         mark them unknown instead.
9173         (simplify_subtraction): Handle RTX_UNKNOWN.
9174         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
9175
9176 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
9177
9178         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
9179
9180 2002-02-08  Richard Henderson  <rth@redhat.com>
9181
9182         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
9183
9184 2002-02-08  Andreas Jaeger  <aj@suse.de>
9185
9186         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
9187         * config/i386/t-linux64: New file.
9188
9189 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
9190
9191         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
9192         * c-parse.in (compstmt): Clear last_expr_type.
9193
9194 2002-02-07  Richard Henderson  <rth@redhat.com>
9195
9196         * loop.c (strength_reduce): Sink final_value when not
9197         eliminating a biv.
9198
9199 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
9200
9201         * config/sparc/freebsd.h: Fix mismatched spec {.
9202
9203 2002-02-07  Richard Henderson  <rth@redhat.com>
9204
9205         * cfgrtl.c: Include recog.h and insn-config.h.
9206         (keep_with_call_p): Fix general_operand invocation.
9207         * Makefile.in (cfgrtl.o): Update dependencies.
9208
9209 2002-02-07  Kazu Hirata  <kazu@hxi.com>
9210
9211         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
9212         comment.  Accept HImode only if TARGET_H8300.
9213
9214 2002-02-07  Eric Christopher  <echristo@redhat.com>
9215
9216         * config/mips/crtn.asm: Cleanup #ifdefs.
9217
9218 2002-02-07  Eric Christopher  <echristo@redhat.com>
9219
9220         * config/mips/crti.asm: Add changes for mips16. mips16 uses
9221         register 7 as RA instead of $31.
9222         * config/mips/crtn.asm: Ditto.
9223         * config/mips/mips.c (mips_move_2words): Add case for
9224         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
9225         (compute_frame_size): Fix typo.
9226         (save_restore_insns): Ditto.  Make documentation about using
9227         register $7 as return register more precise.
9228         (mips_expand_epilogue): Fix comment. Add code to work around not
9229         being able to add to the stack pointer directly.
9230         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
9231         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
9232         epilogue.
9233
9234 2002-02-07  Tom Rix  <trix@redhat.com>
9235
9236         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
9237         immediates in ldu and stdu DS opcode field.
9238         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
9239         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
9240         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
9241
9242 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
9243
9244         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
9245         offset for stack bias.
9246
9247 2002-02-07  H.J. Lu <hjl@gnu.org>
9248
9249         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
9250
9251 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
9252
9253         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
9254
9255 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
9256
9257         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
9258         * i386.c (x86_order_regs_for_local_alloc): New global function.
9259         * i386.h (REG_ALLOC_ORDER): CLeanup.
9260         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
9261
9262 2002-02-07  Richard Henderson  <rth@redhat.com>
9263
9264         PR optimization/2463
9265         * alias.c (find_base_value): Recall base values for fixed hard regs.
9266         * loop.c (loop_regs_update): Don't use single_set on non-insns.
9267
9268 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
9269
9270         * config/mips/mips.md (define_delay) [mips16]: Adjust required
9271         length.
9272
9273 2002-02-06  Richard Henderson  <rth@redhat.com>
9274
9275         PR c/5609
9276         * stmt.c (resolve_operand_name_1): Take more care with mixed
9277         named and unnamed operands.
9278
9279 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
9280             Jan Hubicka  <jh@suse.cz>
9281
9282         * loop.c (remove_constant_addition): Avoid clobbering a shared
9283         CONST expression.
9284
9285 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9286
9287         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
9288         * config/s390/t-linux64: New file.
9289         * config/s390/libgcc-glibc.ver: New file.
9290
9291 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9292
9293         * config/s390/linux64.h: Delete file.
9294         * config/s390/s390x.h: New file.
9295         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
9296         as target header file.
9297         * config/s390/linux.h (TARGET_VERSION): Define depending on
9298         DEFAULT_TARGET_64BIT.
9299         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
9300         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
9301         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
9302         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
9303         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
9304         (EXTRA_SPEC): New define.
9305         * config/s390/s390.h (TARGET_VERSION): Define depending on
9306         DEFAULT_TARGET_64BIT.
9307         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
9308
9309 2002-02-06  Jason Merrill  <jason@redhat.com>
9310
9311         * c-decl.c (finish_function): Warn about a non-void function with
9312         no return statement and no abnormal exit.
9313         (current_function_returns_abnormally): New variable.
9314         (start_function): Clear it.
9315         (struct c_language_function): Add returns_abnormally.
9316         (push_c_function_context): Save it.
9317         (pop_c_function_context): Restore it.
9318         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
9319         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
9320         an explicit return type.
9321         * c-tree.h: Declare current_function_returns_abnormally.
9322         (C_FUNCTION_IMPLICIT_INT): New macro.
9323         * c-typeck.c (build_function_call): Set it.
9324         (c_expand_return): Set current_function_returns_value even if the
9325         value is erroneous.
9326
9327 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9328
9329         PR c/5420:
9330         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
9331         unsafe for reevaluation.
9332
9333 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
9334
9335         PR c/5482:
9336         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
9337         EXPR_STMT, but COMPOUND_STMT, recurse into it.
9338
9339 2002-02-06  Richard Henderson  <rth@redhat.com>
9340
9341         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
9342         be a general_operand.  Dest for function value must be a pseudo.
9343
9344 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
9345
9346         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
9347         as SYMBOL_REFs from the constant pool.
9348
9349 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
9350
9351         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
9352         passed by invisible reference.
9353
9354 2002-02-05  Richard Henderson  <rth@redhat.com>
9355
9356         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
9357
9358 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
9359
9360         Implement using "base addresses" in insn operands as default.
9361         * config/mmix/mmix.c (mmix_conditional_register_usage): if
9362         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
9363         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
9364         used to read the rtx value.
9365         (mmix_target_asm_function_epilogue): Fix spacing.
9366         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
9367         (mmix_legitimate_address): Ditto.
9368         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
9369         should be loaded with a GETA insn.  Don't allocate needless extra
9370         char for nul termination and fix misleading comment.
9371         (mmix_print_operand_address): Handle constants if
9372         TARGET_BASE_ADDRESSES.
9373         (mmix_output_register_setting): Use base addressing if
9374         TARGET_BASE_ADDRESSES and the number of insns is 3.
9375         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
9376         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
9377         to use R as constraint, add LDA to match s.
9378         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
9379         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
9380         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
9381         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
9382         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
9383         order with other fixed registers.
9384         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
9385         other parameter/call-clobbered registers.
9386         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
9387         -mbase-addresses, -mno-base-addresses.
9388         (MMIX Options): Ditto.
9389
9390 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9391
9392         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
9393
9394 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
9395
9396         * config/rs6000/altivec.h: Change elem to _S_elem.
9397
9398 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9399
9400         * config/netbsd.h (WCHAR_TYPE): Define.
9401         (WCHAR_TYPE_SIZE): Ditto.
9402         (WINT_TYPE): Ditto.
9403         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
9404         (WCHAR_UNSIGNED): Ditto.
9405         (WCHAR_TYPE_SIZE): Ditto.
9406         (WINT_TYPE): Ditto.
9407         * config/arm/netbsd.h: Likewise.
9408         * config/i386/netbsd-elf.h: Likewise.
9409         * config/i386/netbsd.h: Likewise.
9410         * config/m68k/netbsd-elf.h: Likewise.
9411         * config/m68k/netbsd.h: Likewise.
9412         * config/ns32k/netbsd.h: Likewise.
9413         * config/sparc/netbsd.h: Likewise.
9414         * config/vax/netbsd.: Likewise.
9415
9416 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
9417
9418         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
9419         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
9420         (TARGET_INITIALIZER): this.
9421         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
9422         (BITFIELD_NBYTES_LIMITED): Markup fix.
9423         * tree.h (default_ms_bitfield_layout_p): Declare.
9424         (record_layout_info): Added prev_field.
9425         * tree.c (default_ms_bitfield_layout_p): New fn.
9426         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
9427         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
9428         * stor-layout.c: Include target.h.
9429         (start_record_layout): Initialize prev_field.
9430         (place_field): Handle MS bit-field layout, and disregard
9431         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
9432         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
9433         * Makefile.in (stor-layout.o): Adjust dependencies.
9434
9435 2002-02-05  Jason Merrill  <jason@redhat.com>
9436
9437         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
9438
9439 2002-02-05  Andreas Jaeger  <aj@suse.de>
9440
9441         * crtstuff.c: Fix comments.
9442
9443 2002-02-05  Richard Henderson  <rth@redhat.com>
9444
9445         PR fortran/3393
9446         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
9447         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
9448
9449         PR fortran/3392
9450         * config/mips/mips.c (function_arg): Handle TImode.
9451         (function_arg_advance): Likewise.
9452
9453 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9454
9455         * config/rs6000/altivec.h (vec_step_help): Rename to
9456         __vec_step_help.
9457
9458 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9459
9460         * config/rs6000/altivec.h: Fix typos.
9461
9462 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
9463
9464         * config/arm/netbsd.h: Correct a comment.
9465
9466 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9467
9468         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
9469         building void typed builtins.
9470
9471         * config/rs6000/altivec.h (vec_ld*): Fix typos.
9472         (vec_step): Implement for C++.
9473
9474 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9475
9476         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
9477
9478 2002-02-04  Richard Henderson  <rth@redhat.com>
9479
9480         * combine.c (nonzero_bits): Re-introduce special case for
9481         sp/fp/ap wrt REGNO_POINTER_ALIGN.
9482
9483 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
9484
9485         * doc/extend.texi: Warn about unsupported usage of altivec
9486         builtins.
9487
9488         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
9489         (altivec_predicate_*): New.
9490
9491         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
9492         Add C++ version of vec_*() functions.
9493
9494         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
9495         (bdesc_2arg): Remove altivec predicates.
9496         (altivec_expand_builtin): Handle predicates.
9497         (altivec_init_builtins): Handle predicates.
9498         (altivec_expand_predicate_builtin): New.
9499
9500 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9501
9502         * pa.c (DO_FRAME_NOTES): Move forward.
9503         (store_reg): Revise handling of frame notes.
9504         (load_reg): Likewise.
9505         (set_reg_plus_d): Likewise.
9506         (hppa_expand_prologue): Likewise.
9507         (hppa_expand_epilogue): Likewise.
9508
9509 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9510
9511         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
9512
9513 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9514
9515         PR c/4475, c++/3780:
9516         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
9517         * c-common.h (SWITCH_TYPE): Define.
9518         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
9519         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
9520         Rename spareness variable to sparseness.
9521         (expand_end_case_type): Renamed from expand_end_case, use orig_type
9522         if non-NULL instead of TREE_TYPE (orig_index).
9523         * tree.h (expand_end_case_type): Renamed from expand_end_case.
9524         (expand_end_case): Define using expand_end_case_type.
9525         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
9526         to expand_end_case_type.
9527         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
9528
9529 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9530
9531         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
9532         (BIGGEST_ALIGNMENT): Change to 128.
9533
9534 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9535
9536         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
9537
9538 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9539
9540         * pa.md (call_internal_reg_64bit): Remove unused variable.
9541
9542 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
9543
9544         * config/arm/arm.h (machine_function): Add uses_anonymous_args
9545         field.
9546         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
9547         * config/arm/arm.c (current_function_anonymous_args): Delete,
9548         replace uses with cfun->machine->uses_anonymous_args.
9549         (arm_reorg): Do not reset uses_anonymous_args.
9550
9551         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
9552         any geenral register.
9553
9554 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
9555
9556         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
9557         the entry block.
9558
9559 2002-02-04  Richard Henderson  <rth@redhat.com>
9560
9561         * combine.c (force_to_mode): Remove STACK_BIAS code.
9562         (nonzero_bits): Likewise.  Replace sp/fp special case with
9563         REGNO_POINTER_ALIGN.
9564
9565         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
9566         (HARD_FRAME_POINTER_REGNUM): New.
9567         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
9568         (FIXED_REGS, CALL_USED_REGS): Update.
9569         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
9570         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
9571         (HARD_REGNO_NREGS): Update for SFP.
9572         (STACK_POINTER_OFFSET): Include bias here ...
9573         (FIRST_PARM_OFFSET): ... not here.
9574         (STACK_BIAS): Remove.
9575         (INIT_EXPANDERS): New.
9576         (STARTING_FRAME_OFFSET): Do not include bias.
9577         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
9578         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
9579         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
9580         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
9581         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
9582         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
9583         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
9584         (MUST_SAVE_REGISTER): Likewise.
9585         (sparc_flat_function_prologue): Likewise.
9586         (sparc_flat_function_epilogue): Likewise.
9587         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
9588         (sparc_init_modes): SFP is GENERAL_REGS.
9589         (sparc_builtin_saveregs): SFP does not have bias applied.
9590
9591 2002-02-04  Richard Henderson  <rth@redhat.com>
9592
9593         * config/alpha/alpha.c (current_function_is_thunk): Don't check
9594         current_function_is_thunk.
9595         (alpha_sa_mask): Distinguish between current_function_is_thunk
9596         called from ASM_OUTPUT_MI_THUNK and not.
9597         (alpha_does_function_need_gp): Thunks always need gp.
9598         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9599         (alpha_output_mi_thunk_osf): New.
9600         * config/alpha/alpha-protos.h: Update.
9601         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
9602
9603 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
9604
9605         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
9606         function types, not when they're taken away.
9607
9608 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
9609
9610         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
9611         CODE_LABEL and jump table when replacing a table jump with a
9612         simple jump.
9613
9614 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9615
9616         * config/s390/s390-protos.h (legitimize_la_operand,
9617         s390_secondary_input_reload_class, s390_plus_operand,
9618         s390_expand_plus_operand): Add prototypes.
9619
9620         config/s390/s390.c (s390_secondary_input_reload_class,
9621         s390_plus_operand, s390_expand_plus_operand): New functions.
9622
9623         (struct s390_address): New member 'pointer'.
9624         (s390_decompose_address): Compute it.
9625         (legitimate_la_operand_p): Use it.
9626         (legitimize_la_operand): New function.
9627         (movti, movdi, movdf splitters): Call it.
9628
9629         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
9630         (PREDICATE_CODES): Add s390_plus_operand.
9631
9632         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
9633         (la_ccclobber): Allow GENERAL_REGS as output operand.
9634
9635         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
9636         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
9637         (*la_64, *la_31, reload_indi, reload_insi): ... these.
9638
9639 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
9640
9641         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
9642         register names for regular asm () construct.
9643
9644 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9645
9646         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
9647         registers.
9648
9649 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
9650
9651         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
9652         pat for recog.
9653
9654 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
9655
9656         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
9657         constant pool to be identical by string address and index.
9658
9659 2002-02-04  Anthony Green  <green@redhat.com>
9660
9661         * output.h (SECTION_OVERRIDE): Define.
9662         * varasm.c (named_section): Obey SECTION_OVERRIDE.
9663
9664 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9665
9666         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
9667         by existing arm*-*-netbsd* (a.out) target.
9668         (ns32k-*-netbsdelf*): Likewise.
9669         (sparc-*-netbsdelf*): Likewise.
9670         (vax-*-netbsdelf*): Likewise.
9671
9672 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
9673
9674         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
9675         headers and libobjc headers.
9676
9677 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
9678
9679         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
9680         (_mingw.h): Remove duplicate include.
9681
9682 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
9683
9684         * config.gcc: Set cpu_type to m68k for 68010, as well.
9685         (m68010-*-netbsdelf*): New...
9686         (m68k*-*-netbsdelf*): ...targets.
9687         * config/m68k/netbsd-elf.h: New file.
9688
9689 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9690
9691         * config/h8300/h8300.c (hand_list): Move inside function_arg.
9692
9693 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9694
9695         * config/h8300/h8300.c (h8_push_ops): Move inside
9696         h8300_init_once.
9697         (h8_pop_ops): Likewise.
9698         (h8_move_ops): Likewise.
9699
9700 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9701
9702         * config/h8300/h8300.c (os_task): Make it static.
9703         (monitor): Likewise.
9704         (pragma_saveall): Likewise.
9705
9706 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
9707
9708         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
9709         constant is a valid sign-extension for Pmode.
9710
9711 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9712
9713         * config/h8300/h8300.c: Fix formatting.
9714
9715 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9716
9717         * config/h8300/h8300.md: Fix formatting.
9718
9719 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9720
9721         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
9722         predicates of operands[1].  Split the patterns for each
9723         processor variant.
9724
9725 2002-02-02  Kazu Hirata  <kazu@hxi.com>
9726
9727         * config/h8300/h8300.md (xor patterns): Tighten the predicates
9728         of operands[1] to register_operand.
9729
9730 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9731
9732         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
9733         * cpphash.c (_cpp_init_hashtable): Similarly.
9734         * cppinit.c (cpp_create_reader): Default the signed_char flag.
9735         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
9736         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
9737         (cpp_handle_option): Handle the new options.
9738         * cpplex.c (cpp_interpret_charconst): Use new flag.
9739         * cpplib.h (struct cpp_options): New member signed_char.
9740         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
9741         (cpp_options): Handle -fsigned-char and -funsigned-char.
9742         (static_specs): Remove signed_char_spec.
9743         (do_spec1): Don't handle %c.
9744         * system.h: Poison SIGNED_CHAR_SPEC.
9745         * tradcif.y (yylex): Use flag_signed_char.
9746         * tradcpp.h (flag_signed_char): New.
9747         * tradcpp.c (flag_signed_char): New.
9748         (main): Handle new command-line options.
9749         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
9750 config:
9751         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
9752         * avr/avr.h: Remove old comments.
9753         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
9754         (CC1_SPEC): Pass -fsigned-char if -mic*.
9755         (SIGNED_CHAR_SPEC): Remove.
9756 doc:
9757         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
9758
9759 2002-02-01  Eric Christopher  <echristo@redhat.com>
9760
9761         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
9762         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
9763         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
9764         (ASM_OUTPUT_REG_POP): Ditto.
9765
9766 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9767
9768         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
9769         patch.
9770
9771 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9772
9773         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
9774
9775 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
9776
9777         PR c/5304:
9778         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
9779         unconditionally.
9780
9781 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9782
9783         * cfganal.c: Include tm_p.h.
9784         (keep_with_call_p): Fix the test that determines if a register holds
9785         the return value of a call.
9786
9787 2002-02-01  DJ Delorie  <dj@redhat.com>
9788
9789         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
9790         we are given conflicting registers, switch to the other one we
9791         had allocated for us.
9792         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
9793         as TImode so we know when the "other" register is available.
9794
9795 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
9796
9797         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
9798         sparc/sparc_bi.h.
9799
9800 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
9801
9802         * cfganal.c (keep_with_call_p): New function.
9803         (flow_call_edges_add): Prevent splitting a block between a call and
9804         a single-set instruction that should be kept in the same block.
9805
9806 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9807
9808         * doc/install.texi (avr): Update outdated URL.
9809
9810 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
9811
9812         * config/stormy16/stormy16.md (pushqi): New.
9813         (popqi): New.
9814         (pushhi): New.
9815         (pophi): New.
9816         (movhi): Remove stack operands.
9817         (movqi): Likewise.
9818         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
9819         nonimmediate_nonstack_operand.
9820         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
9821         New.
9822         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
9823         New.
9824
9825 2002-01-31  Jason Merrill  <jason@redhat.com>
9826
9827         * Makefile.in (c-parse.c): Handle .output file.
9828         * objc/Make-lang.in (objc-parse.c): Likewise.
9829
9830 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
9831
9832         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
9833         the -me[lb] option is given.  Don't output the default flag
9834         twice.
9835
9836 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
9837
9838         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
9839         the primary source file; this has not been done yet.
9840         * c-decl.c (c_expand_body): Reset input_filename from
9841         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
9842
9843 2002-01-31  Kazu Hirata  <kazu@hxi.com>
9844
9845         * rtlanal.c (subreg_regno_offset): Do not use
9846         SUBREG_REGNO_OFFSET.
9847         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
9848         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
9849
9850 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9851
9852         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
9853         version rather than GNATS version in --version output.
9854
9855 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
9856
9857         * ifcvt.c (noce_process_if_block): Make a copy of the destination
9858         when copying back from a temporary.
9859
9860 2002-01-30  Richard Henderson  <rth@redhat.com>
9861
9862         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
9863         and new_dest are the same.
9864
9865 2002-01-30  Richard Henderson  <rth@redhat.com>
9866
9867         PR opt/5076
9868         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
9869         * rtl.c (note_insn_name): Update.
9870         * emit-rtl.c (remove_unnecessary_notes): Kill it.
9871         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
9872         to perform loop rotation.
9873         (expand_exit_loop_top_cond): New.
9874         * tree.h (expand_exit_loop_top_cond): Declare it.
9875         * c-semantics.c (genrtl_while_stmt): Use it.
9876         (genrtl_for_stmt): Likewise.
9877
9878 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
9879
9880         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
9881         arguments to 64-bit boundaries on 64-bit ABIs.
9882
9883 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
9884
9885         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
9886
9887 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
9888
9889         * c-decl.c (grokdeclarator): Handle type being a typedef for an
9890         invalid type.
9891
9892 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
9893
9894         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
9895         * config/sparc/sparc_bi.h: Remove file.
9896         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
9897
9898 2002-01-30  Richard Henderson  <rth@redhat.com>
9899
9900         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
9901
9902 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
9903
9904         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
9905
9906 2002-01-30  Jason Merrill  <jason@redhat.com>
9907
9908         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
9909         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
9910         (reg_save): Use DW_CFA_offset_extended_sf instead.
9911
9912         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
9913
9914 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9915
9916         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
9917         in cselib_lookup.
9918
9919 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
9920
9921         * rs6000.md ("*call_value_local32"): Remove constraints.
9922         ("*call_value_local64"): Same.
9923         ("*call_value_indirect_nonlocal_aix32"): Same.
9924         ("*call_value_nonlocal_aix32"): Same.
9925         ("*call_value_indirect_nonlocal_aix64"): Same.
9926         ("*call_value_nonlocal_aix64"): Same.
9927         ("*call_value_nonlocal_sysv"): Same.
9928
9929 2002-01-29  Richard Henderson  <rth@redhat.com>
9930
9931         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
9932
9933 2002-01-29  Richard Henderson  <rth@redhat.com>
9934
9935         * expr.c (force_operand): Ignore flag_pic for detecting pic
9936         address loads.
9937         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
9938         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
9939         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
9940         instead of open-coded loop.
9941         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
9942         be fixed when in use.
9943
9944 2002-01-29  Richard Henderson  <rth@redhat.com>
9945
9946         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
9947         * sched-rgn.c (propagate_deps): Update them.
9948         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
9949         clobbers list when either gets too long.
9950
9951 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
9952
9953         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
9954         and INDEX_REGS the same as GENERAL_REGS.
9955         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9956
9957 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9958
9959         * tree.c (build_nonstandard_integer_type): Correct prototype.
9960
9961 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
9962
9963         * config/s390/s390.md (movstrsico, movstrdix_64,
9964         movstrsix_31): Remove, replace by ...
9965         (movstrdi_short, movstrsi_short, movstrdi_long,
9966         movstrsi_long): ... these.  New.
9967         (movstrdi, movstrsi): Adapt.
9968
9969         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
9970         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
9971         Remove unnecessary CC clobber.
9972         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
9973         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
9974
9975         (divmoddi4): Don't partially initialize TImode register.
9976
9977 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
9978
9979         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
9980
9981 2002-01-29  Richard Henderson  <rth@redhat.com>
9982
9983         * flow.c (print_rtl_and_abort): Remove.
9984         (print_rtl_and_abort_fcn): Remove.
9985         (verify_local_live_at_start): Use dump_bb instead.
9986         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
9987         (verify_wide_reg_1): Return 2 on mode test failure.
9988
9989 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9990
9991         PR c/3325, c/3326, c/2511, c/3347
9992         * c-decl.c (enum_decl_context): Remove BITFIELD.
9993         (grokdeclarator): Take bitfield width as an input.
9994         Ensure bitfields are given the correct type.  Perform
9995         bitfield width validation with build_bitfield_integer_type
9996         rather than waiting for finish_struct.
9997         (grok_typename, grok_typename_in_parm_context, start_decl,
9998         push_parmdecl, grokfield, start_function): Update calls to
9999         grokdeclarator.
10000         (build_bitfield_integer_type): New function.
10001         (finish_struct): Move bitfield validation to grokdeclarator
10002         and build_bitfield_integer_type.
10003         * tree.c (build_nonstandard_integer_type): New function.
10004         * tree.h (build_nonstandard_integer_type): New prototype.
10005 objc:
10006         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
10007
10008 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
10009
10010         PR other/1502:
10011         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
10012         don't ignore unrecognized -W* options.
10013         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
10014         * cpplib.h (cpp_handle_option): Adjust prototype.
10015         * c-decl.c (c_decode_options): Pass 0 as last argument to
10016         cpp_handle_option.
10017
10018         PR c/2896:
10019         * gcc.c (cpp_unique_options): Split from cpp_options.
10020         (cpp_options): Source cpp_unique_options.
10021         (default_compilers): Use cpp_unique_options instead of cpp_options
10022         when used together with cc1_options.
10023         (static_specs): Add cpp_unique_options.
10024         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
10025         when used together with cc1_options.
10026
10027 2002-01-29  Kazu Hirata  <kazu@hxi.com>
10028
10029         * config/h8300/h8300-protos.h: Update the prototype of
10030         output_a_shift.
10031         * config/h8300/h8300.c (output_a_shift): Remove an unused
10032         argument 'insn'.  Remove redundant code.
10033         * config/h8300/h8300.md: Adust to the new prototype of
10034         output_a_shift.
10035
10036 2002-01-29  Kazu Hirata  <kazu@hxi.com>
10037
10038         * config/h8300/h8300-protos.h: Update the prototypes of
10039         emit_a_rotate and expand_a_rotate.
10040         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
10041         first argument to 'enum rtx_code'.
10042         (expand_a_rotate): Likewise.
10043
10044 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10045
10046         * config/h8300/h8300-protos.h: Update the prototype of
10047         output_simode_bld.
10048         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
10049         'log2'.
10050         * config/h8300/h8300.md: Adjust to the new prototype.
10051
10052 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10053
10054         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
10055         redundant code.
10056
10057 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10058
10059         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
10060         is a fixed register before returning pic_offset_table_rtx.
10061         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
10062         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
10063
10064 2002-01-28  Jason Merrill  <jason@redhat.com>
10065
10066         * dwarf2.h: Sync with src version.
10067
10068 2002-01-28  Paul Koning  <pkoning@equallogic.com>
10069
10070         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
10071         BT_FN_VOID_PTR_VAR.
10072         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
10073         * doc/extend.texi (__builtin_prefetch): Update documentation:
10074         first argument is now const void ptr.
10075
10076 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10077
10078         * config/h8300/h8300-protos.h: Remove an unused prototype.
10079
10080 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
10081
10082         * toplev.c (lang_independent_init): Round up identifier size.
10083
10084 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
10085
10086         * config.gcc: Revert previous change.
10087
10088 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
10089
10090         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
10091
10092 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
10093
10094         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
10095         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
10096         other non-elf netbsd config frags.
10097         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
10098         collect2 will does that.
10099         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
10100         shared-lib frobbing will work.
10101
10102 2002-01-28  Kazu Hirata  <kazu@hxi.com>
10103
10104         * config/h8300/h8300.h: Fix formatting.
10105         * config/h8300/h8300.md: Likewise.
10106
10107 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
10108
10109         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
10110         the old, removed AAA_standards fix.
10111         * fixinc/fixincl.x: Rebuilt.
10112
10113 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
10114
10115         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
10116         atexit call in crtbegin, hooked in after call to frame_dummy;
10117         register EH before registering __fini__start.
10118
10119 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
10120
10121         * config/rs6000/altivec.h: Remove spurious semicolons.
10122
10123 2002-01-27  Kazu Hirata  <kazu@hxi.com>
10124
10125         * config/h8300/h8300.md: Replace dead bit extraction patterns
10126         with ones that work.
10127
10128 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10129
10130         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
10131         if not STRICT_ALIGNMENT.
10132         * rtl.h (MEM_ALIGN): Likewise.
10133
10134 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10135
10136         * doc/invoke.texi (-fdump-translation-unit): Revert this
10137         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10138
10139 2002-01-27  Kazu Hirata  <kazu@hxi.com>
10140
10141         * config/h8300/h8300.md (define_constants): New.
10142         (anonymous patterns) Use defined constants appropriately.
10143
10144 2002-01-27  Kazu Hirata  <kazu@hxi.com>
10145
10146         * config/h8300/h8300.c (function_arg): Remove redundant code.
10147
10148 2002-01-26  Richard Henderson  <rth@redhat.com>
10149
10150         * sched-deps.c (reg_pending_uses_head): New.
10151         (reg_pending_barrier): Rename from reg_pending_sets_all.
10152         (find_insn_list): Don't mark inline.
10153         (find_insn_mem_list): Remove.
10154         (add_dependence_list, add_dependence_list_and_free): New.
10155         (flush_pending_lists): Replace only_write param with separate
10156         for_read and for_write parameters.  Update all callers.  Use
10157         add_dependence_list_and_free.
10158         (sched_analyze_1): Do not add reg dependencies here; just set
10159         the pending bits.  Use add_dependence_list.
10160         (sched_analyze_2): Likewise.
10161         (sched_analyze_insn): Replace schedule_barrier_found with
10162         reg_pending_barrier.  Add all dependencies for pending reg
10163         uses, sets, and clobbers.
10164         (sched_analyze): Don't add reg dependencies for calls, just
10165         set pending bits.  Use regs_invalidated_by_call.  Treat
10166         sched_before_next_call as a normal list, not a fake insn.
10167         (init_deps): No funny init for sched_before_next_call.
10168         (free_deps): Free pending mems lists.  Don't zero reg_last.
10169         (init_deps_global): Init reg_pending_uses.
10170         (finish_deps_global): Free it.
10171         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
10172         (find_insn_mem_list): Remove.
10173         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
10174         (propagate_deps): Use them.  Zero temp mem lists.
10175
10176 2002-01-26  Richard Henderson  <rth@redhat.com>
10177
10178         * Makefile.in (CRTSTUFF_CFLAGS): New.
10179         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
10180         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
10181         crtstuff.c instead of alpha assembly version.
10182         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
10183         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
10184         not FORCE_{INIT,FINI}_SECTION_ALIGN.
10185         (__do_global_dtors_aux): Mark used.
10186         (frame_dummy, __do_global_ctors_aux): Mark used.
10187         (fini_dummy, init_dummy): Remove.
10188
10189         * config/alpha/crtbegin.asm: Remove file.
10190         * config/alpha/crtend.asm: Remove file.
10191         * config/alpha/t-crtbe: Remove file.
10192         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
10193         (LINK_EH_SPEC): New.
10194
10195         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
10196         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
10197         calling constructors.
10198         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
10199
10200         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
10201         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
10202         CRT_END_INIT_DUMMY hack.
10203         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
10204         FORCE_{INIT,FINI}_SECTION_ALIGN.
10205
10206         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
10207         FORCE_{INIT,FINI}_SECTION_ALIGN.
10208
10209         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
10210         invocation sequence.
10211         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
10212
10213         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
10214         (FORCE_CODE_SECTION_ALIGN): New.
10215
10216 2002-01-26  Richard Henderson  <rth@redhat.com>
10217
10218         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
10219
10220 2002-01-26  Richard Henderson  <rth@redhat.com>
10221
10222         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
10223         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
10224
10225 2002-01-26  Kazu Hirata  <kazu@hxi.com>
10226
10227         * config/h8300/h8300.md: Remove bit extraction patterns that
10228         cannot be triggered.
10229         Restrict each bit extraction pattern to a variant on which the
10230         pattern is tested.
10231
10232 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
10233
10234         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
10235
10236 2002-01-26  Kazu Hirata  <kazu@hxi.com>
10237
10238         * config/h8300/h8300.md: Remove bit test patterns that cannot
10239         be triggered.
10240         Restrict each bit test pattern to a variant on which the
10241         pattern is tested.
10242
10243 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10244
10245         * builtins.c (expand_builtin_strncat): Remove redundant check for
10246         INTEGER_CST.
10247
10248 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
10249
10250         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
10251         default setting.
10252         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
10253         existing setting.
10254
10255 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10256
10257         * dbxout.c (dbxout_init): Use assemble_name rather than just
10258         stripping off the first character.
10259         (dbxout_source_file): Likewise.
10260
10261 2002-01-25  DJ Delorie  <dj@redhat.com>
10262
10263         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
10264         using rtx_equal_p, not by comparing pointers.
10265
10266 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
10267
10268         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
10269         for PIC_OFFSET_TABLE_REGNUM.
10270         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
10271
10272 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
10273
10274         * config.gcc (x86_64-*-freebsd*): New target.
10275         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
10276         value.
10277         (i[34567]86-*-freebsd*): Don't include svr4.h.
10278         * config/i386/freebsd64.h: New file.
10279
10280 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
10281
10282         * config/alpha/x-vms (version): Make static.
10283
10284         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
10285         in previous checkin.
10286
10287         * Makefile.in (install-headers-cp): New target.
10288         * config.gcc (alpha-dec-*vms*): Install headers with
10289         install-headers-cp
10290
10291 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
10292
10293         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
10294         avoid it's copies.
10295
10296 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10297
10298         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
10299         of compare_tree_int.
10300         (expand_builtin_strncat): Likewise.
10301         * c-decl.c (finish_struct): Use tree_low_cst.
10302         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
10303         * tree.c (compare_tree_int): Likewise.
10304
10305 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
10306
10307         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
10308         adjustments even if they are implemented by more than two insns.
10309
10310 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
10311
10312         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
10313         * df.h (struct ref): Kill B.
10314         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
10315
10316         * basic-block.h (PROP_EQUAL_NOTES): New flag.
10317         * flow.c (propagate_one_insn): Use it.
10318         (mark_used_regs): Handle NIL.
10319
10320 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
10321
10322         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
10323         to help folding.
10324
10325 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
10326
10327         * rs6000.md (prefetch): Make address V4SI mode so that the address
10328         is restricted to legitimate form for instruction.
10329
10330 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
10331
10332         * doc/install.texi (xtensa-*-elf): New target.
10333         (xtensa-*-linux*): New target.
10334         * doc/contrib.texi: Add myself.
10335
10336 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
10337
10338         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
10339         purpose register to hold an SImode (or smaller) value.
10340
10341 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
10342
10343         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
10344         registry only.
10345         * crtstuff.c: Likewise.
10346
10347 2002-01-25  Kazu Hirata  <kazu@hxi.com>
10348
10349         * config/h8300/h8300.md (negation patterns): Tighten
10350         predicates to register_operand.
10351
10352 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
10353
10354         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
10355         mode, not Pmode.
10356
10357         * builtins.c (expand_builtin_prefetch): Same.
10358
10359 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10360
10361         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
10362         modes.
10363
10364 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10365
10366         * config/h8300/h8300.c (print_operand): Remove support for
10367         operand character 'A'.
10368         * config/h8300/h8300.md (three anonymous patterns): Replace
10369         operand character 'A' with either 'T' or 'S'.
10370
10371 2002-01-24  Kazu Hirata  <kazu@hxi.com>
10372
10373         * config/h8300/h8300.c (print_operand): Remove support for
10374         operand character 'U'.
10375
10376 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
10377
10378         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
10379
10380 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
10381
10382         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
10383         values to be assigned to the stack pointer.
10384
10385 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10386
10387         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
10388         to const_double needs to be done right for big-endian systems.
10389
10390 2002-01-24  Jason Merrill  <jason@redhat.com>
10391
10392         PR c++/2432
10393         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
10394         to can_throw_internal.
10395
10396 2002-01-23  Richard Henderson  <rth@redhat.com>
10397
10398         * fold-const.c (fold): Change UINT_MAX test to check vs precision
10399         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
10400
10401 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10402
10403         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
10404         (symGOT2reg): Use them, then set as GOT value as unchanging.
10405         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
10406         as a temporary, if possible.
10407         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
10408         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
10409
10410 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10411
10412         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
10413         accept to accept 0x80 as operands[2].
10414
10415 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
10416
10417         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
10418
10419 2002-01-23  Richard Henderson  <rth@redhat.com>
10420
10421         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
10422
10423 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
10424
10425         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
10426         (parmlist_or_identifiers_1): Verify that only a parmlist follows
10427         an attribute.
10428
10429 2002-01-23  Richard Henderson  <rth@redhat.com>
10430
10431         * expr.c (move_by_pieces_1): Extend size before negation.
10432
10433         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
10434         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
10435         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
10436         * config/m68k/t-m68kelf: Likewise.
10437
10438 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
10439
10440         * config/xtensa/elf.h: New file.
10441         * config/xtensa/lib1funcs.asm: New file.
10442         * config/xtensa/lib2funcs.S: New file.
10443         * config/xtensa/linux.h: New file.
10444         * config/xtensa/t-xtensa: New file.
10445         * config/xtensa/xtensa-config.h: New file.
10446         * config/xtensa/xtensa-protos.h: New file.
10447         * config/xtensa/xtensa.c: New file.
10448         * config/xtensa/xtensa.h: New file.
10449         * config/xtensa/xtensa.md: New file.
10450         * config.gcc (xtensa-*-elf*): New target.
10451         (xtensa-*-linux*): New target.
10452         * cse.c (canon_hash): Compare rtx pointers instead of register
10453         numbers.  This is required for the Xtensa port.
10454         * integrate.c (copy_insn_list): Handle case where the static
10455         chain is in memory and the memory address has to be copied to
10456         a register.
10457         * doc/invoke.texi (Option Summary): Add Xtensa options.
10458         (Xtensa Options): New node.
10459         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
10460
10461 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10462
10463         * diagnostic.c (internal_error): Do ICE suppression only
10464         when ENABLE_CHECKING is not defined.
10465
10466         * c-typeck.c (require_complete_type): Return error_mark_node
10467         if type is error_mark_node.
10468
10469 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
10470
10471         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
10472         -Os and issue a warning.
10473
10474 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
10475
10476         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
10477         current (lack of) need for host configuration by hand.
10478
10479         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
10480         references.  Documentation of some target macros moved from
10481         hostconfig.texi to tm.texi.
10482
10483 2002-01-23  Will Cohen  <wcohen@redhat.com>
10484
10485         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
10486         defined.
10487
10488 2002-01-23  Kazu Hirata  <kazu@hxi.com>
10489
10490         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
10491         operand[3].
10492
10493 2002-01-23  Jason Merrill  <jason@redhat.com>
10494
10495         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
10496
10497         * function.c (assign_parms): Don't put args of inline functions
10498         into registers when not optimizing.
10499
10500 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
10501
10502         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
10503         (prologue_use): New pattern.
10504         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
10505         preference to gen_rtx_USE.
10506         (thumb_expand_prologue): Use gen_prologue_use in preference to
10507         gen_rtx_USE.
10508         (thumb_expand_epilogue): Use gen_prologue_use in preference to
10509         gen_rtx_USE.
10510
10511 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
10512
10513         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
10514
10515 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10516
10517         PR c/3504
10518         * doc/extend.texi: Correct documentation of __alignof__.
10519
10520 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
10521
10522         * params.h: Rename arguments of DEFPARAM so that it will be
10523         recognized as a translation keyword.
10524
10525 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10526
10527         * extend.texi: Document altivec functions.
10528         Fix N-bit adjectives in X86 builtin documentation.
10529
10530 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10531
10532         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
10533         auto_inc_dec values.
10534
10535 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
10536
10537         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
10538         after backslash.
10539         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
10540
10541 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
10542
10543         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
10544
10545 2002-01-22  Richard Henderson  <rth@redhat.com>
10546
10547         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
10548         copy_insn not copy_rtx.
10549
10550 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
10551
10552         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
10553         "nonzero" as that might add "1" bits.  Ensure "constop" is
10554         properly sign extened.
10555         (force_to_mode): Tweak for sign extended constop.
10556
10557 2002-01-22  Richard Henderson  <rth@redhat.com>
10558
10559         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
10560         for_each_rtx instead of assuming we're already looking at the MEM.
10561         (split_small_symbolic_mem_operand): Likewise.
10562         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10563         * config/alpha/alpha.md (small symbolic memory splitters): Update.
10564
10565 2002-01-22  Richard Henderson  <rth@redhat.com>
10566
10567         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
10568         sequence number for the literal.
10569         (divmoddi_internal_er): Likewise.
10570
10571 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10572
10573         PR java/4972
10574         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
10575         in LIBICONV variable.
10576         * configure: Regenerated.
10577
10578 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
10579
10580         * dependence.c (build_def_use): Remove array_idx.
10581
10582         * dwarfout.c (last_filename): Remove.
10583         (output_compile_unit_die): Remove last_filename.
10584
10585 2002-01-22  Roger Sayle  <roger@eyesopen.com>
10586             Richard Henderson  <rth@redhat.com>
10587
10588         PR opt/3640
10589         * fold-const.c (fold): Optimize unsigned comparisons against
10590         UINT_MAX (and similar unsigned constants).
10591
10592 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
10593
10594         * Makefile.in (loop.o): Depend on OPTABS_H.
10595         * loop.c (emit_prefetch_instructions): Check the prefetch operand
10596         against the predicate.
10597
10598         PR target/5379
10599         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
10600         for the address operand.
10601
10602 2002-01-22  Richard Henderson  <rth@redhat.com>
10603
10604         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
10605
10606 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10607
10608         PR other/5450
10609         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
10610         preprocessor flags.
10611
10612 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
10613
10614         * config.gcc (x86_64-*-netbsd*): New target.
10615         * config/i386/netbsd64.h: New file.
10616
10617 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10618
10619         * regrename.c (kill_value): Fix typo.
10620
10621 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
10622
10623         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
10624
10625         * config/rs6000/rs6000.h: Same.
10626
10627         * function.c (instantiate_virtual_regs): Remove
10628         STARTING_FRAME_PHASE.
10629         (assign_stack_local_1): Same.
10630         Calculate frame phase.
10631
10632 2002-01-22  Nick Clifton  <nickc@redhat.com>
10633
10634         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
10635         variable declaration to outer scope in order to simplify
10636         future extensions.
10637         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
10638         arm_hard_regno_mode_ok.
10639         * config/arm/arm-protos.h: Add a prototype for
10640         arm_hard_regno_mode_ok.
10641         * config/arm/arm.c (soft_df_operand): Remove now redundant
10642         check for DImode values using IP_REGNUM.
10643         (nonimmediate_soft_df_operand): Remove now redundant check for
10644         DImode values using IP_REGNUM.
10645         (arm_hard_regno_mode_ok): New function. New check: make sure
10646         that DImode values are not stored in IP_REGNUM.
10647
10648         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
10649         note with a USE.
10650         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
10651
10652 2002-01-22  Jason Merrill  <jason@redhat.com>
10653
10654         * c-semantics.c (genrtl_compound_stmt): Only check nesting
10655         consistency if this COMPOUND_STMT is scoped.
10656
10657 2002-01-22  Kazu Hirata  <kazu@hxi.com>
10658
10659         * predict.c: Fix formatting.
10660         * print-tree.c: Likewise.
10661         * protoize.c: Likewise.
10662         * real.h: Likewise.
10663         * rtl.h: Likewise.
10664         * sbitmap.h: Likewise.
10665         * scan.c: Likewise.
10666         * sched-deps.c: Likewise.
10667         * sched-vis.c: Likewise.
10668         * sdbout.c: Likewise.
10669         * sibcall.c: Likewise.
10670         * ssa.c: Likewise.
10671         * ssa-ccp.c: Likewise.
10672         * ssa-dce.c: Likewise.
10673         * stmt.c: Likewise.
10674         * stor-layout.c: Likewise.
10675         * system.h: Likewise.
10676
10677 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10678
10679         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
10680         if fits in bounds of base type.
10681
10682         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
10683         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
10684         (add_bound_info, default): If can't find a context, make a
10685         SAVE_EXPR.
10686         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
10687
10688 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
10689
10690         * c-typeck.c (parser_build_binary_op): If result from
10691         build_binary_op is ERROR_MARK just return error_mark_node without
10692         further processing.
10693
10694 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
10695
10696         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
10697         Split a.out-specific bits into...
10698         * config/netbsd-aout.h: ...this.
10699         * config/netbsd-elf.h: New file.
10700         * config/alpha/netbsd-elf.h: Remove.
10701         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
10702         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
10703         (STARTFILE_SPEC): Remove redundant definition.
10704         (ENDFILE_SPEC): Likewise.
10705         (LINK_SPEC): Likewise.
10706         (CPP_SPEC): Likewise.
10707         (ASM_SPEC): Likewise.
10708         (LIB_SPEC): Likewise.
10709         (SWITCH_TAKES_ARG): Likewise.
10710         (TARGET_MEM_FUNCTIONS): Likewise.
10711         (CPP_PREDEFINES): Redefine.
10712         (ASM_FINAL_SPEC): Remove redefinition.
10713         (ASM_COMMENT_START): Redefine.
10714         (FUNCTION_PROFILER): Define.
10715         (TARGET_VERSION): Redefine.
10716         Comment and formatting cleanup.
10717         * config/i386/netbsd.h: Include <netbsd-aout.h>.
10718         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
10719         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
10720         big- or little-endian.
10721         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
10722         * config.gcc (*-*-netbsd*): Add definitions common to all
10723         NetBSD configs.
10724         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
10725         gnu_ld definitions.  Add netbsd-elf.h to and remove
10726         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
10727         tmake_file, and don't lose previous tmake_file contents.
10728         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
10729         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
10730         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
10731         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
10732         (mipsel-*-netbsd*): Rename this to...
10733         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
10734         mips/little.h to tm_file for mips*el-*.
10735         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
10736         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
10737         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
10738
10739 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10740
10741         * pa-protos.h (reg_before_reload_operand): New function prototype.
10742         * pa.c (reg_before_reload_operand): New function implementation.
10743         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
10744         contraints to "*m".
10745
10746 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10747
10748         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
10749
10750 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10751
10752         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
10753         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
10754         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
10755         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
10756         (ENDFILE_SPEC): Undefine.
10757         (STARTFILE_SPEC): Redefine for PA.
10758
10759 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10760
10761         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
10762
10763 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
10764
10765         * config.gcc: Add entries to supported PowerPC --with-cpu
10766         types.
10767
10768 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
10769
10770         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
10771         true for 64-bit mode only SSE registers in 32-bit mode.
10772
10773 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10774
10775         * unwind-dw2.c: Fix formatting.
10776         * unwind-dw2-fde.c: Likewise.
10777         * unwind-dw2-fde.h: Likewise.
10778         * unwind-pe.h: Likewise.
10779         * varasm.c: Likewise.
10780         * varray.h: Likewise.
10781
10782 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
10783
10784         Remove workaround for register stack overwrite bug in mmix.
10785         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
10786         support for TARGET_REG_STACK_FILL_BUG.
10787         * config/mmix/mmix.h: Remove member has_call_without_parameters.
10788         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
10789         Delete.
10790         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
10791         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
10792         -mno-reg-stack-fill-bug-workaround.
10793         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
10794         machine member has_call_without_parameters.
10795         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
10796         -mreg-stack-fill-bug-workaround and
10797         -mno-reg-stack-fill-bug-workaround.
10798         (MMIX Options): Ditto.
10799
10800 2002-01-21  Kazu Hirata  <kazu@hxi.com>
10801
10802         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
10803         as appropriate.
10804         Remove redundant code.
10805
10806 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10807
10808         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
10809         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10810         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10811         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
10812         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
10813         out target macro definitions and non-target-specific comments
10814         mostly taken from old versions of the manual.
10815
10816 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10817
10818         * config/h8300/h8300.h: Fix comment formatting.
10819         * config/ia64/aix.h: Likewise.
10820         * config/ia64/ia64-protos.h: Likewise.
10821         * config/ia64/ia64.c: Likewise.
10822         * config/ia64/ia64.h: Likewise.
10823         * config/ia64/ia64intrin.h: Likewise.
10824         * config/ia64/linux.h: Likewise.
10825         * config/ia64/unwind-aix.c: Likewise.
10826         * config/ia64/unwind-ia64.c: Likewise.
10827
10828 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10829
10830         * config/h8300/h8300.c: Revise comments about shift code.
10831
10832 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10833
10834         * config/h8300/h8300.c (function_arg): Update a comment.
10835
10836 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10837
10838         * config/h8300/h8300.md: Update the comments at the beginning
10839         of the file.
10840
10841 2002-01-20  Kazu Hirata  <kazu@hxi.com>
10842
10843         * config/i370/i370.c: Fix comment formatting.
10844         * config/i370/i370.h: Likewise.
10845         * config/i370/i370.md: Likewise.
10846         * config/i370/linux.h: Likewise.
10847
10848 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10849
10850         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
10851
10852         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
10853         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
10854         in incomplete case.
10855
10856 2002-01-20  Graham Stott  <grahams@redhat.com>
10857
10858         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
10859
10860 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10861
10862         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
10863
10864 2002-01-19  Tom Rix  <trix@redhat.com>
10865
10866         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
10867
10868 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
10869
10870         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
10871
10872         * function.c (assign_stack_local_1): Adjust x_frame_offset with
10873         STARTING_FRAME_PHASE.
10874         (STARTING_FRAME_PHASE): New.
10875         (instantiate_virtual_regs): Check saneness of
10876         STARTING_FRAME_PHASE.
10877
10878         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
10879
10880 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
10881
10882         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
10883
10884 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10885
10886         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
10887         be used for bootstrapping GCC 3.0.
10888
10889 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10890
10891         * config/h8300/h8300.md: Fix an insn length.
10892
10893 2002-01-18  Kazu Hirata  <kazu@hxi.com>
10894
10895         * bitmap.h: Fix comment formatting.
10896         * combine.c: Likewise.
10897         * cppfiles.c: Likewise.
10898         * c-pragma.h: Likewise.
10899         * c-typeck.c: Likewise.
10900         * df.c: Likewise.
10901         * dwarf2out.c: Likewise.
10902         * function.c: Likewise.
10903         * gcc.c: Likewise.
10904         * genattrtab.c: Likewise.
10905         * gthr-win32.h: Likewise.
10906         * haifa-sched.c: Likewise.
10907         * predict.c: Likewise.
10908         * rtlanal.c: Likewise.
10909         * rtl.h: Likewise.
10910         * unwind-dw2-fde.h: Likewise.
10911         * unwind-pe.h: Likewise.
10912         * vmsdbgout.c: Likewise.
10913
10914 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10915
10916         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
10917         if type_required and passed decl.
10918
10919 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
10920
10921         * config.gcc (cpu_type): Include altivec.h in powerpc
10922         extra_headers.
10923         Same for darwin.
10924
10925         * config/rs6000/altivec.h: New.
10926
10927 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
10928
10929         * doc/install.texi (*-ibm-aix*): Update assembler and exception
10930         handling information.
10931         * doc/trouble.texi (Interoperation): Add libstdc++ information
10932         for AIX.
10933         (Misunderstandings): Add template instantiation and static template
10934         member information for AIX.
10935
10936 2002-01-17  Jason Merrill  <jason@redhat.com>
10937
10938         * dbxout.c (dbxout_type): Support const and volatile.
10939
10940         * except.c (add_partial_entry): Remove backwards compatibility code.
10941         (end_protect_partials): Likewise.
10942
10943 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
10944
10945         * config/ia64/ia64.md (prologue_use): New.
10946         * config/ia64/ia64.c (ia64_expand_prologue): Use
10947         gen_prologue_use instead of gen_rtx_USE.
10948         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
10949         as CODE_FOR_pred_rel_mutex.
10950         (ia64_sched_reorder2): Likewise.
10951
10952 2002-01-16  Eric Christopher  <echristo@redhat.com>
10953
10954         * config/mips/r3900.h: Reformat.
10955         (SUBTARGET_CPP_SIZE_SPEC): Remove.
10956         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
10957         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
10958         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
10959         * config/mips/t-elf: Remove mips3 multilib.
10960
10961 2002-01-16  H.J. Lu <hjl@gnu.org>
10962
10963         * config/mips/linux.h: Include "mips/abi64.h".
10964
10965 2002-01-16  H.J. Lu <hjl@gnu.org>
10966
10967         * config/mips/t-linux: New.
10968
10969         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
10970
10971         * config/mips/linux.h: Don't include "gofast.h".
10972         (INIT_SUBTARGET_OPTABS): Removed.
10973
10974 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10975
10976         * config/h8300/h8300-protos.h: Replace emit_a_shift with
10977         output_a_shift.
10978         * config/h8300/h8300.c: Likewise.
10979         * config/h8300/h8300.md: Likewise.
10980
10981 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10982
10983         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
10984         spaces after an opcode name.
10985         (pushqi1_h8300hs): Likewise.
10986         (pushhi1_h8300hs): Likewise.
10987
10988 2002-01-16  Kazu Hirata  <kazu@hxi.com>
10989
10990         * doc/extend.texi: Replace "option" with "attribute"
10991         appropriately.
10992
10993 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
10994
10995         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
10996         (and:DI () (const_int -8)).
10997         (split_small_symbolic_mem_operand): Split
10998         (mem (and:DI () (const_int -8)).
10999
11000 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
11001
11002         PR target/5309:
11003         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
11004         same way as TYPE_IMUL.
11005         (ultrasparc_sched_reorder): Likewise.
11006         * config/sparc/sparc.md (type): Add comment to update
11007         ultrasparc_sched_reorder when making changes.
11008
11009 2002-01-16  Kazu Hirata  <kazu@hxi.com>
11010
11011         * doc/invoke.texi: Change the dump file name of block
11012         reordering pass from 28.bbro to 29.bbro.
11013         Mention -dk option.
11014
11015 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
11016
11017         * i386.md (minsf splitter): Fix pasto.
11018
11019 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
11020
11021         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
11022         to frame pointer initialisation instruction.
11023         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
11024         initialisation instruction.
11025         (soft_df_operand): Do not accept the IP register.
11026         (nonimmediate_soft_df_operand): Do not accept the IP register.
11027
11028 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
11029
11030         PR target/5357:
11031         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
11032         MASK_V8 being both set.
11033
11034 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
11035
11036         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
11037         insn for GOT register; add REG_MAYBE_DEAD notes instead.
11038         config/s390/s390.md (call, call_value): Add GOT register to
11039         CALL_INSN_FUNCTION_USAGE where needed.
11040         (call_exp, call_value_exp): New.
11041
11042 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
11043
11044         * config/arm/arm.c: General formatting tidy up.
11045
11046 2002-01-16  Graham Stott  <grahams@redhat.com>
11047
11048         * calls.c (try_to_integrate): Use "(size_t)" intermediate
11049         cast and when casting an integer literal to "rtx" pointer.
11050         (expand_call): Likewise.
11051         * flow.c (try_pre_increment): Likewise.
11052         (find_use_as_address): Likewise.
11053         * integrate.c (expand_iline_function): Likewise.
11054         * regmove.c (try_auto_increment): Likewise.
11055
11056 2002-01-16  Graham Stott  <grahams@redhat.com>
11057
11058         * sched-rgn.c (passed): Use sbitmap_free.
11059         (header): Likewise.
11060         (inner): Likewise.
11061         (in_queue): Likewise.
11062         (in_stack): Likewise.
11063
11064 2002-01-15  Eric Christopher  <echristo@redhat.com>
11065
11066         * flow.c (propagate_one_insn): Change to use fatal_insn.
11067
11068 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11069
11070         * expmed.c (extract_fixed_bit_field): Remove unused code.
11071         * system.h: Poison SLOW_ZERO_EXTEND.
11072         * doc/tm.texi: Remove.
11073         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
11074         * config/arm/arm.h: Likewise.
11075         * config/avr/avr.h: Likewise.
11076         * config/clipper/clipper.h: Likewise.
11077         * config/convex/convex.h: Likewise.
11078         * config/d30v/d30v.h: Likewise.
11079         * config/dsp16xx/dsp16xx.h: Likewise.
11080         * config/elxsi/elxsi.h: Likewise.
11081         * config/fr30/fr30.h: Likewise.
11082         * config/h8300/h8300.h: Likewise.
11083         * config/i370/i370.h: Likewise.
11084         * config/i386/i386.h: Likewise.
11085         * config/m68k/m68k.h: Likewise.
11086         * config/mips/mips.h: Likewise.
11087         * config/ns32k/ns32k.h: Likewise.
11088         * config/pdp11/pdp11.h: Likewise.
11089         * config/pj/pj.h: Likewise.
11090         * config/s390/s390.h: Likewise.
11091         * config/sh/sh.h: Likewise.
11092         * config/stormy16/stormy16.h: Likewise.
11093         * config/v850/v850.h: Likewise.
11094         * config/vax/vax.h: Likewise.
11095         * config/we32k/we32k.h: Likewise.
11096
11097 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
11098
11099         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
11100         (altivec_lvsl): Change constraint to b.
11101         (altivec_lvsr): Same.
11102         (altivec_lvebx): Same.
11103         (altivec_lvehx): Same.
11104         (altivec_lvewx): Same.
11105         (altivec_lvxl): Same.
11106         (altivec_lvx): Same.
11107         (altivec_stvx): Add parallel.
11108         (altivec_stvxl): Same.
11109         (altivec_stvehx): Same.
11110         (altivec_stvebx): Same.
11111         (altivec_stvebx): Same.
11112
11113 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
11114
11115         * config.gcc: Change altivec.h to altivec-defs.h.
11116
11117         * config/rs6000/altivec.h: Delete.
11118
11119         * config/rs6000/altivec-defs.h: Add.
11120
11121 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11122
11123         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
11124         and UMOD modes.
11125
11126         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
11127         less than or equal to eight bytes.
11128
11129         * vax.md (andsi3): Remove constraints and change SET destination
11130         operand type to nonimmediate_operand.
11131         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
11132         when it is a CONST_INT.
11133
11134 2002-01-15  Jason Merrill  <jason@redhat.com>
11135
11136         * c-common.def (FILE_STMT): New code.
11137         * c-common.c (statement_code_p): It's a statement.
11138         * c-common.h (stmt_tree_s): Add x_last_filename.
11139         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
11140         (last_expr_filename): New macro.
11141         * c-semantics.c (begin_stmt_tree): Initialize it.
11142         (add_stmt): If the filename changed, also insert a
11143         FILE_STMT.
11144         (expand_stmt): Handle seeing one.
11145
11146 2002-01-15  Eric Christopher  <echristo@redhat.com>
11147
11148         * flow.c (propagate_one_insn): Add error message and print out
11149         insn for debugging.
11150
11151 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
11152
11153         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
11154         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
11155         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
11156         TRAMPOLINE_ALIGNMENT.
11157         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
11158         to be in bits.
11159         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
11160         PCC_BITFIELD_TYPE_MATTERS.
11161         * config/interix.h (STDC_VALUE): Remove.  Use
11162         STDC_0_IN_SYSTEM_HEADERS.
11163         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
11164         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
11165         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
11166
11167 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11168
11169         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
11170         not work on this platform currently.
11171
11172 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
11173
11174         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
11175         readonly_warning in _().
11176
11177 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
11178
11179         * gcc.c (delete_if_ordinary): Backout previous change.
11180
11181 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11182
11183         * config/h8300/h8300.c (print_operand): Remove support for
11184         unused operand characters.
11185
11186         * read-rtl.c: Fix formatting.
11187         * real.c: Likewise.
11188         * recog.c: Likewise.
11189         * regclass.c: Likewise.
11190         * regmove.c: Likewise.
11191         * reg-stack.c: Likewise.
11192         * reload1.c: Likewise.
11193         * rtlanal.c: Likewise.
11194
11195 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11196
11197         * config/i386/i386.c: Fix formatting.
11198
11199 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
11200
11201         * c-typeck.c (process_init_element): Don't save_expr
11202         COMPOUND_LITERAL_EXPR if just its initializer will be used.
11203
11204 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
11205
11206         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
11207         emit optional traceback table if optimize_size or TARGET_ELF.
11208         * config/rs6000/rs6000.md (prefetch): New.
11209
11210 2002-01-15  Andreas Jaeger  <aj@suse.de>
11211
11212         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
11213
11214 2002-01-15  Kazu Hirata  <kazu@hxi.com>
11215
11216         * mips-tfile.c: Fix formatting.
11217
11218 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11219
11220         * unroll.c (final_reg_note_copy): Fix previous commit.
11221
11222 2002-01-14  Kazu Hirata  <kazu@hxi.com>
11223
11224         * config/h8300/h8300-protos.h: Remove the prototype for
11225         eq_operator.
11226         * config/h8300/h8300.c (eq_operator): Remove.
11227
11228 2002-01-14  Richard Henderson  <rth@redhat.com>
11229
11230         * config/i386/i386.md (prefetch): Tidy.
11231         (prefetch_3dnow): Fix locality operand.
11232
11233 2002-01-14  Richard Henderson  <rth@redhat.com>
11234
11235         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
11236         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
11237
11238 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
11239
11240         * reload1.c (reload_combine): Pass reg_sum replacement through
11241         copy_rtx in loop performing multiple changes.
11242
11243 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
11244
11245         * except.c (remove_unreachable_regions): New.
11246         (free_eh_status): Clear exception_handler_labels.
11247         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
11248         (find_exception_handler_labels): Don't add the same label more than
11249         once.
11250         (remove_exception_handler_label): Don't die if
11251         find_exception_handler_labels hasn't been called for the current
11252         function yet.
11253
11254 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
11255
11256         * toplev.c (rest_of_compilation): Rebuild jump labels after
11257         gcse.
11258
11259 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
11260
11261         * doc/extend.texi: Move documentation of X86 built-in functions
11262         here.
11263         * doc/invoke.texi: From here.
11264         * doc/sourcebuild.texi: Document location of documentation for
11265         machine built-in functions.
11266
11267 2002-01-13  Christopher Faylor  <cgf@redhat.com>
11268
11269         * cppfiles.c (TEST_THRESHOLD): New macro.
11270         (SHOULD_MMAP): Ditto.
11271         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
11272         be used.
11273
11274 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
11275
11276         * unroll.c (final_reg_note_copy): Properly handle
11277         REG_LABEL
11278         (unroll_loops): Fix LOOP_CONDITION heuristics.
11279
11280 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
11281
11282         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
11283         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
11284
11285 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
11286
11287         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
11288         threaded loop.
11289
11290 2002-01-14  Tom Rix  <trix@redhat.com>
11291
11292         * config/rs6000/rs6000.md: Fix typo with sradi.
11293
11294 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
11295
11296         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
11297         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
11298         (clrstrdi, clrstrsi): Adapt callers.
11299
11300         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
11301
11302         (movti splitter): Never use register 0 as base register.
11303
11304 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11305
11306         * combine.c (simplify_shift_const): Always generate new rtx
11307         for shift expression instead of reusing given expression.
11308
11309 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11310
11311         * config/alpha/alpha.c (alpha_expand_mov): Don't call
11312         alpha_legitimize_address unless mode is Pmode.
11313
11314 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
11315
11316         * doc/md.texi (Modifiers): Document the '*' constraint for the
11317         user.
11318
11319         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
11320         * doc/extend.texi (Function Attributes): 'interrupt' is valid
11321         for xstormy16 too.
11322
11323 2002-01-13  Richard Henderson  <rth@redhat.com>
11324
11325         * reload.c (find_reloads): Use a hard reg destination as reload reg
11326         for an input reload of the source.
11327
11328 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11329
11330         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
11331         more generic.
11332
11333 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
11334
11335         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11336         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
11337
11338         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
11339
11340 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11341
11342         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
11343
11344 2002-01-12  Tom Rix  <trix@redhat.com>
11345
11346         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
11347         TARGET_POWERPC64.
11348
11349 2002-01-12  Richard Henderson  <rth@redhat.com>
11350
11351         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
11352
11353         * doc/invoke.texi: Update Alpha options.
11354
11355         * doc/invoke.texi: Update i386 built-in function lists.
11356
11357 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
11358
11359         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
11360         referencing outside.
11361
11362 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11363
11364         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
11365         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
11366         offsets, and change line folding.
11367         * optabs.c (expand_binop): Remove warnings.
11368         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
11369
11370 2002-01-12  Graham Stott <grahams@redhat.com>
11371
11372         * attribs.c (handle_deprecated_attribute): constify WHAT.
11373         * diagnostic.c (warn_deprecated_use): Add braces, fixes
11374         dangling else warning and constify WHAT.
11375         * except.h (struct function, struct inline_remap): Move
11376         struct tag forward defs before all prototypes.
11377         (duplicate_eh_regions): Whitespace.
11378
11379 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
11380
11381         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11382         MODE_BASE_REG_CLASS.
11383         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
11384
11385 2002-01-12  Richard Henderson  <rth@redhat.com>
11386
11387         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
11388         (ix86_expand_vector_move): New.
11389         (bdesc_2arg): Remove andps, andnps, orps, xorps.
11390         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
11391         Remove old prefetch builtins.  Special case the logicals removed above.
11392         (ix86_expand_builtin): Likewise.
11393         (safe_vector_operand): Use V4SFmode, not TImode.
11394         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
11395         (ix86_expand_timode_binop_builtin): New.
11396         * config/i386/i386-protos.h: Update.
11397         * config/i386/i386.h (enum ix86_builtins): Update.
11398         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
11399         Use ix86_expand_vector_move in vector move expanders.
11400         (movti_internal, movti_rex64): Add xorps alternative.
11401         (sse_clrv4sf): Rename and adjust from sse_clrti.
11402         (prefetch): Don't work so hard.
11403         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
11404         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
11405         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
11406
11407 2002-01-11  Richard Henderson  <rth@redhat.com>
11408
11409         * config/i386/mmintrin.h: New file.
11410         * config/i386/xmmintrin.h: New file.
11411         * config.gcc (i?86-*-*): Add extra_headers.
11412         * simplify-rtx.c (simplify_unary_operation): Handle saturating
11413         truncation codes.
11414         (simplify_binary_operation): Handle saturating arithmetic codes.
11415         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
11416         not the lowpart subreg.
11417         (ix86_expand_builtin): Return a TImode dummy register instead of 0
11418         on error.
11419         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
11420
11421 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11422
11423         * conflict.c (conflict_graph_compute): Free regsets when finished.
11424         * ssa.c (compute_coalesced_reg_partition): Likewise.
11425
11426 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11427
11428         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
11429         every where we allocate a register.
11430
11431 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11432
11433         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
11434         * lcm.c (compute_earliest, compute_farthest): Likewise.
11435
11436 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11437
11438         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
11439
11440 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
11441
11442         * doc/rtl.texi (Insns): Fix 2 typos.
11443
11444 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
11445
11446         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
11447         options.  Use @table @gcctabopt for MMIX options.  Add index
11448         entries for MMIX options.  Start new paragraph with first
11449         heading of the machine-dependent options.
11450
11451 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11452
11453         PR other/5299
11454         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
11455         * combine.c (force_to_mode): Same.
11456         * reload1.c (clear_reload_reg_in_use): Same.
11457
11458 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
11459
11460         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
11461         and 'subtargets'.
11462
11463 2002-01-11  Andreas Jaeger  <aj@suse.de>,
11464             Brad Lucier <lucier@math.purdue.edu>
11465
11466         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
11467         mcpu.
11468
11469 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
11470
11471         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
11472         Protect with IN_LIBGCC.
11473         (LINK_EH_SPEC): Add required trailing space.
11474
11475 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11476
11477         * c-tree.h: Move function declarations so that they are listed
11478         under the filename which contains them.
11479         (check_identifier, finish_decl_top_level,
11480         lookup_name_current_level_global, shadow_record_fields): Remove.
11481
11482 2002-01-11  Andreas Jaeger  <aj@suse.de>
11483
11484         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
11485         march.
11486
11487 2002-01-10  Richard Henderson  <rth@redhat.com>
11488
11489         * config/alpha/alpha.c (print_operand): Add 'J'.
11490         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
11491         new operand with the sequence number for the lituse.  When splitting
11492         the insns, use gen_movdi_er_high_g and generate a sequence number.
11493         (gen_movdi_er_high_g): Print the sequence number if non-zero.
11494
11495 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
11496
11497         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
11498         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
11499         stvxl.
11500         (altivec_expand_builtin): Same.
11501         (altivec_expand_stv_builtin): New.
11502
11503         * config/rs6000/rs6000.h (rs6000_builtins): Same.
11504
11505         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
11506         ("altivec_lvehx"): New.
11507         ("altivec_lvewx"): New.
11508         ("altivec_lvxl"): New.
11509         ("altivec_lvx"): New.
11510         ("altivec_stvx"): New.
11511         ("altivec_stvebx"): New.
11512         ("altivec_stvehx"): New.
11513         ("altivec_stvewx"): New.
11514         ("altivec_stvxl"): New.
11515
11516 2002-01-10  Richard Henderson  <rth@redhat.com>
11517
11518         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
11519         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
11520         care not to delete instructions twice.
11521
11522 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11523
11524         * toplev.c: Don't declare environ (it's not used anywhere).
11525         * configure.in: Don't check for declaration of environ.
11526         * config/i386/xm-mingw32.h: Don't #define environ.
11527         * config.in, configure: Regenerate.
11528
11529 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
11530
11531         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
11532         * configure: Regenerate.
11533
11534         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
11535         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
11536         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
11537         alpha/xm-vms.h.
11538         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
11539         LIMITS_H_TEST here, not in m68k/x-next.
11540         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
11541         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
11542
11543         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
11544         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
11545         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
11546
11547         * config/i386/x-djgpp: Renamed i386/t-djgpp.
11548         * config/m88k/x-dolph: Renamed m88k/t-dolph.
11549         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
11550         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
11551         replacement of quadlib.asm with quadlib.c.
11552
11553         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
11554         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
11555         config/rs6000/xm-beos.h: Delete file.
11556
11557         * config.gcc: Update to match above changes.
11558
11559 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11560
11561         * config/h8300/h8300.h: Fix comment typos.
11562         * config/h8300/h8300.md: Likewise.
11563         * config/h8300/lib1funcs.asm: Likewise.
11564
11565 2002-01-10  Dale Johannesen  <dalej@apple.com>
11566
11567         PR optimization/5269
11568         * unroll.c (precondition_loop_p): Make *increment be the correct
11569         sign when n_iterations known, to avoid confusing caller.
11570
11571 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11572
11573         * doc/extend.texi (deprecated): Fix a typo.
11574
11575 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
11576
11577         * basic-block.h (update_br_prob_note): Declare.
11578         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
11579         (try_forward_edges): Care negative frequencies and update note.
11580         (outgoing_edges_match): Tweek conditional merging heuristics.
11581         (try_crossjump_to_edge): use update_br_prob_note.
11582         * cfglayout.c (fixup_reorder_chain): Likewise.
11583         * cfrtl.c (update_br_prob_note): New.
11584         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
11585
11586         * i386.c (ix86_decompose_address): Return -1 if address contains
11587         shift.
11588         (legitimate_address_p): Require ix86_decompose_address to return 1.
11589
11590         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
11591         (cprop_insn): Likewise.
11592
11593 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11594
11595         * toplev.c: Fix formatting.
11596         * tree.c: Likewise.
11597         * tree-dump.c: Likewise.
11598         * unroll.c: Likewise.
11599         * unwind-dw2.c: Likewise.
11600         * unwind-dw2-fde.c: Likewise.
11601         * unwind-dw2-fde-glibc.c: Likewise.
11602         * unwind-sjlj.c: Likewise.
11603
11604 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11605
11606         * doc/invoke.texi: Document PDP-11 options.
11607
11608 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11609
11610         * config/h8300/h8300.h: Fix formatting.
11611
11612 2002-01-10  Ira Ruben   <ira@apple.com>
11613
11614         Add __attribute__ ((deprecated)).
11615         * extend.texi: Document __attribute__ ((deprecated)).
11616         * invoke.texi: Document -Wno-deprecated-declarations.
11617         * testsuite/g++.dg/other/deprecated.C: New C++ test.
11618         * testsuite/gcc.dg/deprecated.c: New C test.
11619         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
11620         (c_common_attribute_table): Add "deprecated" entry.
11621         (handle_deprecated_attribute): New function.
11622         * c-decl.c (deprecated_states): New enum.
11623         deprecated_state: State of "deprecated" handling.
11624         (start_decl): Set deprecated_state based on attributes.
11625         (grokdeclarator): Test for deprecated uses, propagate attribute.
11626         * c-typeck.c (build_component_ref): Test for deprecated fields.
11627         (build_external_ref): Test for deprecated primaries.
11628         * diagnostic.c (warn_deprecated_use) New function to issue
11629         warnings about __attribute__ ((depricated)) references.
11630         * flags.h (warn_deprecated_decl): Extern declared for
11631         -W[no-]deprecated-declarations option.
11632         * print-tree.c (print_node): Show deprecated flag status.
11633         * toplev.c (warn_deprecated_decl): Defined.
11634         (W_options): Added "deprecated-declaration".
11635         * toplev.h (warn_deprecated_use): Extern declared.
11636         * tree.h (struct tree_common): Define deprecated_flag.
11637         (TREE_DEPRECATED): New macro to access flag.
11638         * cp/call.c (build_call): Test for deprecated calls.
11639         * cp/class.c (add_implicitly_declared_members): Set global
11640         flag to tell grokdeclarator to not issue deprecated warnings.
11641         * cp/cp-tree.h: Add extern for adding_implicit_members.
11642         * cp/decl.c (deprecated_states): New enum.
11643         (start_decl): Set deprecated_state based on attributes.
11644         (grokdeclarator): Test for deprecated uses, propagate attribute.
11645         * cp/lex.c (do_identifier): Test for deprecated primaries.
11646         * cp/typeck.c (build_component_ref): Test for deprecated fields.
11647
11648 2002-01-10  Ira Ruben   <ira@apple.com>
11649
11650         Fix to assign attributes to inline member functions.
11651         * cp/decl.c (start_method): Handle attrlist.
11652
11653 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11654
11655         * combine.c (expand_field_assignment): Use subreg_lsb().
11656
11657 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
11658
11659         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
11660         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
11661         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
11662         Recurse for any operand of AND as long as constant is non-zero.
11663
11664 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11665
11666         * config/h8300/h8300.md: Remove constraints from expanders.
11667
11668 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11669
11670         * varasm.c: Fix formatting.
11671         * varray.c: Likewise.
11672         * vmsdbgout.c: Likewise.
11673         * xcoffout.c: Likewise.
11674
11675 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11676
11677         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
11678         update edge probabilities to match.
11679
11680 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
11681
11682         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
11683         dependencies.
11684         * doc/languages.texi, doc/sourcebuild.texi: New files.
11685         * doc/configfiles.texi: Make a subsubsection.  Update.
11686         * doc/configterms.texi: Add @node.  Remove warning that this isn't
11687         instructions for building GCC.
11688         * doc/makefile.texi: Make a subsection.
11689         * doc/gccint.texi: Update.
11690
11691 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
11692
11693         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
11694
11695 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
11696
11697         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
11698
11699 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
11700
11701         * optabs.c (expand_fix): Look for wider integer modes first.
11702
11703         * i386.md (mov?f): Avoid the fake const double trick for medium
11704         memory model.
11705         (min?f*/max?f*): Prohibit memory operands for i387 variant.
11706         (fop_df_4): Disable for SSE compilation.
11707
11708 2002-01-10  Graham Stott  <grahams@redhat.com>
11709
11710         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
11711         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
11712
11713 2002-01-10  Richard Henderson  <rth@redhat.com>
11714
11715         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
11716
11717 2002-01-10  Richard Henderson  <rth@redhat.com>
11718
11719         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
11720         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
11721
11722 2002-01-10  Kazu Hirata  <kazu@hxi.com>
11723
11724         * combine.c (can_combine_p): Fix a comment typo.
11725
11726 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
11727
11728         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
11729         empty list correctly.  Change loop index $t to $f for
11730         consistency with rest of Makefile.
11731
11732 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
11733
11734         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
11735         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11736
11737         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
11738         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
11739         (altivec_init_builtins): Same.
11740         (altivec_expand_unop_builtin): Return NULL_RTX on error.
11741         (altivec_expand_binop_builtin): Same.
11742         (altivec_expand_ternop_builtin): Same.
11743         (bdesc_dst): New.
11744
11745         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
11746         ("altivec_vctuxs"): Fix typo.
11747         ("altivec_vnmsubfp"): Same.
11748         ("altivec_dssall"): New.
11749         ("altivec_mfvscr"): New.
11750         ("altivec_dss"): New.
11751         ("altivec_lvsl"): New.
11752         ("altivec_lvsr"): New.
11753         ("altivec_dstt"): New.
11754         ("altivec_dstst"): New.
11755         ("altivec_dststt"): New.
11756         ("altivec_dst"): New.
11757
11758         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
11759         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
11760
11761 2002-01-09  Richard Henderson  <rth@redhat.com>
11762
11763         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
11764
11765 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
11766
11767         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
11768         function.
11769         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
11770         prototype.
11771         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
11772
11773 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11774
11775         * read-rtl.c: Fix formatting.
11776         * real.c: Likewise.
11777         * regclass.c: Likewise.
11778         * regrename.c: Likewise.
11779         * reg-stack.c: Likewise.
11780         * reload1.c: Likewise.
11781         * reload.c: Likewise.
11782         * rtl.c: Likewise.
11783
11784 2002-01-09  Kazu Hirata  <kazu@hxi.com>
11785
11786         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
11787         to extract items in the expr_list chain.
11788
11789 2002-01-09  Richard Henderson  <rth@redhat.com>
11790
11791         * config/vax/vax.c (vax_rtx_cost): Never abort.
11792
11793         * config/vax/vax.h (REAL_ARITHMETIC): Define.
11794
11795 2002-01-09  Jan Hubicka  <jh@suse.cz>
11796
11797         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
11798
11799 2002-01-09  Richard Henderson  <rth@redhat.com>
11800
11801         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
11802         Unify code from various alternatives.
11803
11804 2002-01-09  Richard Henderson  <rth@redhat.com>
11805
11806         * regrename.c (copy_value): Ignore the copy if the source register
11807         is present in the value chain with a narrower mode.
11808
11809 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
11810
11811         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
11812         for the c4x target. Also improve layout.
11813
11814 2002-01-09  Richard Henderson  <rth@redhat.com>
11815
11816         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
11817         * config/m32r/m32r.md (and ior xor splitters): Swap operands
11818         to match insn patterns.
11819
11820 2002-01-09  Richard Henderson  <rth@redhat.com>
11821
11822         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
11823         (copyprop_hardreg_forward_1): Likewise.
11824
11825 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11826
11827         * pa.md (decrement_and_branch_until_zero): Change predicate for
11828         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
11829
11830 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11831
11832         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
11833         gets undefined. For Darwin.
11834
11835 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11836
11837         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
11838
11839 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11840
11841         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
11842
11843 2002-01-08  Richard Henderson  <rth@redhat.com>
11844
11845         * regrename.c (copy_value): Ignore overlapping copies.
11846
11847 2002-01-08  Richard Henderson  <rth@redhat.com>
11848
11849         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
11850         as needed to avoid shared structure.
11851
11852 2002-01-08  Kazu Hirata  <kazu@hxi.com>
11853
11854         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
11855         H8/300H and H8/S.
11856
11857 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11858
11859         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
11860         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
11861         documentation of obsolete macros.
11862         * system.h: Poison these macros.
11863         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
11864         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
11865         config/c4x/c4x.h, config/clipper/clipper.h,
11866         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
11867         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
11868         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
11869         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
11870         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11871         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
11872         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
11873         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
11874         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
11875         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
11876         config/sparc/sparc.h, config/stormy16/stormy16.h,
11877         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
11878         definitions and commented out definitions of obsolete macros.
11879         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
11880         of MAX_INT_TYPE_SIZE.
11881
11882 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11883
11884         * config/s390/s390.c (s390_preferred_reload_class): Never
11885         return ADDR_REGS if it isn't a subset of the given class.
11886         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
11887         FP_REGS, but all superclasses as well.
11888
11889         * config/s390/s390.c (s390_function_profiler): Fix thinko.
11890
11891         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
11892         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
11893         must not be a const_int.
11894
11895 2002-01-08  Richard Henderson  <rth@redhat.com>
11896
11897         * Makefile.in (toplev.o): Depend on options.h.
11898         (gcc.o): Depend on specs.h.
11899
11900 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
11901
11902         * expr.c (store_expr): Convert VOIDmode constants back to target's
11903         mode.
11904
11905 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11906
11907         * doc/invoke.texi: Markup gcc as @command.  Refer to
11908         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
11909         of http://gcc.gnu.org/thanks.html.
11910
11911 2002-01-08  Dale Johannesen  <dalej@apple.com>
11912
11913         * config/rs6000/rs6000.md: Add missing int register
11914         target case to movdf_low.
11915
11916 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
11917
11918         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
11919         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
11920         (cppinit.o): Depend on except.h.
11921         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
11922         s-specs): New rules.
11923
11924         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
11925         Don't create specs.h/options.h/gencheck.h here.  Remove
11926         unnecessary variable settings from last argument of AC_OUTPUT.
11927         * config.in, configure: Regenerate.
11928         * intl.c: Hardcode package name as "gcc".
11929
11930         * cppinit.c: Include except.h.
11931         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
11932         appropriate.
11933         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
11934         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
11935         (!)USING_SJLJ_EXCEPTIONS.
11936         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
11937
11938 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11939
11940         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
11941         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
11942         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
11943         documentation of obsolete macros.
11944         * system.h: Poison these macros.
11945         * config/d30v/d30v.h, config/ns32k/encore.h,
11946         config/stormy16/stormy16.h: Remove definitions and commented out
11947         definitions of obsolete macros.
11948
11949 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
11950
11951         * objc/objc-act.c (handle_class_ref): Mark the declaration of
11952         %sobjc_class_ref_%s as used - to prevent unwanted compiler
11953         warnings.
11954
11955 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
11956
11957         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
11958         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
11959         to insn adjusting stack/frame pointer.
11960         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
11961         accept operands that cause the insn to be non-splittable.
11962
11963 2002-01-08  Graham Stott  <grahams@redhat.com>
11964
11965         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
11966         (C_TYPE_FIELDS_VOLATILE): Likewise.
11967         (C_TYPE_BEING_DEFINED): Likewise.
11968         (C_IS_RESERVED_WORD): Likewise.
11969         (C_TYPE_VARIABLE_SIZE): Likewise.
11970         (C_DECL_VARIABLE_SIZE): Likewise.
11971         (C_MISSING_PROTOTYPE_WARNED): Likewise.
11972         (C_SET_EXP_ORIGINAL_CODE): Likewise.
11973         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
11974         parenthesis.
11975         (C_DECL_ANTICIPATED): Likewise.
11976         (c_build_type_variant): Add parenthesis.
11977
11978 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
11979
11980         * gcc.c (option_map): Remove --version.
11981         (process_command): Handle -fversion following the GNU Coding
11982         Standards.  Partially addresses PR other/704.
11983
11984 2002-01-08  Graham Stott  <grahams@redhat.com>
11985
11986         * combine.c (combine_instructions): Fix typo.
11987
11988 2002-01-08  Graham Stott  <grahams@redhat.com>
11989
11990         * debug.h: Use "tree" and "rtx" throughout.
11991
11992         * debug.c: Likewise.
11993
11994 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
11995
11996         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
11997         constant pool, use the pool's version of the symbol instead.
11998
11999 2002-01-07  Richard Henderson  <rth@redhat.com>
12000
12001         * regrename.c (find_oldest_value_reg): Ignore the value chain if
12002         the original register was copied in a mode with a fewer number of
12003         hard registers than the desired mode.
12004         (copyprop_hardreg_forward_1): Likewise.
12005         (debug_value_data): Fix loop test.
12006         * toplev.c (parse_options_and_default_flags): Reenable
12007         -fcprop-registers at -O1.
12008
12009 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
12010
12011         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
12012         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
12013
12014         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
12015         predicates.
12016
12017         * config/rs6000/rs6000.md: Add altivec predicate patterns.
12018
12019 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12020
12021         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
12022         (pa_output_function_prologue): Output local label at the beginning of
12023         the prologue when profiling.
12024         (hppa_profile_hook): Use the local label rather than the function label.
12025         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
12026
12027 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
12028
12029         * config/rs6000/rs6000.c (print_operand): Remove extra space.
12030         (altivec_expand_unop_builtin): Fix thinko.
12031         (altivec_expand_binop_builtin): Same.
12032         (altivec_expand_ternop_builtin): Same.
12033         (altivec_expand_builtin): Same.
12034
12035 2002-01-07  Richard Henderson  <rth@redhat.com>
12036
12037         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
12038
12039 2002-01-07  Jason Merrill  <jason@redhat.com>
12040
12041         * unwind-dw2.c (execute_cfa_program): Use < again.
12042
12043 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
12044
12045         * predict.c (combine_predictions_for_insn): Avoid division by zero.
12046
12047 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
12048
12049         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
12050         Don't allow -1 - x -> ~x simplifications in the first pass.
12051
12052 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
12053
12054         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
12055         arguments.
12056         (altivec_expand_binop_builtin): Same.
12057         (altivec_expand_unop_builtin): Same.
12058         (print_operand): Fix typo.
12059         (bdesc_1arg): Add vupk* variants.
12060
12061         * rs6000.h (rs6000_builtins): Add vupk* enums.
12062
12063         * rs6000.md: Add altivec_vupk* variants.
12064
12065 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
12066
12067         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
12068         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
12069         and last update dates.
12070
12071 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
12072
12073         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
12074
12075 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12076
12077         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
12078         * config/avr/avr.h (CPP_SPEC): Likewise.
12079         (LINK_SPEC): Likewise.
12080         (CRT_BINUTILS_SPECS): Likewise.
12081         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12082         * doc/invoke.texi (AVR Options): Document them.
12083
12084 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
12085
12086         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
12087         LABEL_NUSES.
12088
12089 2002-01-07  Graham Stott  <grahams@redhat.com>
12090
12091         * config/i386/i386.h: Update copyright date.
12092         (HALF_PIC_PTR): Add parenthesis.
12093         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
12094         (CONSTANT_ALIGNMENT): Add parenthesis.
12095         (DATA_ALIGNMENT): Likewise.
12096         (LOCAL_ALIGNMENT): Likewise.
12097         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
12098         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
12099         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
12100         (HARD_REGNO_NREGS): Add paranethesis.
12101         (VALID_SSE_REG_MODE): Whitespace.
12102         (VALID_MMX_REG_MODE): Whitespace.
12103         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
12104         (ix86_hard_regno_mode_ok): Add parenthesis.
12105         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
12106         (RETURN_IN_MEMORY): Whitespace.
12107         (N_REG_CLASSES): Add parenthesis.
12108         (INTEGER_CLASS_P): Add parenthesis and wrap.
12109         (FLOAT_CLASS_P): Likewise.
12110         (SSE_CLASS_P): Likewise.
12111         (MMX_CLASS_P): Likewise.
12112         (MAYBE_INTEGER_CLASS_P): Likewise.
12113         (MAYBE_FLOAT_CLASS_P): Likewise.
12114         (MAYBE_SSE_CLASS_P): Likewise.
12115         (MAYBE_MMX_CLASS_P): Likewise.
12116         (Q_CLASS_P): Likewise.
12117         (GENERAL_REGNO_P): Uppercase macro parameter.
12118         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
12119         (FP_REGNO_P): Likewise.
12120         (ANY_FP_REGNO_P): Uppercase macro parameter.
12121         (SSE_REGNO_P): Likewise.
12122         (SSE_REGNO): Likewise.
12123         (SSE_REG_P): Likewise.
12124         (SSE_FLOAT_MODE_P): Likewise.
12125         (MMX_REGNO_P): Likewise.
12126         (MMX_REG_P):Likewise.
12127         (STACK_REG_P): Likewise.
12128         (NON_STACK_REG_P): Likewise.
12129         (STACK_TOP_P): Likewise.
12130         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
12131         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
12132         (SECONDARY_MEMORY_NEEDED): Likewise.
12133         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
12134         (MD_ASM_CLOBBERS): Whitespace and wrap.
12135         (MUST_PASS_IN_STACK): Whitespace and wrap.
12136         (RETURN_POPS_ARGS): Add parenthesis.
12137         (INIT_CUMULATIVE_ARGS): Likewise.
12138         (FUNCTION_ARG): Likewise.
12139         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
12140         (SETUP_INCOMING_VARARGS): Likewise.
12141         (BUILD_VA_LIST_TYPE):  Add parenthesis.
12142         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
12143         parenthsis.
12144         (EXPAND_BUILTIN_VA_ARG): Likewise.
12145         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
12146         (INITIALIZE_TRAMPOLINE): Add parenthesis.
12147         (INITIAL_ELIMINATION_OFFSET): Likewise.
12148         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
12149         (REGNO_OK_FOR_BASE_P): Likewise.
12150         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
12151         (REGNO_OK_FOR_DIREG_P): Likewise.
12152         (REG_OK_FOR_INDEX_P): Whitespace.
12153         (REG_OK_FOR_BASE_P): Whitespace.
12154         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
12155         parenthesis.
12156         (FIND_BASE_TERM): Fix typo.
12157         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
12158         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
12159         (SYMBOLIC_CONST; Whitespace.
12160         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
12161         (ENCODE_SECTION_INFO): Whitespace.
12162         (FINALIZE_PIC): Remove do { ... } while (0).
12163         (PROMOTE_MODE): Wrap in do { ... } while (0).
12164         (CONST_COSTS): Whitespace.
12165         (RTX_COSTS): Add paramethesis, whitespace and wrap.
12166         (REGISTER_MOVE_COST): Add parenthesis.
12167         (MEMORY_MOVE_COST): Likewise.
12168         (EXTRA_CC_MODES): Whitespace.
12169         (SELECT_CC_MODE): Add parenthesis and whitespace.
12170         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
12171         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
12172         (ASM_OUTPUT_LABEL): Add paramethesis.
12173         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
12174         (ASM_OUTPUT_REG_POP): Likewise.
12175         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
12176         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12177
12178         * config/i386/i386.c: Update copyright.
12179         (CHECK_STACK_LIMIT): Add parenthesis.
12180         (AT_BP): Uppercase macro parameter.
12181         (x86_64_int_parameter_registers): Constify.
12182         (x86_64_int_return_registers): Likewise.
12183         (ix86_compare_op0): Use rtx.
12184         (construct_container): Constify INTREG parameter.
12185         (function_arg): Use rtx.
12186
12187         * diagnostic.h: Update copyright date.
12188         (output_buffer_state): Add parenthesis.
12189         (output_buffer_format_args): Likewise.
12190
12191         * combine.c (combine_instructions): Replace XEXP (links, 0)
12192         with link.
12193
12194 2002-01-06  H.J. Lu <hjl@gnu.org>
12195
12196         * cfgcleanup.c (thread_jump): Fix 2 typos.
12197
12198 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
12199
12200         * config.gcc: Add support for --enable-altivec.
12201
12202 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12203
12204         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
12205
12206 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
12207
12208         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
12209         __objc_class_name_*.
12210
12211 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12212
12213         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
12214
12215 2002-01-06  Richard Henderson  <rth@redhat.com>
12216
12217         * reorg.c (emit_delay_sequence): Remove death notes, not merely
12218         nop them out.  Increment label reference count for REG_LABEL.
12219         (fill_slots_from_thread): Frob label reference count around
12220         delete_related_insns.
12221
12222 2002-01-05  Richard Henderson  <rth@redhat.com>
12223
12224         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
12225         jump threading.
12226
12227 2002-01-05  Richard Henderson  <rth@redhat.com>
12228
12229         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
12230         * integrate.c (output_inline_function): Likewise.
12231         * toplev.c (rest_of_compilation): Do it here instead.  Move call
12232         to remove_unnecessary_notes after emitting abstract instance.
12233         Force an emitted nested function to have its parent emited as well.
12234         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
12235         for null.
12236         (rtl_for_decl_location): Do not look at reload data structures
12237         before reload has run.
12238
12239 2002-01-05  Kazu Hirata  <kazu@hxi.com>
12240
12241         * cse.c: Fix formatting.
12242         * dwarf2asm.c: Likewise.
12243         * dwarf2out.c: Likewise.
12244         * explow.c: Likewise.
12245         * expmed.c: Likewise.
12246         * function.c: Likewise.
12247         * gcov.c: Likewise.
12248         * gencheck.c: Likewise.
12249         * genrecog.c: Likewise.
12250         * ggc-common.c: Likewise.
12251         * ggc-page.c: Likewise.
12252         * global.c: Likewise.
12253
12254 2002-01-05  Kazu Hirata  <kazu@hxi.com>
12255
12256         * combine.c: Fix formatting.
12257
12258 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
12259
12260         PR middle-end/1557
12261         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
12262
12263 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
12264
12265         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
12266         as 1 for __powerpc64__ as well.
12267
12268         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
12269
12270         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
12271         return it.
12272
12273 2002-01-05  Daniel Berlin  <dan@dberlin.org>
12274
12275         * lcm.c: Revert change, due to performance regression it causes on
12276         SPEC because it's slightly more conservative (sigh, I hate
12277         edge-based LCM).
12278
12279 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
12280
12281         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
12282
12283 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
12284
12285         * doc/cppinternals.texi: Update.
12286
12287 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
12288
12289         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
12290         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
12291         negatives.
12292         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
12293         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
12294         kludge for pre-october-14th mmix versions to handle new-found bug
12295         with PUSHJ/PUSHGO and the register stack.
12296         * config/mmix/mmix.h (struct machine_function): Rename member
12297         has_call_value_without_parameters to has_call_without_parameters.
12298         All referers changed.
12299         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
12300         TARGET_MASK_BRANCH_PREDICT): New macros.
12301         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
12302         -mno-reg-stack-fill-bug-workaround.
12303         * config/mmix/mmix.md ("call"): Set struct machine member
12304         has_call_without_parameters.
12305
12306 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
12307
12308         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
12309
12310 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
12311
12312         * cfgcleanup.c: Include tm_p.h
12313         (mark_effect): Fix handling of hard register; fix handling of SET
12314
12315 2002-01-04  Kazu Hirata  <kazu@hxi.com>
12316
12317         * config/h8300/h8300.md (anonymous patterns): Check that
12318         operands are registers before using REGNO on them.
12319
12320 2002-01-03  Roland McGrath  <roland@frob.com>
12321
12322         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
12323
12324 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
12325
12326         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
12327         * c-common.h (genrtl_expr_stmt_value): Likewise.
12328         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
12329         (expand_expr_stmt_value): Add maybe_last argument.
12330         Don't warn about statement with no effect if it is the last statement
12331         in expression statement.
12332         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
12333         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
12334         expand_expr_stmt_value.
12335         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
12336         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
12337         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
12338         as maybe_last to expand_expr_stmt_value.
12339
12340 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
12341
12342         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
12343         be passed in, do not build it.
12344         (c_begin_if_stmt): New function.
12345         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12346         * c-common.h (c_expand_start_cond): Update prototype.
12347         (c_begin_if_stmt): Prototype new function.
12348         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
12349         * c-parse.in (if_prefix): Use c_begin_if_stmt,
12350         c_begin_while_stmt and c_finish_while_stmt_cond.
12351
12352 2002-01-04  William Cohen  <wcohen@redhat.com>
12353
12354         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
12355         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12356         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12357         * config/pa/som.h (ASM_FILE_START): Likewise.
12358
12359 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
12360
12361         * lcm.c: Include df.h.
12362         Add available_transfer_function prototype.
12363         (compute_available): Rework to use iterative dataflow framework.
12364         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
12365         with bb_info in df.h
12366         (available_transfer_function): New function.
12367
12368         * Makefile.in (lcm.o): add df.h to dependencies.
12369
12370 2002-01-04  Richard Henderson  <rth@redhat.com>
12371
12372         * config/alpha/alpha.c (some_operand): Accept HIGH.
12373         (input_operand): Likewise; accept simple references to globals.
12374         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
12375         (alpha_const_double_ok_for_letter_p): Likewise.
12376         (alpha_extra_constraint): Likewise.
12377         (alpha_preferred_reload_class): Likewise.  Do not force
12378         symbolic constants to memory.
12379         (alpha_legitimate_address_p): Accept simple references
12380         to small_symbolic_operand.
12381         (alpha_legitimize_address): New arg scratch.  Be prepared to be
12382         called when no_new_pseudos.  Emit simple symbolic references.
12383         Split integers into low, high, and rest.
12384         (alpha_expand_mov): Use alpha_legitimize_address.
12385         (some_small_symbolic_mem_operand): New.
12386         (split_small_symbolic_mem_operand): New.
12387         * config/alpha/alpha-protos.h: Update.
12388         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
12389         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
12390         (EXTRA_CONSTRAINT): Likewise.
12391         (PREFERRED_RELOAD_CLASS): Likewise.
12392         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
12393         (PREDICATE_CODES): Update.
12394         * config/alpha/alpha.md: New post-reload splitters to convert
12395         simplfied symbolic operands to the form that references $29.
12396         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
12397         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
12398
12399 2002-01-03  Richard Henderson  <rth@redhat.com>
12400
12401         * local-alloc.c (function_invariant_p): Update commentary.
12402
12403 2002-01-04  H.J. Lu <hjl@gnu.org>
12404
12405         * toplev.c (rest_of_compilation): Fix a typo when calling
12406         cleanup_cfg.
12407
12408 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12409
12410         * c-common.c: Fix formatting.
12411         * diagnostic.c: Likewise.
12412         * doloop.c: Likewise.
12413         * dwarf2out.c: Likewise.
12414
12415 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12416
12417         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
12418         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
12419
12420 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12421
12422         * cpperror.c: Update comments and copyright.
12423         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
12424         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
12425
12426 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12427
12428         * collect2.c (main): Use strcmp when testing for "-shared".
12429
12430 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
12431
12432         * cppmacro.c: Don't include intl.h.  Update comments.
12433         (new_number_token): Allocate enough buffer for 64-bit unsigned
12434         integers; update prototype.
12435         * cppmain.c: Update comments.
12436
12437 2002-01-03  William Cohen  <wcohen@redhat.com>
12438
12439         * function.h (struct function): Add profile.
12440         (current_function_profile): New.
12441         doc/extend.texi: Update documentation.
12442         * final.c (final_start_function): Use current_function_profile
12443         instead of profile_flag.
12444         (profile_after_prologue): Likewise.
12445         * function.c (expand_function_start): Likewise.
12446         (expand_function_start): Likewise.
12447         * config/alpha/alpha.c (direct_call_operand):
12448         (alpha_does_function_need_gp): Likewise.
12449         (alpha_expand_prologue): Likewise.
12450         * config/arm/arm.c (arm_expand_prologue): Likewise.
12451         thumb_expand_prologue: Likewise.
12452         * config/d30v/d30v.c (d30v_stack_info): Likewise.
12453         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
12454         (fr30_expand_prologue): Likewise.
12455         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
12456         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
12457         * config/i386/i386.h (FINALIZE_PIC): Likewise.
12458         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
12459         * config/i960/i960.c (i960_output_function_prologue): Likewise.
12460         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
12461         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
12462         (m32r_expand_prologue): Likewise.
12463         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
12464         (m88k_expand_prologue): Likewise.
12465         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
12466         * config/mips/mips.c (compute_frame_size): Likewise.
12467         (mips_expand_prologue): Likewise.
12468         (mips_can_use_return_insn): Likewise.
12469         * config/pa/elf.h (ASM_FILE_START): Likewise.
12470         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
12471         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
12472         * config/pa/som.h (ASM_FILE_START): Likewise.
12473         * config/romp/romp.c (romp_using_r14): Likewise.
12474         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
12475         (rs6000_stack_info): Likewise.
12476         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12477         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
12478         * config/v850/v850.c (compute_register_save_size): Likewise.
12479
12480 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
12481
12482         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
12483         gen_lowpart_common fails, use gen_lowpart_SUBREG.
12484
12485 2002-01-03  Turly O'Connor  <turly@apple.com>
12486
12487         * darwin.c (machopic_output_possible_stub_label): Don't generate
12488         stub routines for pseudo-stubs which we've just defined.
12489
12490 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12491
12492         * builtins.c: Fix formatting.
12493         * c-typeck.c: Likewise.
12494         * combine.c: Likewise.
12495         * expr.c: Likewise.
12496         * loop.c: Likewise.
12497
12498 2002-01-03  Andreas Schwab  <schwab@suse.de>
12499
12500         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
12501         and return true if _cpp_push_next_buffer pushed a new include
12502         file.
12503         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
12504         _cpp_pop_file_buffer did not push a new file.
12505         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
12506
12507 2002-01-02  Eric Christopher  <echristo@redhat.com>
12508
12509         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
12510         FIND_REG_INC_NOTE call. Update copyright.
12511         * loop.c (canonicalize_condition): Ditto.
12512         * reorg.c (delete_scheduled_jump): Ditto.
12513
12514 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12515
12516         * gcse.c: Fix formatting.
12517
12518 2002-01-03  Graham Stott  <grahams@redhat.com>
12519
12520         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
12521         forward defs for struct tags rtx_def, union_tree, rtvec_def
12522         also output corresponding typedefs for rtx, tree, and rtvec.
12523
12524         * system.h: Move forward defs for struct tags rtx_def, union_tree,
12525         rtvec_def along with corresponding typedefs for rtx, tree, and
12526         rtvec to config.h, hconfig.h, tconfig.h.
12527
12528 2002-01-03  Graham Stott  <grahams@redhat.com>
12529
12530         * tree.h: Update copyright date.
12531         (IS_EXPR_CODE_CLASS): Add parenthesis.
12532         (TREE_SET_CODE): Add whitespace.
12533         (TREE_CHECK): Add parenthesis.
12534         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
12535         (CST_OR_CONSTRUCTOR_CHECK):
12536         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
12537         (TREE_SYMBOL_REFERENCED): Whitespace.
12538         (INT_CST_LT): Likewise.
12539         (INT_CST_LT_UNSIGNED): Likewise.
12540         (tree_real_cst): Unwrap comment.
12541         (tree_string): Likewise.
12542         (tree_complex): Likewise.
12543         (IDENTIFIER_POINTER): correct cast.
12544         (SAVE_EXPR_CONTEXT): Whitespace.
12545         (EXPR_WFL_FILENAME_NODE): Likewise.
12546         (EXPR_WFL_FILENAME): Remove parenthesis.
12547         (DECL_ORIGIN): Add parenthesis.
12548         (DECL_FROM_INLINE): Use NULL_TREE.
12549         (build_int_2): Whitespace.
12550         (build_type_variant): Add parenthesis.
12551
12552         * gcc/jcf-parse.c: Update copyright date.
12553         (yyparse): Constify resource_filename.
12554
12555 2002-01-03  Graham Stott  <grahams@redhat.com>
12556
12557         * rtl.h: Update copyright date.
12558         (RTL_CHECK1): Wrap long line.
12559         (RTL_CHECK2): Likewise.
12560         (RTL_CHECKC1): Wrap long line and whitespace.
12561         (RTL_CHECKC2): Likewise.
12562         (XWINT): Whitespace.
12563         (XINT): Likewise.
12564         (XSTR): Likewise.
12565         (XEXP): Likewise.
12566         (XVEC): Likewise.
12567         (XMODE): Likewise.
12568         (XBITMAP): Likewise.
12569         (XTREE): Likewise.
12570         (XBBDEF): Likewise.
12571         (XTMPL): Likewise.
12572         (X0WINT): Likewise.
12573         (X0INT):Likewise.
12574         (X0UINT): Likewise.
12575         (X0STR): Likewise.
12576         (X0EXP): Likewise.
12577         (X0VEC): Likewise.
12578         (X0MODE): Likewise.
12579         (X0BITMAP): Likewise.
12580         (X0TREE): Likewise.
12581         (X0BBDEF): Likewise.
12582         (X0ADVFLAGS): Likewise.
12583         (X0CSELIB): Likewise.
12584         (X0MEMATTR): Likewise.
12585         (XCWINT): Likewise.
12586         (XCINT): Likewise.
12587         (XCUINT): Likewise.
12588         (XCSTR): Likewise.
12589         (XCEXP): Likewise.
12590         (XCVEC): Likewise.
12591         (XCMODE): Likewise.
12592         (XCBITMAP): Likewise.
12593         (XCTREE): Likewise.
12594         (XCBBDEF): Likewise.
12595         (XCADVFLAGS): Likewise.
12596         (XCCSELIB): Likewise.
12597         (XC2EXP): Likewise.
12598         (INSN_UID): Likewise.
12599         (PREV_INSN): Likewise.
12600         (PATTERN): Likewise.
12601         (INSN_CODE): Likewise.
12602         (PUT_REG_NOTE_KIND): Likewise.
12603         (CODE_LABEL_NUMBER): Likewise.
12604         (NOTE_SOURCE_FILE): Likewise.
12605         (NOTE_BLOCK): Likewise.
12606         (NOTE_EH_HANDLER): Likewise.
12607         (NOTE_RANGE_INFO): Likewise.
12608         (NOTE_LIVE_INFO): Likewise.
12609         (NOTE_BASIC_BLOCK): Likewise.
12610         (NOTE_EXPECTED_VALUE): Likewise.
12611         (NOTE_LINE_NUMBER): Likewise.
12612         (LABEL_NAME): Likewise.
12613         (LABEL_NUSES): Likewise.
12614         (LABEL_ALTERNATE_NAME): Likewise.
12615         (ADDRESSOF_DECL): Likewise.
12616         (JUMP_LABEL): Likewise.
12617         (LABEL_NEXTREF): Likewise.
12618         (REGNO): Likewise.
12619         (ORIGINAL_REGNO: Likewise.
12620         (HARD_REGISTER_NUM_P): Add parenthesis.
12621         (SUBREG_REG): Whitespace.
12622         (SUBREG_BYTE): Likewise.
12623         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
12624         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
12625         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
12626         (ASM_OPERANDS_INPUT_VEC): Likewise.
12627         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
12628         (ASM_OPERANDS_INPUT): Likewise.
12629         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
12630         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
12631         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
12632         (ASM_OPERANDS_INPUT_MODE): Likewise.
12633         (ASM_OPERANDS_SOURCE_FILE): Likewise.
12634         (ASM_OPERANDS_SOURCE_LINE): Likewise.
12635         (MEM_SET_IN_STRUCT_P): Minor reformat.
12636         (TRAP_CONDITION): Whitespace.
12637         (TRAP_CODE): Likewise.
12638         (COND_EXEC_TEST): Likewise.
12639         (COND_EXEC_CODE): Likewise.
12640         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
12641         (PHI_NODE_P): Add parenthesis.
12642         (plus_constant): Whitespace and add parenthesis.
12643
12644 2002-01-03  Kazu Hirata  <kazu@hxi.com>
12645
12646         * config/avr/avr.c: Fix comment typos.
12647         * config/c4x/c4x.md: Likewise.
12648         * config/dsp16xx/dsp16xx.h: Likewise.
12649         * config/dsp16xx/dsp16xx.md: Likewise.
12650         * config/i386/i386.md: Likewise.
12651         * config/ia64/ia64.c: Likewise.
12652         * config/m32r/m32r.h: Likewise.
12653         * config/m68hc11/m68hc11.md: Likewise.
12654         * config/mmix/mmix.c: Likewise.
12655         * config/mn10200/mn10200.c: Likewise.
12656         * config/romp/romp.c: Likewise.
12657         * config/sh/sh.c: Likewise.
12658         * config/stormy16/stormy16.c: Likewise.
12659         * config/stormy16/stormy16.h: Likewise.
12660         * config/stormy16/stormy16.md: Likewise.
12661
12662 2002-01-03  Graham Stott  <grahams@redhat.com>
12663
12664         * loop.h: Update copyright date.
12665         (LOOP_MOVABLES): Fix typo.
12666         (LOOP_REGS): Likewise.
12667         (LOOP_IVS): Likewise.
12668
12669 2002-01-03  Graham Stott  <grahams@redhat.com>
12670
12671         * cppinit.c: Update copyright date.
12672         Don't include output.h
12673         * Makefile.in: Update copyright date.
12674         Update dependency.
12675
12676 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12677
12678         PR c/5226
12679         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
12680         (-pthread) Add to RS/6000 options.
12681
12682 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12683
12684         * except.c: Fix comment typos.
12685         * loop.c: Likewise.
12686         * varasm.c: Likewise.
12687         * doc/tm.texi: Fix a typo.
12688
12689 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
12690
12691         * c-typeck.c (output_init_element): Allow initializing static storage
12692         duration objects with compound literals.
12693
12694 2002-01-02  Richard Henderson  <rth@redhat.com>
12695
12696         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
12697         after abusing it.
12698
12699 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12700
12701         * gcc.c (default_compilers): Const-ify.
12702         * mips-tdump.c (stab_names): Likewise.
12703         * mips-tfile.c (map_coff_types, map_coff_storage,
12704         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
12705         pseudo_ops_t, pseudo_ops): Likewise.
12706         * protoize.c (default_include): Likewise
12707
12708         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
12709         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
12710         Add array size in declaration.
12711         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
12712         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
12713         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
12714         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
12715         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
12716         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
12717         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
12718         emtens, make_nan): Const-ify.
12719         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
12720         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
12721
12722 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
12723
12724         * config.gcc (ia64-*-*): Set extra_headers.
12725         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
12726         * config/alpha/t-osf: Remove.
12727         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
12728
12729 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
12730
12731         * config/rs6000/t-aix43: Revert previous change.
12732
12733 2002-01-02  Jason Merrill  <jason@redhat.com>
12734
12735         * c-decl.c (c_expand_body): Call outlining_inline_function when
12736         emitting an inline function out of line.
12737
12738 2002-01-02  Richard Henderson  <rth@redhat.com>
12739
12740         * dwarf2out.c (limbo_die_node): Add created_for member.
12741         (new_die): New argument created_for.  Update all callers.
12742         (mark_limbo_die_list): New.
12743         (dwarf2out_init): Register limbo_die_list as a root.
12744         (dwarf2out_finish): Force insert limbo dies into their function
12745         context.
12746
12747 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
12748
12749         PR c++/5089
12750         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
12751
12752 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12753
12754         * config/h8300/fixunssfsi.c: Update copyright.
12755         Fix comment typos.
12756         Fix formatting.
12757         * config/h8300/h8300.c: Update copyright.
12758         Eliminate warnings.
12759
12760 2002-01-02  Kazu Hirata  <kazu@hxi.com>
12761
12762         * config/romp/romp.c: Fix comment formatting.
12763         * config/romp/romp.h: Likewise.
12764         * config/romp/romp.md: Likewise.
12765         * config/s390/s390.c: Likewise.
12766         * config/stormy16/stormy16.c: Likewise.
12767         * config/stormy16/stormy16.h: Likewise.
12768
12769 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
12770
12771         * c-common.h (genrtl_expr_stmt_value): Declare.
12772         * c-semantics.c (genrtl_goto_stmt): Redirect to...
12773         (genrtl_goto_stmt_value): ... this new function.  Pass new
12774         argument down to expand_expr_stmt_value, taking
12775         TREE_ADDRESSABLE into account.
12776         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
12777         STMT_EXPR as addressable, i.e., one whose result we want.
12778         * expr.c (expand_expr): Don't save expression statement value
12779         of labeled_blocks or loop_exprs.
12780         * stmt.c (expand_expr_stmt): Redirect to...
12781         (expand_expr_stmt_value): ... this new function.  Use new
12782         argument to tell whether to save expression value.
12783         (expand_end_stmt_expr): Reset last_expr_type and
12784         last_expr_value if we don't have either.
12785         * tree-inline.c (declare_return_variable): Mark its use
12786         statement as addressable.
12787         * tree.h: Document new use of TREE_ADDRESSABLE.
12788         (expand_expr_stmt_value): Declare.
12789
12790 2002-01-01  Tom Rix  <trix@redhat.com>
12791
12792         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
12793         rs6000_emit_allocate_stack.
12794
12795 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
12796
12797         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
12798         ${srcdir}/ginclude/ to every entry in extra_headers.
12799         * configure: Regenerate.
12800         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
12801         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
12802         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
12803         * ginclude/proto.h: Rename to config/convex/proto.h.
12804
12805 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12806
12807         * attribs.c (handle_vector_size_attribute): Use host_integerp
12808         and tree_int_cst; remove warnings.
12809         * caller-save.c (insert_restore): Add cast to get rid of warning.
12810         (insert_save): Likewise.
12811         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
12812         * regmove.c (find_matches): Add temporary var to kill a warning.
12813
12814 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
12815
12816         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
12817         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
12818         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
12819         (vms-dwarf2eh.o): Add Makefile rule.
12820         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
12821         * config/alpha/vms-dwarf2eh.asm: New file.
12822
12823         * gcc.c (delete_if_ordinary): Delete all versions.
12824
12825 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12826
12827         * config/mmix/mmix.md: Update FIXME to not mention
12828         define_constants.
12829         (MMIX_rJ_REGNUM): New define_constants constant.
12830         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
12831         "*movdicc_real"): Adjust contraints formatting.
12832         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
12833         for branch prediction.
12834         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
12835         output template.
12836         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
12837         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
12838         number.  Delete related FIXMEs.
12839         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
12840         from number to MMIX_rJ_REGNUM.
12841         (TARGET_MASK_BRANCH_PREDICT): New.
12842         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
12843         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
12844         value.  Add -mbranch-predict and -mno-branch-predict.
12845         (TARGET_VERSION): Drop date.
12846         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
12847         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
12848         for finding out global symbols.
12849         (mmix_asm_output_labelref): Revert condition for global symbol.
12850         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
12851         (mmix_print_operand_punct_valid_p): A '+' is valid.
12852
12853 See ChangeLog.6 for earlier changes.