OSDN Git Service

f8222d8df27aec88e6ce1db0665c775e5133151f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-08-30  Richard Henderson  <rth@redhat.com>
2
3         PR opt/7515
4         * c-objc-common.c: Include target.h.
5         (c_cannot_inline_tree_fn): Don't auto-inline functions that
6         don't bind locally.  Factor setting DECL_UNINLINABLE.
7         * Makefile.in (c-objc-common.o): Update.
8
9 2002-08-30  Janis Johnson  <janis187@us.ibm.com>
10
11         * doc/install.texi (Configuration, Building): Fix a typo and
12         some formatting directives.
13
14 2002-08-30  Paul Koning <pkoning@equallogic.com>
15
16         * doc/c-tree.texi (RDIV_EXPR): Fix typo.
17         * doc/rtl.texi (post_modify): Remove misplaced text, remove "not
18         implemented" note.
19         * doc/md.texi (IP2K): Move machine-specific constraints before MIPS
20         for alphabetic order.
21         * doc/tm.texi (TARGET_FLOAT_FORMAT): Update description for
22         VAX_FLOAT_FORMAT.  Remove reference to HOST_FLOAT_FORMAT.
23         (VAX_HALFWORD_ORDER): Document.
24         (LARGEST_EXPONENT_IS_NORMAL): Remove note about being only for
25         IEEE float format.
26         (TARGET_SCHED_ISSUE_RATE): Reword reference to MAX_DFA_ISSUE_RATE.
27         (ASM_OUTPUT_LABEL_REF): Fix font.
28         (CASE_VECTOR_SHORTEN_MODE): Ditto.
29
30 2002-08-30  Denis Chertykov  <denisc@overta.ru>
31
32         * config/ip2k/ip2k.c (ip2k_set_compare): Remove all const_double
33         stuff.
34         (ip2k_gen_unsigned_comp_branch): Handle CONST_INT and
35         CONST_DOUBLE constants.
36         
37 2002-08-30  Jason Thorpe  <thorpej@wasabisystems.com>
38
39         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Move language-
40         related defines to...
41         (SUBTARGET_LANGUAGE_CPP_BUILTINS): ...here.
42         * config/alpha/netbsd.h (SUBTARGET_LANGUAGE_CPP_BUILTINS): Redefine
43         as a no-op.
44
45 2002-08-30  Krister Walfridsson  <cato@df.lth.se>
46
47         * config/arm/arm.c (arm_asm_output_labelref): New function.
48         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref.
49         * config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref.
50
51 2002-08-29  Rodney Brown  <rbrown64@csc.com.au>
52
53         * doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual
54         memory exhausted" workarounds.
55
56 2002-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
57
58         * diagnostic.c (fancy_abort): Don't repeat "internal error".
59         * toplev.c (crash_signal): Likewise.
60
61 Fri Aug 30 00:33:37 2002  Nicola Pero  <n.pero@mi.flashnet.it>
62
63         * doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation.
64         * doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector):
65         Extended, updated documentation.
66         (-Wundeclared-selector): Documented.
67
68 2002-08-29  Jason Thorpe  <thorpej@wasabisystems.com>
69
70         * config/chorus.h: Consistently define *_DEBUGGING_INFO with
71         the value 1.  Do not undef before defining.
72         * config/darwin.h: Likewise.
73         * config/dbx.h: Likewise.
74         * config/dbxcoff.h: Likewise.
75         * config/dbxelf.h: Likewise.
76         * config/elfos.h: Likewise.
77         * config/interix.h: Likewise.
78         * config/lynx-ng.h: Likewise.
79         * config/lynx.h: Likewise.
80         * config/netware.h: Likewise.
81         * config/psos.h: Likewise.
82         * config/svr3.h: Likewise.
83         * config/alpha/alpha.h: Likewise.
84         * config/alpha/elf.h: Likewise.
85         * config/alpha/vms.h: Likewise.
86         * config/arc/arc.h: Likewise.
87         * config/arm/aout.h: Likewise.
88         * config/arm/coff.h: Likewise.
89         * config/c4x/c4x.h: Likewise.
90         * config/h8300/h8300.h: Likewise.
91         * config/i386/cygwin.h: Likewise.
92         * config/i386/djgpp.h: Likewise.
93         * config/i386/gas.h: Likewise.
94         * config/i386/gstabs.h: Likewise.
95         * config/i386/i386-coff.h: Likewise.
96         * config/i386/i386-interix.h: Likewise.
97         * config/i386/sco5.h: Likewise.
98         * config/i386/svr3dbx.h: Likewise.
99         * config/i386/sysv3.h: Likewise.
100         * config/i386/win32.h: Likewise.
101         * config/i386/x86-64.h: Likewise.
102         * config/i960/i960.h: Likewise.
103         * config/ia64/ia64.h: Likewise.
104         * config/ip2k/ip2k.h: Likewise.
105         * config/m32r/m32r.h: Likewise.
106         * config/m68k/3b1.h: Likewise.
107         * config/m68k/3b1g.h: Likewise.
108         * config/m68k/ccur-GAS.h: Likewise.
109         * config/m68k/coff.h: Likewise.
110         * config/m68k/hp2bsd.h: Likewise.
111         * config/m68k/hp310g.h: Likewise.
112         * config/m68k/hp320g.h: Likewise.
113         * config/m68k/hp3bsd.h: Likewise.
114         * config/m68k/hp3bsd44.h: Likewise.
115         * config/m68k/linux-aout.h: Likewise.
116         * config/m68k/m68k-aout.h: Likewise.
117         * config/m68k/mot3300.h: Likewise.
118         * config/m68k/netbsd.h: Likewise.
119         * config/m68k/openbsd.h: Likewise.
120         * config/m68k/pbb.h: Likewise.
121         * config/m68k/plexus.h: Likewise.
122         * config/m68k/sun2.h: Likewise.
123         * config/m68k/sun3.h: Likewise.
124         * config/m68k/tower-as.h: Likewise.
125         * config/m68k/vxm68k.h: Likewise.
126         * config/m88k/aout-dbx.h: Likewise.
127         * config/m88k/m88k-aout.h: Likewise.
128         * config/mcore/mcore-elf.h: Likewise.
129         * config/mcore/mcore-pe.h: Likewise.
130         * config/mips/elf.h: Likewise.
131         * config/mips/elf64.h: Likewise.
132         * config/mips/iris5gas.h: Likewise.
133         * config/mips/iris6.h: Likewise.
134         * config/mips/mips.h: Likewise.
135         * config/mips/sni-gas.h: Likewise.
136         * config/mmix/mmix.h: Likewise.
137         * config/ns32k/netbsd.h: Likewise.
138         * config/pa/pa64-hpux.h: Likewise.
139         * config/romp/romp.h: Likewise.
140         * config/rs6000/sysv4.h: Likewise.
141         * config/rs6000/xcoff.h: Likewise.
142         * config/sh/coff.h: Likewise.
143         * config/sh/elf.h: Likewise.
144         * config/sparc/linux64.h: Likewise.
145         * config/sparc/liteelf.h: Likewise.
146         * config/sparc/netbsd.h: Likewise.
147         * config/sparc/openbsd.h: Likewise.
148         * config/sparc/pbd.h: Likewise.
149         * config/sparc/sp64-elf.h: Likewise.
150         * config/sparc/sp86x-elf.h: Likewise.
151         * config/sparc/sparc.h: Likewise.
152         * config/vax/vax.h: Likewise.
153         * config/vax/vaxv.h: Likewise.
154
155 2002-08-29  "Dhananjay R. Deshpande" <dhananjayd@kpit.com>
156
157         * h8300.c (shift_alg_hi): Various tweaks to improve performance
158         of HImode shifts.
159         (get_shift_alg): Corresponding changes.
160
161 2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
162
163         * som.h (ALWAYS_STRIP_DOTDOT): Define to 1.
164
165 2002-08-29  Richard Henderson  <rth@redhat.com>
166
167         * expr.h (enum block_op_methods): New.
168         (emit_block_move): Update prototype.
169         * expr.c (block_move_libcall_safe_for_call_parm): New.
170         (emit_block_move_via_loop): New.
171         (emit_block_move): Use them.  New argument METHOD.
172         (emit_push_insn): Always respect the given alignment.
173         (expand_assignment): Update call to emit_block_move.
174         (store_expr, store_field, expand_expr): Likewise.
175         * builtins.c (expand_builtin_apply): Likewise.
176         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
177         * function.c (expand_function_end): Likewise.
178         * config/sh/sh.c (sh_initialize_trampoline): Likewise.
179         * config/sparc/sparc.c (sparc_va_arg): Likewise.
180         * calls.c (expand_call, emit_library_call_value_1): Likewise.
181         (save_fixed_argument_area): Use emit_block_move with
182         BLOCK_OP_CALL_PARM instead of move_by_pieces.
183         (restore_fixed_argument_area): Likewise.
184         (store_one_arg): Fix alignment parameter to emit_push_insn.
185
186 2002-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
187
188         * install.texi (hppa64-hp-hpux11*): Document installation procedure.
189
190 2002-08-29  Catherine Moore  <clm@redhat.com>
191
192         * config/v850/v850.h (MULDI3_LIBCALL, UCMPDI2_LIBCALL, CMPDI2_LIBCALL,
193         NEGDI2_LIBCALL, INIT_TARGET_OPTABS, MASK_STRICT_ALIGN): Define.
194         (PREDICATE_CODES): Include new predicates.
195         (RTX_COSTS): Handle UMOD and UDIV.  Tune MULT for v850e.
196         (TARGET_SWITCHES):  Add strict-align.
197         (TARGET_STRICT_ALIGN): New.
198         (MASK_DEFAULT, STRICT_ALIGNMENT):  Redefine.    
199         * config/v850/t-v850 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
200         Define.
201         (LIB1ASMFUNCS): Add v850_negdi2, v850_cmpdi2, v850_ucmpdi2,
202         v850_muldi3.
203         * config/v850/lib1funcs.asm (L_callt_save_r2_r29, L_return_r2_r29,
204         L_callt_save_r2_r31, L_return_r2_r31,
205         L_save_all_interrupt): Change addi to add.
206         (L_save_interrupt, L_return_interrupt): Rework.
207         (__return_r31):  Correct .size directive.
208         (mulsi3, divsi3, udivsi3, umodsi3, modsi3): Tune for v850e.
209         (v850_negdi2, v850_cmpdi2, v850_ucmpdi2, v850_muldi3):
210         New routines.
211         * config/v850/v850.c (expand_prologue): Call
212         gen_callt_save_interrupt, gen_callt_restore_all_interrupt,
213         gen_callt_return_interrupt and gen_callt_save_all_interrupt.
214         (reg_or_int9_operand): New predicate.
215         (reg_or_const_operand): New routine.
216         * config/v850/v850.md (return_interrupt): Changed from
217         restore_interrupt.
218         (callt_save_all_interrupt): Changed from save_all_interrupt_v850e.
219         (callt_save_interrupt): Change save sequence.
220         (callt_return_interrupt): New.
221         (save_interrupt): Don't use runtime function for LONG_CALLS
222         and TARGET_PROLOG_FUNCTION.
223         (save_all_interrupt): Likewise.
224         (mulsi3): Use new predicate.
225         (moviscc): Disallow some combination of constants.
226         Fix define_split for sasf insns, so that it will not generate bad
227         code if operand0 and operand5 are the same.
228         * config/v850/v850-protos.h: Prototype new predicates.
229
230 2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
231
232         * c-common.c (builtin_define_type_precision): New function.
233         (cb_register_builtins): Use it.  Define __WCHAR_UNSIGNED__ is
234         wchar_t is unsigned in C++.
235         * doc/cpp.texi (Common Predefined Macros): Document
236         __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__,
237         __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
238         __DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
239
240 2002-08-28  Sylvain Pion <pion@cs.nyu.edu>
241
242         * doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic
243         section.  Mention that it is enabled by -Wall.
244         (-Wall): Mention that there can be language-specific warnings as well.
245         (-Wctor-dtor-privacy): Mention that it is enabled by default.
246         (-Wnon-virtual-dtor): Mention that it is enabled by -Wall.
247
248 Wed Aug 28 15:35:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
249
250         * sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler
251         if it is ever live.
252
253         * sh.c (sh_handle_interrupt_handler_attribute): Reject interrupt_handler
254         attribute for SHCOMPACT.
255
256         * sh.h (OVERRIDE_OPTIONS): If align_function isn't set, set it
257         appropriately.
258         (FUNCTION_BOUNDARY): Specify only the minimum alignment required
259         by the ABI.
260
261         * sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Also handle TImode case.
262
263 2002-08-28  Jason Thorpe  <thorpej@wasabisystems.com>
264
265         * config.gcc (mips*-*-netbsd*): Set target_cpu_default to
266         "MASK_GAS|MASK_ABICALLS".
267         * config/mips/netbsd.h (TARGET_ENDIAN_DEFAULT)
268         (TARGET_DEFAULT): Remove.
269         (MACHINE_TYPE): Undefine before defining.
270         (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Remove.
271
272 2002-08-27  Mark Mitchell  <mark@codesourcery.com>
273
274         * c-common.c (warn_abi): New variable.
275         * c-common.h (warn_abi): Likewise.
276         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi.
277         (c_common_decode_option): Handle it.
278         * doc/invoke.texi: Document -Wabi.
279         
280 Tue Aug 27 23:03:52 2002  Nicola Pero  <n.pero@mi.flashnet.it>
281
282         * c-common.c (warn_undeclared_selector): New variable.
283         * c-common.h (warn_undeclared_selector): Idem.
284         * c-opts.c (c_common_decode_option): Set warn_undeclared_selector
285         to on when -Wundeclared-selector is found.
286         (COMMAND_LINE_OPTIONS): Added -Wundeclared-selector.
287         * objc/objc-act.c (build_selector_expr): If
288         warn_undeclared_selector is set, check that the selector has
289         already been defined, and emit a warning if not.
290
291 2002-08-27  Nick Clifton  <nickc@redhat.com>
292             Catherine Moore  <clm@redhat.com>
293             Jim Wilson  <wilson@cygnus.com>
294
295         * config.gcc: Add v850e-*-* target.
296         Add --with-cpu= support for v850.
297         * config/v850/lib1funcs.asm: Add v850e callt functions.
298         * config/v850/v850.h: Add support for v850e target.
299         * config/v850/v850.c: Add functions to support v850e target.
300         * config/v850/v850-protos.h: Add prototypes for new functions in v850.c.
301         * config/v850/v850.md: Add patterns for v850e instructions.
302         * doc/invoke.texi: Document new v850e command line switches.
303
304 Tue Aug 27 18:30:47 2002  J"orn Rennecke <joern.rennecke@superh.com>
305                           Aldy Hernandez <aldyh at redhat dot com>
306
307         * doc/tm.texi: Applied numerous fixes to the automaton based
308         scheduler descrition.
309
310 Tue Aug 27 19:51:05 CEST 2002  Jan Hubicka  <jh@suse.cz>
311
312         * i386.c (classify_argument): Handle variable sized objects.
313
314 Tue Aug 27 19:18:16 CEST 2002  Jan Hubicka  <jh@suse.cz>
315
316         * i386.c (ix86_expand_int_movcc): Fix RTL sharing problem
317
318 Tue Aug 27 18:01:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
319
320         * libgcc2.c (__bb_exit_func): Properly write the summarized statistics.
321
322 Tue Aug 27 18:00:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
323
324         * i386.c (classify_argument): Properly compute word size of the analyzed object.
325
326 Tue Aug 27 14:39:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
327
328         * sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp,
329         mac_gp ftrc_s and cwb.  Add / Adjust definitions in individual insn
330         accordingly.
331         (attribute insn_class): Provide default definitions based on type.
332         Remove all insn-specific settings.
333         (various function units): Remove old SH4 scheduling.
334         (branch_zero, dfp_comp, late_fp_use, any_fp_comp, any_int_load):
335         New attributes.  Set them where appropriate.
336         (cpu unit FS): Don't define / use.
337         (F3, load_store): New cpu units.
338         (F01): New reservation.
339         (all insn_reservations): Make dependent on sh4 pipeline model.
340         Fix latencies.
341         (nil, reg_mov, freg_mov, sh4_fpul_gp, sh4_call): New insn_reservations.
342         (sh4_mac_gp, fp_arith_ftrc, arith3, arith3b): Likewise.
343         (mt insn_reservation): Use type mt_group.
344         (insn_reservation load_store): Split into sh4_load, sh4_load_si,
345         sh4_fload and sh4_store.
346         (insn_reservation branch_zero and branch): Replace with sh4_branch.
347         (insn_reservation branch_far): Replace with sh4_return.
348         (insn_reservation return_from_exp): Rename to:
349         (sh4_return_from_exp).  Change to be just d_lock*5.
350         (insn_reservation lds_to_pr): Rename to:
351         (sh4_lds_to_pr).  Change to be just d_lock*2.
352         (insn_reservation ldsmem_to_pr, sts_from_pr): Change to be just
353         d_lock*2.
354         (insn_reservation prload_mem): Rename to:
355         (sh4_prstore_mem).  Change to d_lock*2,nothing,memory.
356         (insn_reservation fpscr_store): Rename to:
357         (fpscr_load).  Change to d_lock,nothing,F1*3.
358         (insn_reservation fpscr_store_mem): Rename to:
359         (fpscr_load_mem).  Change to d_lock,nothing,(F1+memory),F1*2.
360         (insn_reservation multi): Change to
361         d_lock,(d_lock+f1_1),(f1_1|f1_2)*3,F2.
362         (insn_reservation fp_arith): Change to issue,F01,F2.
363         (insn_reservation fp_div: Change to issue,F01+F3,F2+F3,F3*7,F1+F3,F2.
364         (insn_reservation dp_float): Change to issue,F01,F1+F2,F2.
365         (insn_reservation fp_double_arith): Change to issue,F01,F1+F2,fpu*4,F2.
366         (insn_reservation fp_double_cmp): Change to
367         d_lock,(d_lock+F01),F1+F2,F2.
368         (insn_reservation dp_div): Change to
369         issue,F01+F3,F1+F2+F3,F2+F3,F3*16,F1+F3,(fpu+F3)*2,F2.
370         * sh.c (flow_dependent_p, flow_dependent_p_1): New functions.
371         (sh_adjust_cost, SHcompact): Differentiate between different
372         kinds of dependencies.  Drop factor of ten for superscalar.
373         Use new instruction types.  Add new exception rules.
374
375         * sh.md (mulhisi3, umulhisi3: Add a REG_EQUAL note.
376
377         * sh.md (mperm_w): Add DONE.
378
379 2002-08-27  David Edelsohn  <edelsohn@gnu.org>
380
381         * longlong.h: Import current PowerPC defintion from GMP-4.1.
382
383         * config/rs6000/rs6000.h (MIN_UNITS_PER_WORD): Add IN_LIBGCC2 case.
384
385         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define.
386
387 Tue Aug 27 13:53:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
388
389         * sh.h (MAX_FIXED_MODE_SIZE): Define.
390
391 2002-08-27  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
392
393         * doc/cpp.texi (Common Predefined Macros): Don't mess with table
394         delimiter. 
395
396 2002-08-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
397
398         * c-common.c (cpp_define_data_format): New function.
399         (cb_register_builtins): Call it.
400
401         * doc/cpp.texi (Common Predefined Macros): Document
402         __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
403         __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
404         __TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__,
405         __TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__,
406         __TARGET_USES_VAX_H_FLOAT__.
407
408 2002-08-26  Ziemowit Laski <zlaski@apple.com>
409
410         * objc/objc-act.c (get_super_receiver): If inside a class method
411         of a category, cast the receiver to 'id' before accessing the 'isa'
412         field so that <objc/objc-class.h> is not needed.  For NeXT runtime.
413
414 2002-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
415
416         * config/s390/s390-protos.h (s390_function_prologue, 
417         s390_function_epilogue): Remove.
418         config/s390/s390.c (s390_function_prologue, s390_function_epilogue,
419         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
420
421         config/s390/s390.c (s390_machine_dependent_recorg): New function.
422         config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it.
423         config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it.
424         config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt
425         to being called from MACHINE_DEPENDENT_REORG.  Update regs_ever_live.
426
427         config/s390/s390.c (s390_frame_info): Inline save_fprs_p.  Always 
428         assume BASE_REGISTER and RETURN_REGNUM need to be saved.
429         (s390_emit_prologue): Assume RETURN_REGNUM to be saved iff
430         function is not a leaf function.  Use save_gprs and restore_gprs.
431         (s390_emit_epilogue): Likewise.
432         (save_gprs, restore_gprs): New functions.
433         (struct s390_frame): Remove return_reg_saved_p member.
434         (save_fprs_p): Remove.
435         (s390_optimize_prolog): New function.
436         (s390_legitimate_reload_constant): Remove now unnecessary check.
437
438         (s390_function_count): Remove.
439         (s390_output_symbolic_const): Replace s390_function_count by
440         current_function_funcdef_no.
441         (s390_output_constant_pool): Likewise.
442
443         (legitimize_pic_address): Use regs_ever_live to track PIC register
444         instead of current_function_uses_pic_offset_table.
445         (s390_emit_prologue): Likewise.
446         config/s390/s390.md ("call", "call_value"): Likewise.
447
448 2002-08-26  Neil Booth  <neil@daikokuya.co.uk>
449
450         * c-opts.c (find_opt): Don't complain about wrong languages
451         here.  Return exact matches even for wrong language.
452         (c_common_decode_option): Complain about wrong languages
453         here.
454
455 2002-08-24  Stuart Hastings  <stuart@apple.com>
456
457         * function.h (struct function): Add flag
458         all_throwers_are_sibcalls.
459         * except.c (set_nothrow_function_flags): Replaces
460         nothrow_function_p. Set new flag.
461         * except.h (set_nothrow_function_flags): Replaces
462         nothrow_function_p.
463         * dwarf2out.c (struct dw_fde_struct): Add flag
464         all_throwers_are_sibcalls.
465         (output_call_frame_info): Test it.
466         (dwarf2out_begin_prologue) Propagate it from cfun to
467         dw_fde_struct.
468         * toplev.c (rest_of_compilation): Update calls to
469         nothrow_function_p.
470
471 2002-08-23  Zack Weinberg  <zack@codesourcery.com>
472
473         * ggc-page.c (compute_inverse): Short circuit calculation for
474         object sizes larger than half a page.
475
476 2002-08-23  David Edelsohn  <edelsohn@gnu.org>
477
478         * config/rs6000/rs6000.c (rs6000_elf_select_section): Treat
479         DEFAULT_ABI == ABI_AIX like PIC.  Test PIC & reloc for readonly
480         default.
481         (rs6000_elf_unique_section): Likewise.
482
483 2002-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
484
485         * ns32k.c (ns32k_globalize_label): Delete.
486         * ns32k.h (ASM_OUTPUT_LABEL, TARGET_ASM_GLOBALIZE_LABEL): Delete.
487
488 2002-08-23  Alan Modra  <amodra@bigpond.net.au>
489
490         * config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns
491         for loading delta with num_insns_constant_wide.  Calculate
492         delta_low, delta_high without using a conditional.
493
494 2002-08-22  Jason Merrill  <jason@redhat.com>
495
496         * c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
497         * c-common.def: Adjust.
498         * c-dump.c (c_dump_tree): Adjust.
499         * c-semantics.c (genrtl_return_stmt): Adjust.
500         * c-pretty-print.c (pp_c_statement): Adjust.
501         * tree-inline.c (copy_body_r): Adjust.
502
503 2002-08-22  Zack Weinberg  <zack@codesourcery.com>
504
505         * ggc-page.c: Avoid division in ggc_set_mark.
506         (DIV_MULT, DIV_SHIFT, OFFSET_TO_BIT, inverse_table,
507         compute_inverse): New.
508         (ggc_set_mark, ggc_marked_p): Use OFFSET_TO_BIT.
509         (init_ggc): Initialize inverse_table.
510
511 2002-08-22  Tom Tromey  <tromey@redhat.com>
512
513         * doc/install.texi (Configuration): Document --datadir.
514
515 2002-08-22  Alexandre Oliva  <aoliva@redhat.com>
516
517         * Makefile.in ($(BUILD_PREFIX_1)varray.o): Depend on $(GGC_H).
518
519 2002-08-22  Hans-Peter Nilsson  <hp@bitrange.com>
520
521         * gengtype-lex.l (ID): Allow underscore as first character.
522
523 2002-08-21  David Edelsohn  <edelsohn@gnu.org>
524
525         * config/rs6000/rs6000.c (rs6000_xcoff_asm_globalize_label): New
526         function.
527         (rs6000_xcoff_asm_named_section): Rename.
528         * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
529
530 2002-08-21  Tom Tromey  <tromey@redhat.com>
531
532         For PR java/6005 and PR java/7611:
533         * fold-const.c (fold_truthop): Use can_use_bit_fields_p.
534         (fold): Likewise.
535         * langhooks.c (lhd_can_use_bit_fields_p): New function.
536         * langhooks-def.h (lhd_can_use_bit_fields_p): Declare.
537         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): New define.
538         (LANG_HOOKS_INITIALIZER): Use it.
539         * langhooks.h (struct lang_hooks) [can_use_bit_fields_p]: New
540         field.
541
542 2002-08-21  Stan Shebs  <shebs@apple.com>
543
544         * tree.c (finish_vector_type): Fix a typo in a comment.
545         * Makefile.in: Fix "the the" stutters in comments.
546         * genautomata.c: Ditto.
547         * ifcvt.c: Ditto.
548         * regrename.c: Ditto.
549         * config/alpha/alpha.c: Ditto.
550         * config/alpha/vms-crt0-64.c: Ditto.
551         * config/alpha/vms-crt0.c: Ditto.
552         * config/alpha/vms-psxcrt0-64.c: Ditto.
553         * config/alpha/vms-psxcrt0.c: Ditto.
554         * config/d30v/d30v.h: Ditto.
555         * config/fr30/fr30.h: Ditto.
556         * config/rs6000/rs6000.c: Ditto.
557         * config/stormy16/stormy16.h: Ditto.
558         * doc/md.texi: Ditto.
559
560 2002-08-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
561
562         * cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value.
563
564 2002-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
565
566         * c-decl.c (grokdeclarator): Make invalid combinations with long,
567         short, signed or unsigned into hard errors.  Fixes PR c/4319.
568         Also make duplicate modifiers such as "short short" into hard
569         errors.
570
571 2002-08-21  Andrew Pinski <pinskia@physics.uc.edu>
572             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
573
574         * doc/tm.texi (TARGET_ASM_GLOBALIZE_LABEL): Move '@end deftypefn'
575         to the actual end.  Add '@end table' and '@table @code'.
576
577 2002-08-20  Geoffrey Keating  <geoffk@redhat.com>
578
579         * doc/tm.texi (Label Output): Add missing '@end deftypefn'.
580
581         * unroll.c (biv_total_increment): Don't try to compute the total
582         increment for FP BIVs.
583
584 2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
585
586         * alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk.
587         * alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL,
588         ASM_OUTPUT_ALIGNED_BSS): Use target hook.
589         * alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise.
590         * alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete.
591         * arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise.
592         (GLOBAL_ASM_OP): Define.
593         * arm.c (aof_globalize_label): New function.
594         (TARGET_ASM_GLOBALIZE_LABEL): Define for AOF.
595         * arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
596         * c4x.c (c4x_globalize_label): New function.
597         (TARGET_ASM_GLOBALIZE_LABEL): Define for c4x.
598         * c4x.h (ASM_GLOBALIZE_LABEL): Delete.
599         (GLOBAL_ASM_OP): Define.
600         * cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
601         * darwin-protos.h (darwin_globalize_label): Declare.
602         * darwin.c (darwin_globalize_label): New function.
603         * darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook.
604         (ASM_GLOBALIZE_LABEL): Delete.
605         (GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define.
606         * dsp16xx.c (asm_output_common): Use target hook.
607         * elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
608         * frv.h (ASM_GLOBALIZE_LABEL): Delete.
609         (GLOBAL_ASM_OP): Define.
610         * i370.c (i370_globalize_label): New function.
611         (TARGET_ASM_GLOBALIZE_LABEL): Define for i370.
612         * i370.h (ASM_GLOBALIZE_LABEL): Delete.
613         * i386.c (ix86_asm_file_end): Use target hook.
614         * i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef.
615         (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
616         * ia64.c (ia64_asm_output_external): Likewise.
617         * ia64/sysv4.h: Update comment.
618         * m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
619         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
620         * mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook.
621         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
622         * mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook.
623         * mmix-protos.h (mmix_asm_globalize_label): Delete.
624         * mmix.c (mmix_asm_globalize_label): Likewise.
625         * mmix.h (ASM_GLOBALIZE_LABEL): Likewise.
626         (GLOBAL_ASM_OP): Define.
627         * ns32k.c (ns32k_globalize_label): New function.
628         * ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k.
629         (ASM_GLOBALIZE_LABEL): Delete.
630         * pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef.
631         (TARGET_ASM_GLOBALIZE_LABEL): Undefine.
632         * pa.c (pa_globalize_label): New function.
633         * pa.h (ASM_GLOBALIZE_LABEL): Delete.
634         (TARGET_ASM_GLOBALIZE_LABEL): Define for pa.
635         * rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete.
636         (GLOBAL_ASM_OP): Define.
637         (TARGET_ASM_GLOBALIZE_LABEL): Undef.
638         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
639         * rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete.
640         (GLOBAL_ASM_OP): Define.
641         * v850.c (v850_output_aligned_bss): Use target hook.
642         * vax.c (vms_globalize_label): New function.
643         (TARGET_ASM_GLOBALIZE_LABEL): Define for vms.
644         * vax/vms.h (ASM_GLOBALIZE_LABEL): Delete.
645         (GLOBAL_ASM_OP): Define.
646         * defaults.h (ASM_GLOBALIZE_LABEL): Delete.
647         * doc/tm.texi: Update docs.
648         * dwarf2out.c (default_eh_frame_section, output_die_symbol): Use
649         target hook.
650         * final.c (output_alternate_entry_point): Likewise.
651         * hooks.c (hook_FILEptr_constcharptr_void): New function.
652         * hooks.h (hook_FILEptr_constcharptr_void): Declare.
653         * output.h (assemble_global): Delete.
654         (default_globalize_label): Declare.
655         * system.h (ASM_GLOBALIZE_LABEL): Poison.
656         * target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
657         (TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL.
658         * target.h (gcc_target): Add globalize_label member.
659         * varasm.c (asm_output_bss, asm_output_aligned_bss,
660         globalize_decl): Use target hook.
661         (assemble_global): Delete.
662         (default_globalize_label): New function.
663
664 2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
665
666         * dsp16xx.h (dsp16xx_umulhi3_libcall): Delete.
667
668 2002-08-20  Devang Patel  <dpatel@apple.com>
669         * tree.c (get_qualified_type): Add TYPE_CONTEXT check.
670
671 2002-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
672
673         * arc.c (output_shift): Use stdio instead of asm_fprintf.
674         * arm.c (thumb_output_function_prologue): Likewise.
675         * avr.c (print_operand): Likewise.
676         * c4x.c (c4x_print_operand): Likewise.
677         * c4x.h (ASM_OUTPUT_INTERNAL_LABEL, TRAMPOLINE_TEMPLATE,
678         ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
679         * cris.c (cris_target_asm_function_prologue,
680         cris_asm_output_mi_thunk): Likewise.
681         * h8300.c (print_operand): Likewise.
682         * h8300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
683         * ip2k.c (print_operand): Likewise.  Fix format specifier.
684         * m68hc11.c (asm_print_register, print_operand,
685         print_operand_address): Use stdio instead of asm_fprintf.
686         (print_operand_address): Fix format specifier.
687         * m68hc11.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT,
688         ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Use stdio instead of
689         asm_fprintf.
690         * m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
691         * m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
692         * m68k.c (m68k_output_function_prologue,
693         m68k_output_function_epilogue, print_operand): Likewise.
694         * mmix.c (mmix_asm_output_mi_thunk, mmix_asm_weaken_label):
695         Likewise.  Fix format specifier.
696         * mn10200.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
697         * mn10300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
698         * v850.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
699
700 2002-08-15  Eric Christopher  <echristo@redhat.com>
701             Jeff Knaggs  <jknaggs@redhat.com>
702
703         * config.gcc (mipsisa64sr71k-elf): New target.
704         * config/mips/sr71k.md: New file.
705         * config/mips/mips.md: Use it.
706         (rot*): Add sr71k specifics.
707         * config/mips/t-sr71k: New file.
708         * config/mips/mips.h (sr71k): New cpu.
709         (TARGET_SR71K): Use it.
710         (TUNE_SR71K): Ditto.
711         (GENERATE_BRANCHLIKELY): Ditto.
712         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC,
713         ISA_HAS_ROTR_SIISA_HAS_ROTR_DI): Ditto.
714         * config/mips/mips.c (sr71k): New cpu.
715         (mips_use_dfa_pipeline_interface): Use.
716
717 2002-08-15  Eric Christopher  <echristo@redhat.com>
718             Richard Sandiford <rsandifo@redhat.com>
719             Aldy Hernandez  <aldyh@redhat.com>
720             Graham Stott    <grahams@redhat.com>
721             Michael Meissner  <meissner@redhat.com>
722             Gavin Romig-Koch  <gavin@redhat.com>
723             Ken Raeburn  <raeburn@cygnus.com>
724             Alexandre Oliva <aoliva@redhat.com>
725
726         * config.gcc (mips64vr-elf): New target.
727         * config/mips/5400.md: New file.
728         * config/mips/5500.md: Ditto.
729         * config/mips/mips.md: Use them.
730         (frsqrt): New.
731         * config/mips/mips.c (vr4111, vr4121, vr4320, vr5400, vr5500): New
732         cpus.
733         (mips_issue_rate): Use them.
734         (mips_use_dfa_pipeline_interface): New function. Use for 5400 and 5500.
735         (TARGET_SCHEDUSE_DFA_PIPELINE_INTERFACE): Define. Use above.
736         * config/mips/mips.h (vr4111, vr4121, vr4320, vr5400, vr5500): New
737         cpus.
738         (TARGET_MIPSx): Use them.
739         (TUNE_MIPSx): Ditto.
740         (GETNATE_MULT3_SI): Ditto.
741         (ISA_HAS_BRANCHLIKELY): Ditto.
742         (ISA_HAS_CONDMOVE): Ditto.
743         (ISA_HAS_NMADD_NMSUB): Ditto.
744         (ISA_HAS_MULHI): New. Ditto.
745         (ISA_HAS_MULS): Ditto.
746         (ISA_HAS_MSAC): Ditto.
747         (ISA_HAS_MACC): Ditto.
748         (ISA_HAS_ROTR_SI): Ditto.
749         (ISA_HAS_ROTR_DI): Ditto.
750         (RTX_COSTS): Use.
751
752 2002-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
753
754         * cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal
755         at head.
756         (remove_dup_nonsys_dirs): New function.
757         (remove_dup_dirs): Change argument head to head_ptr.  Remove warnings.
758         (merge_include_chains): Remove non-system include directories from
759         quote and bracket include chains when they duplicate equivalent system
760         directories.
761         * doc/cpp.texi (-I): Update.
762         * doc/cppopts.texi (-I): Update.
763         * doc/install.texi (--with-local-prefix): Further document usage of
764         this option.
765         * doc/invoke.texi (-I): Update.
766
767 2002-08-20  Richard Henderson  <rth@redhat.com>
768
769         * expr.c (TARGET_MEM_FUNCTIONS): Transform to boolean.
770         (emit_block_move): Split out subroutines.
771         (emit_block_move_via_movstr): New.
772         (emit_block_move_via_libcall): New.  Emit bcopy via normal call also.
773         (emit_block_move_libcall_fn): New.  Construct function prototype for
774         bcopy as well.
775         (clear_storage): Split out subroutines.
776         (clear_storage_via_clrstr): New.
777         (clear_storage_via_libcall): New. Emit bzero as a normal call also.
778         (clear_storage_libcall_fn): New.  Construct function prototype for
779         bzero as well.
780         (emit_push_insn): Use emit_block_move.
781         (expand_assignment): Booleanize TARGET_MEM_FUNCTIONS.
782         (store_constructor): Likewise.
783
784 2002-08-19  Ziemowit Laski  <zlaski@apple.com>
785
786         * objc/objc-act.c (building_objc_message_expr): Rename to
787         current_objc_message_selector.
788
789 2002-08-19  Ziemowit Laski  <zlaski@apple.com>
790
791         * objc/objc-act.c (build_ivar_chain): Remove.
792         (objc_copy_list): Likewise.
793         (get_class_ivars): Inline call to removed build_ivar_chain
794         function.  Save off a clean copy of ivars in the CLASS_OWN_IVARS
795         slot; use that slot (rather than CLASS_IVARS) when accessing
796         ivars for base classes.  Call copy_list and chainon instead of
797         objc_copy_list.
798         (build_private_template): Call get_class_ivars instead of
799         build_ivar_chain.
800         (start_class): Allocate room for the CLASS_OWN_IVARS slot.
801         (continue_class): Call get_class_ivars instead of
802         build_ivar_chain.
803         (encode_field_decl): Check for DECL_BIT_FIELD_TYPE instead
804         of DECL_BIT_FIELD (which may have been cleared).
805         * objc/objc-act.h (CLASS_OWN_IVARS): New accessor macro.
806
807 2002-08-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
808
809         * genautomata.c (output_translate_vect, output_state_ainsn_table,
810         output_min_issue_delay_table): Mark variable with ATTRIBUTE_UNUSED
811         in output file.
812         (output_internal_min_issue_delay_func): Initialize variable in
813         output file.
814
815 2002-08-19  Alexandre Oliva  <aoliva@redhat.com>
816
817         * Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER.
818         (stage2_build, stage3_build, stage4_build): Likewise, to CC.
819
820 2002-08-19  Geoffrey Keating  <geoffk@redhat.com>
821             Steve Ellcey  <sje@cup.hp.com>
822
823         * machmode.h (SCALAR_INT_MODE_P): New macro to test for
824         scaler integer mode (MODE_INT or MODE_PARTIAL_INT).
825         * explow.c (trunc_int_for_mode): Abort when the mode is not
826         a scaler integer mode.
827         * combine.c (expand_compound_operation): Don't expand Vector
828         or Complex modes into shifts.
829         (expand_field_assignment): Don't do bitwise arithmatic and
830         shifts on Vector or Complex modes.
831         (simplify_comparison): Don't call trunc_int_for_mode
832         for VOIDmode.
833         * recog.c (general_operand): Likewise.
834         (immediate_operand): Likewise.
835         (nonmemory_operand): Likewise.
836
837 2002-08-19  David Edelsohn  <edelsohn@gnu.org>
838
839         * config/rs6000/rs6000.c (rs6000_emit_set_const): Inline
840         multi-instruction SImode constant.  Add REG_EQUAL note.
841         * config/rs6000/rs6000.md (movsi splitter): Use
842         rs6000_emit_set_const.
843
844 2002-08-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
845
846         * tree-inline.c (initialize_inlined_parameters): Wrap variable in
847         the macro test controlling its use.
848
849 2002-08-18  H.J. Lu  (hjl@gnu.org)
850
851         * config.gcc (*-*-linux*): Set extra_parts="crtbegin.o
852         crtbeginS.o crtbeginT.o crtend.o crtendS.o", gas=yes and
853         gnu_ld=yes.
854         (alpha*-*-linux*, cris-*-linux*, i370-*-linux*,
855         i[34567]86-*-linux*, x86_64-*-linux*, mips*-*-linux*,
856         s390-*-linux*, s390x-*-linux*, sparc-*-linux*, sparc64-*-linux*,
857         xtensa-*-linux*): Remove setting extra_parts, gas, and gnu_ld
858         here.
859         (cris-*-linux*): Remove setting thread_file here.
860
861 2002-08-18  Neil Booth  <neil@daikokuya.co.uk>
862
863         PR preprocessor/7602
864         * cppinit.c (path_include): Treat the system environment
865         variables as being cxx_aware.
866
867 2002-08-17  Joseph S. Myers  <jsm@polyomino.org.uk>
868
869         * c-decl.c (flexible_array_type_p): New function.
870         (grokdeclarator, finish_struct): Use it.
871         * doc/extend.texi: Document constraints on use of structures with
872         flexible array members.
873
874 2002-08-17  Richard Sandiford  <rsandifo@redhat.com>
875
876         * config/mips/t-coff, config/mips/t-elf, config/mips/t-isa3264,
877         config/mips/t-r3900 (MULTILIB_MATCHES): Define.
878         * config/mips/mips.h (ASM_SPEC): Use %(endian_spec).
879
880 2002-08-16  Stan Shebs  <shebs@apple.com>
881
882         * c-common.c (cb_register_builds): Define __NEXT_RUNTIME__
883         for ObjC with -fnext-runtime.
884         * doc/cpp.texi: Document it.
885
886 2002-08-16  Janis Johnson  <janis187@us.ibm.com>
887
888         * doc/install.texi (Final installation): Replace links to individual
889         build status pages with a link to a common page that lists them all.
890
891 2002-08-16  Sylvain Pion <pion@cs.nyu.edu>
892
893         * doc/invoke.texi: Fix typo.
894
895 2002-08-16  David Edelsohn  <edelsohn@gnu.org>
896
897         * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning.
898
899 2002-08-16  Andrew Haley  <aph@redhat.com>
900
901         * tree-inline.c: Add includes for Java inliner.
902         (remap_decl): Don't handle anonymous types for Java.
903         (remap_block): Add handling for Java trees.
904         (copy_scope_stmt): Conditionalize for non-Java use only.
905         (copy_body_r): Handle Java trees.  Add handling for
906         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks.
907         (initialize_inlined_parameters):  Handle Java trees.
908         (declare_return_variable): Likewise.
909         (expand_call_inline): Handle Java trees.
910         (walk_tree): Likewise.
911         (copy_tree_r): Don't handle SCOPE_STMTs for Java.
912         (add_stmt_to_compound): New function.
913
914 2002-08-15  Richard Henderson  <rth@redhat.com>
915
916         * Makefile.in (LOOSE_WARN): Remove -fno-common.
917         (NOCOMMON_FLAG): New substitution point.
918         (GCC_WARN_CFLAGS): Include it.
919         * configure.in (ac_checking): Set nocommon_flag.
920         (nocommon_flag): New substitution point.
921
922 2002-08-15  Alexandre Oliva  <aoliva@redhat.com>
923
924         * c-tree.h (skip_evaluation): Move declaration...
925         * c-common.h: ... here.
926         * c-typeck.c (build_external_ref): Don't assemble_external nor
927         mark a tree as used if skip_evaluation is set.
928         * c-parse.in (typeof): New non-terminal to set skip_evaluation
929         around TYPEOF.
930         (typespec_nonreserved_nonattr): Use it.
931
932 2002-08-15  Douglas B Rupp  <rupp@gnat.com>
933
934         * dbxout.c (dbx_debug_hooks): Update end_prologue, end_epilogue.
935         (xcoff_debug_hooks): Update end_prologue.
936         * debug.c (do_nothing_debug_hooks): Update end_prologue, end_epilogue.
937         * debug.h (end_prologue): Add file arg.
938         (end_epilogue): Add line and file args.
939         (dwarf2out_end_epilogue): Add line and file args.
940         (vmsdbgout_after_prologue): Remove.
941         * dwarf2out.c (dwarf2out_end_epilogue): Add line and file args.
942         (dwarf2_debug_hooks): Update end_prologue.
943         * dwarfout.c (dwarfout_end_epilogue): Add line and file args.
944         (dwarfout_end_prologue): Add file arg.
945         * final.c (vmsdbgout_after_prologue): Remove
946         (final_end_function): Update end_epilogue call.
947         (final_scan_insn): Update end_prologue call.
948         * sdbout.c (sdbout_end_epilogue): Add line and file args.
949         (sdbout_end_prologue): Add file arg.
950         (sdb_debug_hooks): Update end_prologue.
951         (sdb_begin_prologue): Update sdbout_end_prologue call.
952         * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_end_prologue,
953         vmsdbgout_end_function.
954         (vmsdbgout_end_prologue): New function renamed from
955         vmsdbgout_after_prologue. Call vmsdbgout_source_line.
956         (vmsdbgout_end_function): New function.
957         (vmsdbgout_end_epilogue): Add line and file args. Call
958         vmsdbgout_source_line.
959         (write_pclines): Write only valid line numbers.
960         (write_srccorr): Don't write source correlation records if 0 lines.
961         * xcoffout.c (xcoffout_end_epilogue): Add line and file args.
962
963 2002-08-15  Steve Ellcey  <sje@cup.hp.com>
964
965         * gcc/unwind.h (_Unwind_Ptr): Make 64 bits on IA64 HP-UX.
966         (_Unwind_Internal_Ptr): 32 bit version for use in
967         read_encoded_value_with_base.
968         * gcc/unwind-pe.h (read_encoded_value_with_base): Use
969         _Unwind_Internal_Ptr instead of _Unwind_Ptr in order to get the
970         right size.
971
972 2002-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
973
974         * loop.c (scan_loop, move_movables, count_one_set): Cast to avoid
975         signed/unsigned warnings.
976
977         * regclass.c (init_reg_sets_1, choose_hard_reg_mode,
978         record_reg_classes): Likewise.
979
980         * reload.c (reload_inner_reg_of_subreg, push_reload,
981         find_reloads_address_1): Likewise.
982
983 2002-08-15  David Edelsohn  <edelsohn@gnu.org>
984
985         * rs6000.c (output_mi_thunk): Return to function section on
986         TARGET_ELF.
987
988         * rs6000-c.c (rs6000_cpu_cpp_builtins): Define __PPC405__ if PPC405.
989
990 2002-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
991
992         * config/s390/s390.c (legitimize_address): Optimize loading
993         of large displacements.
994
995 2002-08-14  Douglas B Rupp  <rupp@gnat.com>
996
997         * config/alpha/alpha-protos.h: Update.
998
999         * config/alpha/alpha.c: (LINKAGE_SYMBOL_REF_P): New macro.
1000         (alpha_legitimate_address_p): Test LINKAGE_SYMBOL_REF_P.
1001         (alpha_linkage_symbol_p): New static function.
1002         (print_operand_address): Print linkage operand.
1003
1004         (alpha_funcs_num, alpha_funcs_tree, alpha_links_tree): New static
1005         variables.
1006         (reloc_kind): New enum.
1007         (struct alpha_funcs): New struct.
1008         (struct alpha_links): Add reloc_kind field. Rename links_kind field.
1009
1010         (alpha_need_linkage): Rewrite.
1011         (alpha_use_linkage): New global function.
1012         (alpha_write_linkage): Rewrite and make static.
1013         (alpha_write_one_linkage): Rewrite
1014
1015         (alpha_start_function): Remove procedure descriptor output.
1016         (alpha_end_function): Write linkages at end of each function.
1017
1018         * config/alpha/alpha.md (call_vms, call_value_vms): Rewrite.
1019         (call_vms_1, call_value_vms_1): Rewrite.
1020
1021         * config/alpha/vms.h (ASM_FILE_END): Remove.
1022
1023 2002-08-14  Richard Henderson  <rth@redhat.com>
1024
1025         * ggc-page.c (RTL_SIZE): New.
1026         (extra_order_size_table): Add specializations for 2 and 10 rtl slots.
1027         * rtl.def (BARRIER, NOTE): Pad to 9 slots.
1028
1029 2002-08-14  Richard Henderson  <rth@redhat.com>
1030
1031         * calls.c: Include target.h.
1032         * Makefile.in (calls.o): Update.
1033
1034         * config/alpha/alpha.c (alpha_end_function): Use targetm.binds_local_p.
1035         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
1036
1037 2002-08-14  Richard Henderson  <rth@redhat.com>
1038
1039         * Makefile.in (LOOSE_WARN): Add -fno-common.
1040         * c-common.h (constant_string_class_name): Add missing extern.
1041
1042 2002-08-15  Neil Booth  <neil@daikokuya.co.uk>
1043
1044         PR preprocessor/7358
1045         * c-opts.c (check_deps_environment_vars): Ignore main file
1046         for SUNPRO_DEPENDENCIES.
1047         * cppfiles.c (stack_include_file): Ignore main file if
1048         appropriate.
1049         * cpplib.h (struct cpp_options): New member in deps.
1050         * doc/cppenv.texi: Update.
1051
1052 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
1053
1054         PR preprocessor/7526
1055         * cpplib.c (run_directive): Kludge so _Pragma dependency works.
1056
1057 2002-08-14  Nathan Sidwell  <nathan@codesourcery.com>
1058
1059         * doc/invoke.texi (-a): Remove documentation.
1060         (-fprofile-arcs): Remove reference to -a, -ax options.
1061         * doc/gcov.texi (Gcov Data Files): Data might be merged.
1062
1063 2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>
1064
1065         Fix PR/7566
1066         * c-semantics.c (genrtl_case_label): Don't (mis)use
1067         warning_with_decl.
1068
1069 2002-08-14  Dale Johannesen  <dalej@apple.com>
1070
1071         * explow.c (emit_stack_restore):  Emit memory clobbers
1072         preceding the stack pop, to prevent the scheduler from
1073         moving refs to variable arrays below this pop.
1074         * reload1.c (reload):  Preserve these clobbers for sched2.
1075         * doc/rtl.texi:  Document clobber (mem:BLK (scratch)).
1076
1077 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
1078
1079         * c-opts.c (c_common_post_options): Correct test.
1080
1081 2002-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1082
1083         * m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Fix incorrect argument
1084         order in call to fprintf.
1085
1086 2002-08-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1087
1088         * config/sparc/sol2.h (SUBTARGET_EXTRA_SPECS): Define.
1089
1090 2002-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
1091
1092         * reload.c (find_reloads): Handle constraint letters marked by
1093         EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT.
1094         (alternative_allows_memconst): Likewise.
1095         * reload1.c (maybe_fix_stack_asms): Likewise.
1096         * recog.c (asm_operand_ok, preprocess_constraints,
1097         constrain_operands): Likewise.
1098         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
1099         * local-alloc.c (block_alloc, requires_inout): Likewise.
1100         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1101
1102         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default.
1103         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
1104         * doc/tm.texi: Document these two new target macros.
1105
1106         * config/s390/s390.c (s390_expand_plus_operand): Accept already
1107         valid operands.
1108         (q_constraint): New function.
1109         config/s390/s390-protos.h (q_constraint): Declare it.
1110         config/s390/s390.h (EXTRA_CONSTRAINT): Use it.
1111         (EXTRA_MEMORY_CONSTRAINT): New macro.
1112
1113         * config/s390/s390.md: Throughout the machine description,
1114         replace all instances of the constraint combinations 'Qo'
1115         or 'oQ' with simply 'Q'.
1116
1117 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
1118
1119         * config/m68hc11/m68hc11.h (LINK_SPEC): Support -mrelax.
1120         * config/m68hc11/t-m68hc11-gas (LIBGCC2_DEBUG_CFLAGS): Can use -g now.
1121         (LIBGCC2_CFLAGS): Compile with -mrelax.
1122
1123 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
1124
1125         * doc/invoke.texi: Document -minmax for 68HC12.
1126
1127         * config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX.
1128         ("uminqi3"): Likewise.
1129         ("uminhi3", "umaxhi3"): Likewise.
1130
1131         * config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define.
1132         (TARGET_MIN_MAX): Define.
1133         (TARGET_SWITCHES): New option -minmax/-mnominmax.
1134
1135 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
1136
1137         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline.
1138         (MULTILIB_OPTIONS): Must also generate for -mlong-calls.
1139
1140         * config/m68hc11/larith.asm: Put a mode for ELF ABI flags.
1141         (ret, declare, farsym): New gas macros.
1142         (__premain, exit, abort, _cleanup, memcpy, memset, ___adddi3,
1143         ___subdi3, ___notdi2, __mulhi32, __mulsi3): Use them to use 'rtc'
1144         and declare the symbol far when compiled with -mlong-calls.
1145         (__far_trampoline): New for 68HC12 trampoline code to invoke a
1146         far handler using jsr/bsr.
1147
1148         * config/m68hc11/m68hc11-crt0.S: Put a mode for ELF ABI flags.
1149         (jsr): New macro to transform a 'jsr' into a 'call'.
1150
1151 2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>
1152
1153         * doc/invoke.texi: Document -mlong-calls for 68HC12.
1154
1155         * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__USE_RTC__ when
1156         -mlong-calls is specified.
1157         (ASM_DECLARE_FUNCTION_NAME): Define to generate .far and .interrupt
1158         assembler directives.
1159         (TARGET_LONG_CALL, MASK_LONG_CALL): Declare.
1160         (TARGET_SWITCHES): Add -mlong-calls options.
1161         (current_function_far): Declare.
1162
1163         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): Take
1164         into account the page register saved on the stack.
1165         (m68hc11_override_options): Take into account -mlong-calls option.
1166         (m68hc11_asm_file_start): Put a mode for the ELF flags ABI.
1167
1168         * config/m68hc11/m68hc11.md ("*return_32bit"): Return rtc
1169         if the function is going to be in 68HC12 banked memory (-mlong-calls).
1170         ("*return_16bit"): Likewise.
1171         ("*return_void"): Likewise.
1172         ("call", "call_value"): Use call for a far function call.
1173
1174 2002-08-14  Neil Booth  <neil@daikokuya.co.uk>
1175
1176         * toplev.c (parse_options_and_default_flags): Don't call
1177         post_options here.
1178         (general_init): Initialize GC, pools and tree hash here,
1179         instead of lang_independent_init.
1180         (lang_independent_init): Rename backend_init.
1181         (do_compile): Call post_options hook; exit early if there
1182         have been errors after switch processing.
1183         (toplev_main): Update.
1184
1185 2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>
1186
1187         * c-pretty-print.h: Guard against multiple inclusion.
1188         Robustify macros.
1189         (pp_c_attributes): Declare.
1190         * c-pretty-print.c (pp_c_attributes): New function.
1191
1192 2002-08-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1193
1194         * m68k.c (m68k_output_function_prologue,
1195         m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA
1196         and NEWS/MOTOROLA.
1197         * genattrtab.c: Remove dpx2 comment.
1198         * libgcc2.c (__enable_execute_stack): Delete versions for
1199         NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and
1200         sony_news/SYSTYPE_BSD.
1201         * longlong.h: Delete code for __a29k__, _AM29K, __clipper__,
1202         __gmicro__, __i860__, __NeXT__ and __pyr__.
1203         * rtl.h: Remove convex comment.
1204         * varasm.c: Likewise.
1205
1206 2002-08-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1207
1208         * c-opts.c (lang_flags): Const-ify.
1209         * ra-build.c (undef_table): Likewise.
1210         * ra.c (eliminables): Likewise.
1211
1212 2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>
1213
1214         * tree.h: Guard against multiple inclusion.
1215
1216 2002-08-14  Hans-Peter Nilsson  <hp@bitrange.com>
1217
1218         * reload1.c (reload_cse_simplify): Before checking
1219         REG_FUNCTION_VALUE_P, check REG_P.
1220
1221 2002-08-13  Geoffrey Keating  <geoffk@redhat.com>
1222
1223         * Makefile.in (attribs.o): Remove $(OBSTACK_H) dependency.
1224
1225 2002-08-13  Neil Booth  <neil@daikokuya.co.uk>
1226
1227         * c-opts.c (c_common_init_options): Extra braces needed.
1228
1229 Tue Aug 13 17:40:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
1230
1231         * sh.c (sh_init_builtins): Add PARAMS to declaration.
1232         (sh_media_init_builtins, sh_expand_builtin): Likewise.
1233         (sh_expand_unop_v2sf): Use PARAMS for variable declaration.
1234         (sh_expand_binop_v2sf): Likewise.
1235         * sh-protos.h (sh_expand_unop_v2sf): Add PARAMS to declaration.
1236         (sh_expand_binop_v2sf, sh_cfun_interrupt_handler_p): Likewise.
1237         (sh_initialize_trampoline): Likewise.
1238
1239 2002-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
1240
1241         * s390-modes.def [CCL1, CCL2, CCT1, CCT2, CCT3, CCUR, CCSR]: Declare
1242         new condition code modes.
1243         s390.c (s390_match_ccmode_set): Handle those new CC modes.
1244         (s390_select_ccmode): Likewise.
1245         (s390_branch_condition_mask): Likewise.
1246
1247         * s390-protos.h (s390_tm_ccmode): Declare.
1248         s390.c (s390_tm_ccmode): New function.
1249         (s390_match_ccmode): Allow VOIDmode as REQ_MODE.
1250
1251         * s390.md ("*cmpdi_tm2"): Rename to "*tmdi_ext".
1252         ("*cmpsi_tm2"): Rename to "*tmsi_ext".
1253         ("*cmpqi_tm2"): Rename to "*tmqi_ext".
1254
1255         ("*cmpdi_tm_reg", "*cmpdi_tm_mem", "*cmpsi_tm_reg", "*cmpsi_tm_mem",
1256         "*cmphi_tm_sub","*cmphi_cct_0",  "*cmpqi_tm", "*cmpqi_tm_sub",
1257         "*cmpqi_cct_0", "*tm_0"): Remove, replace by ...
1258         ("*tmdi_reg", "*tmsi_reg", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem",
1259         "*tmqi_mem", "*tmhi_full", "*tmqi_full"): ... these new patterns.
1260
1261         ("*ltgr", "*cmpdi_ccs_0_64", "*cmpdi_ccs_0_31", "*ltr", "*icm15",
1262         "*icm15_cconly", "*cmpsi_ccs_0", "*icm3", "*cmphi_ccs_0", "*icm1",
1263         "*cmpqi_ccs_0"): Remove, replace by ...
1264         ("*tstdi_sign", "*tstdi", "*tstdi_cconly", "*tstdi_cconly_31",
1265         "*tstsi", "*tstsi_cconly", "*tstsi_cconly2", "*tsthi", "*tsthi_cconly",
1266         "*tstqi", "*tstqi_cconly"): ... these new patterns.
1267
1268         ("*cmpsidi_ccs"): Remove, replace by ...
1269         ("*cmpsi_ccs_sign"): ... this new pattern.
1270         ("*cmpdi_ccs_sign", "*cmpdi_ccu_zero"): New patterns.
1271
1272         ("*cmpqi_ccu_0", "*cmpqi_ccu_immed"): Remove, replace by ...
1273         ("*cli"): ... this new pattern.
1274
1275         ("*adddi3_sign", "*adddi3_zero_cc", "*adddi3_zero_cconly",
1276         "*adddi3_zero", "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2"):
1277         New patterns.
1278         ("adddi3_64"): Rename to "*adddi3_64".
1279         ("adddi3_31"): Replace by insn and splitter "*adddi3_31".
1280         ("adddi3"): Adapt expander.
1281
1282         ("*addsi3_cc"): Allow "general_operand" for operand 2.
1283         ("*addsi3_carry1_cc", "*addsi3_carry1_cconly",
1284         "*addsi3_carry2_cc", "*addsi3_carry2_cconly"): New patterns.
1285
1286         ("addhi3", "addqi3"): Remove, replace by ...
1287         ("*addsi3_sign", "*addsi3_sub"): ... these new patterns.
1288
1289         ("*subdi3_sign", "*subdi3_zero_cc", "*subdi3_zero_cconly",
1290         "*subdi3_zero", "*subdi3_cc", "*subdi3_cconly"): New patterns.
1291         ("subdi3"): Replace by insn and splitter "*subdi3_31".
1292         ("subdi3"): New expander.
1293
1294         ("*subsi3_borrow_cc", "*subsi3_borrow_cconly"): New patterns.
1295
1296         ("subhi3", "subqi3"): Remove, replace by ...
1297         ("*subsi3_sign", "*subsi3_sub"): ... these new patterns.
1298
1299         ("*muldi3_sign"): New pattern.
1300         ("muldi3"): Do not clobber CC.
1301         ("mulsi3"): Likewise.
1302         ("mulsi_6432"): Likewise.
1303
1304 2002-08-13  Denis Chertykov  <denisc@overta.ru>
1305
1306         * config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles
1307         which can change CC0.
1308
1309 Tue Aug 13 14:49:20 2002  J"orn Rennecke <joern.rennecke@superh.com>
1310
1311         * gcse.c (adjust_libcall_notes): New function.
1312         (do_local_cprop): Use it.  Add fourth parameter.  Changed caller.
1313
1314 2002-08-13  Nathan Sidwell  <nathan@codesourcery.com>
1315
1316         * libgcc2.c (L_bb): Remove unneeded #includes.
1317         (__global_counters, __gthreads_active): Remove unused globals.
1318         (__bb_exit_func): Merge counts into files rather than appending.
1319         * Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ...
1320         (ALL_CFLAGS): ... to here.
1321
1322 2002-08-13  Denis Chertykov  <denisc@overta.ru>
1323
1324         * config/ip2k/ip2k.c (commands_in_file): Variable removed.
1325         (function_epilogue): Don't calculate function size.
1326         (ip2k_set_compare): Don't use lookup_const_double.
1327         (asm_file_start): Initialization of commands_in_file removed.
1328         (asm_file_end): Output of commands_in_file removed.
1329
1330         * config/ip2k/ip2k.c (CPP_PREDEFINES): Remove definition of
1331         __INT_MAX__.
1332
1333 2002-08-13  Neil Booth  <neil@daikokuya.co.uk>
1334
1335         * c-opts.c (c_common_init_options): Check option array is
1336         sorted if checking enabled.
1337
1338 2002-08-13  Gabriel Dos Reis  <gdr@nerim.net>
1339
1340         * c-pretty-print.c: #include "c-tree.h".
1341         (pp_c_simple_type_specifier): Tweak.
1342         (pp_c_storage_class_specifier): New.
1343         (pp_c_function_specifier): Likewise.
1344         (pp_c_declaration_specifiers): Likewise.
1345         (pp_c_init_declarator): Likewise.
1346         (pp_c_declaration): Likewise.
1347         (pp_c_direct_declarator): Stub.
1348         (pp_c_declarator): Likewise.
1349         (pp_c_parameter_declaration): Likewise.
1350
1351 2002-08-13  Neil Booth  <neil@daikokuya.co.uk>
1352
1353         * c-opts.c (deps_seen, deps_file, deferred_count, deferred_size,
1354         handle_deferred_opts, sanitize_cpp_opts, defer_opt,
1355         struct deferred_opt): New.
1356         (COMMAND_LINE_OPTIONS): Add -M*.
1357         (missing_arg): Update.
1358         (c_common_decode_option): Handle -M*.
1359         (c_common_post_options): Handle -M*.  Use sanitize_cpp_opts;
1360         don't call cpp_post_options.
1361         (c_common_finish, check_deps_environment_vars): Update.
1362         * cppfiles.c (stack_include_file, handle_missing_header): Update.
1363         * cpphash.h (CPP_PRINT_DEPS): Remove.
1364         * cppinit.c: Don't include version.h.
1365         (cpp_create_reader): Don't call deps_init.  Initialize
1366         warn_long_long.
1367         (cpp_read_main_file): Init deps if necessary.
1368         (cpp_destroy): Conditionally free deps.
1369         (cpp_finish): Update.
1370         (no_tgt): Remove.
1371         (COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*.
1372         (cpp_post_options): Rename post_options.
1373         * cpplib.h (struct cpp_options): Remove some dependency options;
1374         move others to a new structure.
1375         (cpp_post_options): Remove.
1376         (cpp_finish): Comment.
1377         * fix-header.c (read_scan_file): Don't call cpp_post_options.
1378
1379 2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>
1380
1381         * config/mmix/mmix.md (define_constants): Add MMIX_rR_REGNUM.
1382         ("divdi3", "*divdi3_nonknuth", "moddi3", "*moddi3_nonknuth"): Mark
1383         MMIX_rR_REGNUM as clobbered.
1384         * config/mmix/mmix.h (MMIX_REMAINDER_REGNUM): Use MMIX_rR_REGNUM.
1385
1386 2002-08-12  Gabriel Dos Reis  <gdr@nerim.net>
1387
1388         * diagnostic.h (output_formatted_scalar): Rename from
1389         output_formatted_integer.
1390         * diagnostic.def: Add DK_DEBUG.
1391         * diagnostic.c (output_decimal): Adjust.
1392         (output_long_decimal): Likewise.
1393         (output_unsigned_decimal): Likewise.
1394         (output_octal): Likewise.
1395         (output_long_octal): Likewise.
1396         (output_hexadecimal): Likewise.
1397         (output_long_hexadecimal): Likewise.
1398         * c-pretty-print.c (pp_c_type_specifier): New function.
1399         (pp_c_specifier_qualifier_list): Likewise.
1400         (pp_c_abstract_declarator): Likewise.
1401         (pp_c_char): Replace pp_format_integer with pp_format_scalar.
1402
1403 2002-08-12  David Edelsohn  <edelsohn@gnu.org>
1404
1405         * doc/trouble.texi (Disappointments): Add static constructor and
1406         destructor dependency information for AIX.
1407
1408 2002-08-12  Neil Booth  <neil@daikokuya.co.uk>
1409
1410         * cpphash.h (struct printer): New from cppmain.c.
1411         (cpp_reader): New member.
1412         * cppmain.c (struct printer): Move to cpphash.h.
1413         (options, print): Remove.
1414         (account_for_newlines, print_line, maybe_print_line,
1415         cpp_preprocess_file, setup_callbacks, scan_translation_unit,
1416         scan_translation_unit_trad, cb_line_change, cb_ident,
1417         cb_define, cb_undef, cb_include, cb_file_change, dump_macro,
1418         cb_def_pragma): Make reentrant.
1419
1420 2002-08-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1421
1422         * real.c (ieee_64): Always define.
1423         (ieee_113): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
1424         (dec_h): Not used yet, hide it.
1425         (emdnorm): Mark parameter in ATTRIBUTE_UNUSED.  Guard label with
1426         macro controlling use.
1427         (TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
1428
1429 Mon Aug 12 12:48:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
1430
1431         * i386.md (tablejump): Sign extend the operand.
1432         * i386.c (classify_argument): Fix missed case from previous patch.
1433
1434 2002-08-12  Neil Booth  <neil@daikokuya.co.uk>
1435
1436         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
1437         to c-copts.c.
1438         (warn_multichar): Die.
1439         (cb_register_builtins): Export.
1440         * c-common.h (warn_multichar, preprocess_file): Remove.
1441         (cb_register_builtins): New.
1442         * c-lang.c (c_init): Remove.
1443         (LANG_HOOKS_INIT): Use c_objc_common_init.
1444         * c-lex.c (init_c_lex): Don't canonicalize filename.
1445         * c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
1446         (preprocess_file): Make static.  Update for cpplib.
1447         (c_common_decode_option): Remove warn_multichar.  Use in_fname.
1448         (c_common_post_options): Set some cpp options here.
1449         (c_common_init): Move from c-common.c.
1450         * cppinit.c (cpp_post_options): Don't canonicalize in_fname.
1451         * cpplib.h (struct cpp_options): Remove in_fname.
1452         (cpp_preprocess_file): Update.
1453         * cppmain.c (cpp_preprocess_file): Update for new prototypes.
1454
1455 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1456
1457         * config.gcc (mips*-*-netbsd*): Include ${tm_file}.
1458
1459 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1460
1461         * i370.h (TARGET_CPU_CPP_BUILTINS): Remove spurious trailing
1462         backslash in comment preceeding macro definition.
1463         * i370/linux.h (TARGET_OS_CPP_BUILTINS): Likewise.
1464         * i370/mvs.h (TARGET_OS_CPP_BUILTINS): Likewise.
1465         * i370/oe.h (TARGET_OS_CPP_BUILTINS): Likewise.
1466
1467 2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>
1468
1469         * expr.c (store_expr): In condition for checking if value is
1470         generated in TARGET, move call to expr_size last.
1471
1472 2002-08-11  Neil Booth  <neil@daikokuya.co.uk>
1473
1474         * c-common.c (c_common_init): Call preprocess_file instead.
1475         (c_common_finish): Move to c-opts.c.
1476         * c-common.h (preprocess_file): new.
1477         * c-opts.c (out_fname, out_stream, deps_append, preprocess_file,
1478         check_deps_environment_vars, c_common_finish): New.
1479         (c_common_decode_option): Update for out_fname and dependencies.
1480         * cppinit.c (init_dependency_output, output_deps): Remove.
1481         (cpp_destroy): Update prototype.
1482         (cpp_add_dependency_target): New.
1483         (cpp_read_main_file): Don't overlay a buffer.
1484         (cpp_finish): Take a deps output stream and write deps to it.
1485         Return the error count.
1486         (cpp_post_options): Don't canonicalize out_fname, or do anything
1487         with dependencies.
1488         * cpplib.h (struct cpp_options): Remove out_fname and
1489         preprocess_only.
1490         (cpp_add_dependency_target): New.
1491         (cpp_destroy, cpp_finish, cpp_preprocess_file): Update.
1492         * cppmain.c (cpp_preprocess_file): Update prototype.  Don't
1493         set preprocess_only.  Don't handle the output stream directly.
1494
1495 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1496
1497         * dsp16xx.c (print_operand): Fix format specifier.
1498         * dsp16xx.md: Avoid automatic aggregate initialization.
1499         * frv.h (REG_CLASS_FROM_LETTER): Avoid char as array index.
1500         * h8300.c (emit_a_rotate, h8300_adjust_insn_length): Avoid U
1501         integer constant modifier.
1502         * ip2k.c (ip2k_set_compare): Avoid signed/unsigned warning.
1503         * mmix-protos.h (mmix_use_simple_return): Move outside TREE_CODE
1504         guards.
1505         * sh/netbsd-elf.h (FUNCTION_PROFILER): Fix format specifier.
1506         * v850.c (v850_select_section): Mark parameter with
1507         ATTRIBUTE_UNUSED.
1508         * global.c (global_alloc): Const-ify.
1509         * ra-colorize.c (hardregset_to_string): Fix format specifier.
1510
1511 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1512
1513         * darwin-c.c (darwin_pragma_options): Const-ify.
1514         * darwin.c (machopic_non_lazy_ptr_name,
1515         machopic_validate_stub_or_non_lazy_ptr): Likewise.
1516         (machopic_indirect_data_reference): Wrap variables in macros
1517         controlling their use.
1518         (machopic_finish, update_non_lazy_ptrs, update_stubs): Const-ify.
1519         (machopic_select_section): Use parentheses around && within ||.
1520         * i386/darwin.h (ASM_OUTPUT_ALIGN): Avoid ambiguous-else.
1521
1522 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1523
1524         * ip2k.c (mdr_resequence_xy_yx, mdr_propagate_reg_equivs,
1525         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
1526         ip2k_adjust_stack_ref, mdr_try_move_pushes, mdr_try_propagate_clr,
1527         ip2k_xexp_not_uses_reg_for_mem, mdr_try_propagate_move,
1528         mdr_try_remove_redundant_insns, track_w_reload,
1529         mdr_try_wreg_elim): Make function static to match prototype.
1530         * mmix.c (mmix_target_asm_function_epilogue): Likewise.  Mark
1531         parameter with ATTRIBUTE_UNUSED.
1532
1533 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1534
1535         * arc.c (arc_init): Don't use ISO C style function definitions.
1536         * arm.c (count_insns_for_constant, thumb_far_jump_used_p,
1537         arm_get_strip_length, arm_strip_name_encoding): Likewise.
1538         * avr.h (progmem_section): Likewise.
1539         * h8300.c h8300_asm_insn_count): Likewise.
1540         * m32r.c (init_idents): Likewise.
1541         * s390.c (s390_split_branches, s390_chunkify_pool): Likewise.
1542         * sh.c (sh_cfun_interrupt_handler_p): Likewise.
1543         * xtensa.c (xtensa_build_va_list): Likewise.
1544
1545 2002-08-11  Neil Booth  <neil@daikokuya.co.uk>
1546
1547         * c-common.h (enum c_language_kind): Emphasize that clk_c is 0.
1548         * c-opts.c (parse_option): Rename find_opt.
1549         (set_std_c99): New function.
1550         (COMMAND_LINE_OPTIONS): Handle -remap and -o.  Remove OPT_std_bad.
1551         (missing_arg): Remove OPT_std_bad.  Handle -o.
1552         (c_common_decode_option): Handle input and output file names,
1553         -o and -remap.  Clean up -std= handling.
1554         * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap.
1555         (cpp_handle_option): Similarly.  Don't handle filenames.
1556
1557 Sun Aug 11 14:43:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
1558
1559         * i386.c (classify_argument): Fix computing of field's offsets.
1560
1561 2002-08-11  Andreas Jaeger  <aj@suse.de>
1562
1563         PR target/7531:
1564         * doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel.
1565
1566 2002-08-10  Ziemowit Laski  <zlaski@apple.com>
1567
1568         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Replace
1569         reference to clk_objective_c with flag_objc.
1570         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS):
1571         Likewise.
1572         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1573
1574 2002-08-10  Neil Booth  <neil@daikokuya.co.uk>
1575
1576         * c-opts.c (set_std_cxx98, set_std_c89): New.
1577         (COMMAND_LINE_OPTIONS): Move more from cppinit.c.
1578         (c_common_decode_option): Handle new switches from cppinit.c.
1579         Add -std=gnu++98.
1580         * cppinit.c (set_lang): Rename cpp_set_lang.  Export.
1581         (no_arg, no_num): Remove.
1582         (COMMAND_LINE_OPTIONS): Move more to c-opts.c.  Drop all lang-
1583         switches apart from -lang-objc and lang-asm.
1584         (cpp_handle_option): Similarly.
1585         * cpplib.h (cpp_set_lang): New.
1586         * doc/cppopts.texi, doc/invoke.texi: Document -std=c++98,
1587         -std=gnu++98.
1588         * objc/lang-specs.h: Remove -ansi.
1589
1590 Sat Aug 10 19:59:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
1591                                Graham Stott
1592
1593         * cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff
1594         errors.
1595
1596 2002-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1597
1598         * emit-rtl.c (emit_jump_insn_before, emit_call_insn_before,
1599         emit_jump_insn): Fix uninitialized variable.
1600         * gcov.c (init_line_info): Likewise.
1601         * genautomata.c (transform_3): Add braces around ambiguous
1602         else.
1603         * ifcvt.c (cond_exec_process_insns): Mark parameter with
1604         ATTRIBUTE_UNUSED.
1605         * ra-build.c (parts_to_webs_1): Fix uninitialized variable.
1606         * regrename.c (copyprop_hardreg_forward): Fix uninitialized
1607         variable.
1608
1609         * gengtype.c (write_gc_structure_fields): Avoid signed/unsigned
1610         warnings in output files.
1611
1612 2002-08-09  Ziemowit Laski  <zlaski@apple.com>
1613
1614         * c-common.c (flag_objc): New.
1615         * c-common.h (c_language_kind): Get rid of clk_objective_c
1616         enum value.
1617         (flag_objc): New extern declaration.
1618         * c-decl.c (implicitly_declare): Call objc_check_decl
1619         instead of maybe_objc_check_decl.
1620         (finish_decl): Likewise.
1621         (grokfield): Likewise.
1622         (finish_struct): Likewise.
1623         * c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
1624         (maybe_objc_comptypes): Rename to objc_comptypes.
1625         (maybe_building_objc_message_expr): Rename to
1626         objc_message_selector.
1627         * c-lex.c (lex_charconst): Remove uses of clk_objective_c,
1628         replace with flag_objc as needed.
1629         * c-opts.c (c_common_init_options): Likewise.
1630         (c_common_decode_option): Likewise.
1631         * c-parse.in (init_reswords): Likewise.
1632         * c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
1633         (maybe_objc_comptypes): Rename to objc_comptypes.
1634         (maybe_building_objc_message_expr): Rename to
1635         objc_message_selector.
1636         * c-typeck.c (comptypes): Call objc_comptypes instead of
1637         maybe_objc_comptypes, and/or objc_message_selector instead of
1638         maybe_building_objc_message_expr.
1639         (comp_target_types): Likewise.
1640         (convert_for_assignment): Likewise.
1641         (warn_for_assignment): Likewise.
1642         * cppinit.c (init_builtins): Set __OBJC__ manifest constant
1643         independently of those for other languages.
1644         * objc/objc-act.c (maybe_objc_comptypes): Delete.
1645         (maybe_objc_check_decl): Delete.
1646         (maybe_building_objc_message_expr): Rename to
1647         objc_message_selector.
1648         * objc/objc-lang.c (objc_init_options): Use clk_c instead of
1649         clk_objective_c; set flag_objc flag.
1650
1651 2002-08-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1652
1653         * ifcvt.c (find_if_case_2): Test correct basic block for size.
1654
1655 2002-08-09  Dale Johannesen  <dalej@apple.com>
1656
1657         * config/rs6000/rs6000.md: Add sibcall patterns.
1658         * config/rs6000/rs6000.h (FUNCTION_OK_FOR_SIBCALL):  Define.
1659         * config/rs6000/rs6000.c (rs6000_ra_ever_killed):
1660         Rewritten to handle sibcalls.
1661         * config/rs6000/rs6000.c (function_ok_for_sibcall):  New.
1662         * config/rs6000/rs6000-protos.h (function_ok_for_sibcall):  New.
1663
1664 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
1665
1666         * profile.c (da_file_name): New static var.
1667         (init_branch_prob): Initialize it.
1668         (end_branch_prob): Remove da file.
1669
1670         * Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS.
1671         * configure.in (coverage_flags): Default to nothing.
1672         * configure: Rebuilt.
1673
1674 2002-08-09  Neil Booth  <neil@daikokuya.co.uk>
1675
1676         * Makefile.in (c-opts.o): Update
1677         * c-opts.c: Include intl.h.
1678         (print_help): Move from cppinit.c.  Remove unused options.
1679         (COMMAND_LINE_OPTIONS): Move more from cppinit.c.
1680         (missing_arg): Complain for switches without an argument.
1681         (c_common_decode_option): Reject missing joined arguments.
1682         Handle new switches from cppinit.c.
1683         * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
1684         (cpp_handle_option): Similarly.
1685         (print_help): Moved to c-opts.c.
1686         * cpplib.h (struct cpp_options): Remove help_only.
1687         * gcc.c (cpp_unique_options): Remove -$.
1688         * doc/cppopts.texi: Undocument -h.
1689
1690 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
1691
1692         * config/i386/i386.c (legitimate_constant_p): UNSPEC_TP is not
1693         legitimate constant.
1694         (legitimate_pic_operand_p): Neither pic operand.
1695         (legitimate_address_p): But legitimate address.
1696         (get_thread_pointer): Generate MEM/u instead of CONST around
1697         UNSPEC_TP.
1698         (print_operand): Remove printing of UNSPEC_TP.
1699         (print_operand_address): And print it here.
1700
1701 2002-08-08  Devang Patel  <dpatel@apple.com>
1702
1703         * objc/objc-act.c (build_selector_translation_table): Issue warning,
1704         when  -Wselector is used,if method for which selector is being
1705         created does not exist.
1706
1707 2002-08-08  Stephen Clarke <stephen.clarke@superh.com>
1708
1709         * config/sh/sh.c (prepare_move_operands): Only call
1710         target_reg_operand if TARGET_SHMEDIA.
1711
1712 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
1713
1714         * config/rs6000/rs6000.h, config/rs6000/aix.h,
1715         config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last
1716         two patches.
1717         * config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN.
1718
1719 2002-08-08  Lars Brinkhoff  <lars@nocrew.org>
1720             Richard Henderson  <rth@redhat.com>
1721
1722         * emit-rtl.c (gen_rtx_REG): After reload, only return
1723         frame_pointer_rtx or hard_frame_pointer_rtx if frame_pointer_needed.
1724
1725 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
1726
1727         * config/rs6000/rs6000-protos.h (rs6000_field_alignment): Remove.
1728         * config/rs6000/rs6000.c (rs6000_field_alignment): Move...
1729         * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): ...inline into the
1730         macro.
1731
1732 2002-08-08  Adam Nemet  <anemet@lnxw.com>
1733
1734         * config/arm/arm.c (thumb_unexpanded_epilogue): Stack the PIC
1735         register.
1736         (thumb_expand_prologue): Likewise.
1737         (thumb_output_function_prologue): Likewise.
1738         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Account for
1739         the additional push of the PIC register.
1740
1741 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
1742
1743         * configure.in (enable_coverage): New enable switch.
1744         * configure: Rebuilt.
1745         * Makefile.in (COVERAGE_FLAGS, coverageexts): New variables.
1746         (INTERNAL_CFLAGS): Append COVERAGE_FLAGS.
1747         (ALL_FLAGS): Reorder so INTERNAL_CFLAGS comes after CFLAGS.
1748         (mostlyclean): Remove coverage files.
1749         * doc/install.texi: Document enable_coverage.
1750
1751         * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
1752         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
1753         * f/Make-lang.in (f.mostlyclean): Remove coverage files.
1754         * java/Make-lang.in (java.mostlyclean): Remove coverage files.
1755         * objc/Make-lang.in (objc.mostlyclean): Remove coverage files.
1756         * treelang/Make-lang.in (treelang.mostlyclean): Remove coverage
1757         files.
1758
1759 2002-08-08  Neil Booth  <neil@daikokuya.co.uk>
1760
1761         * c-opts.c (cpp_opts): New.
1762         (COMMAND_LINE_OPTIONS): Add switches from cppinit.c.
1763         (c_common_decode_options): Handle cpplib switches.
1764         (c_common_init_options): Set cpp_opts.
1765         * cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
1766         (cpp_handle_option): Similarly.
1767
1768 2002-08-08  David Edelsohn  <edelsohn@gnu.org>
1769
1770         * config/rs6000/aix.h (TARGET_ALTIVEC): Define to 0.
1771         (TARGET_ALTIVEC_ABI): Same.
1772         (TARGET_ALTIVEC_VRSAVE): Same.
1773
1774         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Check
1775         icode not CODE_FOR_nothing.  Change switch to if.
1776
1777 2002-08-08  Alan Modra  <amodra@bigpond.net.au>
1778
1779         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mpower4 when cpu=power4.
1780
1781 2002-08-08  Jakub Jelinek  <jakub@redhat.com>
1782
1783         * stor-layout.c (place_union_field): For bitfields if
1784         PCC_BITFIELD_TYPE_MATTERS and TYPE_USER_ALIGN, set record's
1785         TYPE_USER_ALIGN.
1786
1787 2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1788
1789         * pa.c (struct deferred_plabel): Constify name field.
1790
1791 2002-08-07  Neil Booth  <neil@daikokuya.co.uk>
1792
1793         * cppmacro.c (_cpp_builtin_macro_text): Remove unused variable.
1794
1795 2002-08-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1796
1797         * configure.in (PREFIX_INCLUDE_DIR): Don't define if prefix and
1798         local_prefix are the same.
1799         * configure: Rebuilt.
1800
1801 2002-08-07  Jakub Jelinek  <jakub@redhat.com>
1802             Richard Henderson  <rth@redhat.com>
1803
1804         * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN
1805         to type_align when PCC_BITFIELD_TYPE_MATTERS.  Only apply
1806         ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
1807         (place_field): Likewise.
1808         * config/i386/i386.c (x86_field_alignment): Don't check
1809         DECL_USER_ALIGN here.
1810         * config/rs6000/rs6000.c (rs6000_field_alignment): New.
1811         * config/rs6000/rs6000-protos.h (rs6000_field_alignment): New
1812         prototype.
1813         * config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define.
1814         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove.
1815         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove.
1816         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove.
1817         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove.
1818         * doc/tm.texi (ADJUST_FIELD_ALIGN): Update description.
1819
1820 2002-08-07  Neil Booth  <neil@daikokuya.co.uk>
1821
1822         * Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
1823         * c-common.c: Don't include tree-inline.h.
1824         (c_common_init_options, c_common_post_options): Move to c-opts.c.
1825         * c-common.h (c_common_decode_option): New.
1826         * c-decl.c (c_decode_option): Remove.
1827         * c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
1828         * c-opts.c: New file.
1829         * c-tree.h (c_decode_option): Remove.
1830         * doc/passes.texi: Update.
1831         * objc/objc-act.c (objc_decode_option): Remove.
1832         * objc/objc-act.h (objc_decode_option): Remove.
1833         * objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
1834         c_common_decode_option.
1835
1836 2002-08-07  Chris Demetriou  <cgd@broadcom.com>
1837
1838         * config/mips/mips.md (sunlt_sf, suneq_sf, sunle_sf): Remove
1839         dependency on TARGET_DOUBLE_FLOAT.
1840
1841 2002-08-07  Stephen Clarke <stephen.clarke@superh.com>
1842
1843         * config/sh/lib1funcs.asm (GCC_shcompact_incoming_args): Don't
1844         overwrite callee-save registers.  Fix comment.
1845
1846 2002-08-06  Chris Demetriou  <cgd@broadcom.com>
1847
1848         * config/mips/mips.c (override_options): Set MASK_BRANCHLIKELY
1849         in target_flags based on ISA, if it was not set on the command
1850         line.  Warn if MASK_BRANCHLIKLEY is set but the ISA does not
1851         support Branch Likely instructions.
1852         * config/mips/mips.h (MASK_BRANCHLIKLEY): New macro.
1853         (TARGET_BRANCHLIKELY): Likewise.
1854         (TARGET_SWITCHES): Add -mbranch-likely and -mno-branch-likely.
1855         (GENERATE_BRANCHLIKELY): Use TARGET_BRANCHLIKELY rather than
1856         ISA_HAS_BRANCHLIKELY.
1857         (ISA_HAS_BRANCHLIKELY): Do not include MIPS16 check.
1858         * doc/invoke.texi: Document new MIPS -mbranch-likely and
1859         -mno-branch-likely options.
1860
1861 2002-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1862
1863         * ip2k.c (ip2k_set_compare): Add missing iteration variable.
1864
1865         * Makefile.in (dummy-conditions.o): Depend on $(HCONFIG_H) not
1866         $(GCONFIG_H).
1867
1868 2002-08-06  Aldy Hernandez  <aldyh@redhat.com>
1869
1870         * c-decl.c (duplicate_decls): Error out for incompatible TLS
1871         declarations.
1872
1873         * testsuite/gcc.dg/tls/diag-3.c: New.
1874
1875 2002-08-06  Jason Merrill  <jason@redhat.com>
1876
1877         * c-common.c (c_expand_expr) [STMT_EXPR]: If the last expression is
1878         a VAR_DECL with RTL that matches the target, just return that RTL.
1879
1880 2002-08-06  Dale Johannesen  <dalej@apple.com>
1881         * c-common.c (fname_decl): Use line number 0 for
1882         __func__, to avoid confusing debuggers.
1883
1884 2002-08-06  Nathan Sidwell  <nathan@codesourcery.com>
1885
1886         * gcov.c: Tidy.
1887         (struct line_info, struct coverage): New structures.
1888         (gcov_file_name, gcov_file): Remove globals.
1889         (output_data): Take source file parameter. Fix memory leak. Break
1890         up into ...
1891         (init_line_info, output_line_info, make_gcov_file_name,
1892         accumulate_branch_counts): ... here.
1893         (calculate_branch_probs, function_summary): Adjust.
1894         (main): Adjust.
1895         (function_*): Remove global variables.
1896
1897 2002-08-06  Neil Booth  <neil@daikokuya.co.uk>
1898
1899         * dwarf2out.c: Remove unused macros.
1900
1901 2002-08-06  Neil Booth  <neil@daikokuya.co.uk>
1902
1903         * function.c (TRAMPOLINE_ALIGNMENT): Always defined.
1904
1905 2002-08-06  Neil Booth  <neil@daikokuya.co.uk>
1906
1907         * cppinit.c (struct lang_flags): Rename trigraphs std.
1908         (set_lang): Update.
1909         * cpplib.h (struct cpp_options): New member std.
1910         * cppmacro.c (_cpp_builtin_macro_text): Use std.
1911         (collect_args): Flag whether to swallow a possible future
1912         comma pasted with varargs.
1913         (replace_args): Use this flag.
1914         * doc/cpp.texi: Update varargs extension documentation.
1915
1916 2002-08-06  Jakub Jelinek  <jakub@redhat.com>
1917
1918         * config/i386/mmintrin.h (__m64): Make the type 64-bit aligned.
1919
1920 2002-08-06  Jakub Jelinek  <jakub@redhat.com>
1921
1922         * config/i386/i386.c (x86_field_alignment): Apply min for all MODE_INT
1923         and MODE_CLASS_INT modes.
1924
1925 2002-08-06  Jakub Jelinek  <jakub@redhat.com>
1926
1927         * config.gcc (*-*-linux*): Default to --enable-threads=posix if no
1928         --{enable,disable}-threads is given to configure.
1929         (alpha*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux*,
1930         x86_64-*-linux*, ia64*-*-linux*, m68k-*-linux*, mips*-*-linux*,
1931         powerpc-*-linux-gnualtivec*, powerpc-*-linux*, s390-*-linux*,
1932         s390x-*-linux*, sh-*-linux*, sparc-*-linux*, sparc64-*-linux*):
1933         Remove thread_file setting here.
1934
1935 2002-08-06  David Edelsohn  <edelsohn@gnu.org>
1936
1937         * doc/install.texi (Binaries): Update Bull Freeware URL.
1938
1939 2002-08-06  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1940
1941         * doc/gcc.texi (Top): Rename Index to Keyword Index.
1942
1943 2002-08-05  Nathan Sidwell  <nathan@codesourcery.com>
1944
1945         * gcov.c (output_data): Round to % to nearest, tweak formatting.
1946
1947 2002-08-05  Jakub Jelinek  <jakub@redhat.com>
1948
1949         * fold-const.c (associate_trees): Only optimize NEGATE_EXPR in one
1950         of the operands into MINUS_EXPR if code is PLUS_EXPR.
1951
1952 2002-08-05  Douglas B Rupp  <rupp@gnat.com>
1953
1954         * config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
1955         * config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT,
1956         drectve_section): Define.
1957         * config/i386/t-interix: Replace interix.o rule with winnt.o.
1958         * config/i386/interix.c: Remove.
1959
1960 2002-08-05  Geoffrey Keating  <geoffk@redhat.com>
1961
1962         * attribs.c: Don't include obstack.h.
1963         * builtins.c: Likewise.
1964         * cfganal.c: Likewise.
1965         * cfgbuild.c: Likewise.
1966         * cfgcleanup.c: Likewise.
1967         * emit-rtl.c: Likewise.
1968         * loop.c: Likewise.
1969         * stmt.c: Likewise.
1970
1971         * Makefile.in (s-gtype): Re-add dependency on $(GTFILES).
1972
1973 2002-08-05  Gabriel Dos Reis  <gdr@nerim.net>
1974
1975         * doc/c-tree.texi (Expression trees): Document VA_ARG_EXPR
1976
1977 2002-08-04  Chris Demetriou  <cgd@broadcom.com>
1978
1979         * doc/invoke.texi: Remove duplicated paragraph describing
1980         TARGET_SWITCHES.
1981
1982 2002-08-04  Geoffrey Keating  <geoffk@redhat.com>
1983
1984         * Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H).
1985         * collect2.h (permanent_obstack): Delete declaration.
1986         * collect2.c (permanent_obstack): Delete definition.
1987         (main): Don't initialise permanent_obstack.  Use xstrdup instead.
1988         * expr.c: Don't include obstack.h.
1989         (permanent_obstack): Delete declaration.
1990         * function.c: Don't include obstack.h.
1991         (permanent_obstack): Delete declaration.
1992         * integrate.c: Don't include obstack.h.
1993         (function_maybepermanent_obstack): Delete declaration.
1994         * print-tree.c (debug_tree): Use x*alloc not permalloc.
1995         * sdbout.c (gen_fake_label): Use x*alloc not permalloc.
1996         * tlink.c (pfgets): Use xstrdup not permanent_obstack.
1997         * toplev.c (lang_independent_init): Rename init_obstacks to init_ttree.
1998         * tree.h: Rename init_obstacks to init_ttree.  Remove declarations
1999         of permalloc, expralloc, perm_calloc.
2000         * tree.c (permanent_obstack): Delete definition.
2001         (init_ttree): Rename from init_obstacks.
2002         (permalloc): Delete.
2003         (perm_calloc): Delete.
2004         (dump_tree_statistics): Don't print information about
2005         permanent_obstack.
2006         * varasm.c (assemble_start_function): Use xstrdup instead of
2007         permalloc/strcpy.
2008         (assemble_variable): Likewise.
2009         * config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of
2010         permalloc.
2011         (unicosmk_add_extern): Likewise.
2012         * config/c4x/c4x.c (c4x_external_ref): Likewise.
2013         (c4x_global_label): Likewise.
2014         * config/frv/frv.c (frv_encode_section_info): Likewise.
2015         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
2016         (i386_pe_record_exported_symbol): Likewise.
2017         * config/mips/mips.c (mips_output_external): Likewise.
2018         (mips_output_external_libcall): Likewise.
2019         * config/pa/pa.c: (permanent_obstack): Delete declaration.
2020         (output_call): Use ggc_strdup instead of allocating on
2021         permanent_obstack.
2022         * config/romp/romp.c: Include ggc.h.
2023         (get_symref): Don't declare permanent_obstack, use ggc_strdup
2024         intead of permanent_obstack.
2025         * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat
2026         instead of permalloc.
2027         * config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc
2028         instead of permalloc
2029         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat
2030         instead of permalloc.
2031         * config/vax/vax.c (vms_check_external): Use xmalloc instead of
2032         permalloc.
2033
2034 2002-08-04  Bernd Schmidt  <bernds@redhat.com>
2035
2036         Contribute a port developed primarily by Michael Meissner,
2037         Catherine Moore, and Richard Sandiford <rsandifo@redhat.com>.
2038         * config.gcc: Add frv-elf target.
2039         * config/frv/cmovd.c: New file.
2040         * config/frv/cmovh.c: New file.
2041         * config/frv/cmovw.c: New file.
2042         * config/frv/frv-abi.h: New file.
2043         * config/frv/frv-asm.h: New file.
2044         * config/frv/frv-modes.def: New file.
2045         * config/frv/frv-protos.h: New file.
2046         * config/frv/frv.c: New file.
2047         * config/frv/frv.h: New file.
2048         * config/frv/frv.md: New file.
2049         * config/frv/frvbegin.c: New file.
2050         * config/frv/frvend.c: New file.
2051         * config/frv/lib1funcs.asm: New file.
2052         * config/frv/media.h: New file.
2053         * config/frv/modi.c: New file.
2054         * config/frv/t-frv: New file.
2055         * config/frv/uitod.c: New file.
2056         * config/frv/uitof.c: New file.
2057         * config/frv/ulltod.c: New file.
2058         * config/frv/ulltof.c: New file.
2059         * config/frv/umodi.c: New file.
2060         * config/frv/xm-frv.h: New file.
2061
2062         * config/frv/media.h: Removed again.
2063
2064 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
2065
2066         * gcov.c (bb_file_time): New static variable.
2067         (object_directory): May also be object file.
2068         (preserve_paths): New static variable.
2069         (print_usage): Adjust.
2070         (options): Adjust.
2071         (process_args): Adjust.
2072         (open_files): Simplify. Cope when OBJECT_DIRECTORY is an object
2073         file. Find modification date on bb file.
2074         (read_profile): Don't rewind a NULL file.
2075         (format_hwint): New static function.
2076         (function_summary): Use format_hwint.
2077         (output_data): SOURCE_FILE_NAME is never relative to
2078         OBJECT_DIRECTORY. Use format_hwint. Adjust gcov file name
2079         mangling. Adjust output format to make it more machine readable.
2080         * doc/gcov.texi: Document & clarify semantics.
2081
2082 2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>
2083
2084         * doc/include/gcc-common.texi (version-GCC): Increase to 3.3.
2085
2086 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
2087
2088         * gcc.c (cc1_options): Pass output file as auxbase when
2089         appropriate.
2090         * profile.c (init_branch_prob): FILENAME has already had ending
2091         stripped.
2092         * final.c (end_final): Likewise.
2093         * toplev.c (aux_base_name): New global.
2094         (compile_file): Pass aux_base_name to init init_branch_prob and
2095         end_final.
2096         (independent_decode_option, case 'a'): New auxinfo options.
2097         (case 'd'): Protect against mising basename.
2098         (do_compile): Initialize aux_base_name.
2099         * toplev.h (aux_base_name): New global.
2100         * doc/invoke.texi: Adjust documentation.
2101
2102 2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>
2103
2104         * config/i386/i386.c (x86_field_alignment): Remove duplicate test
2105         of TARGET_ALIGN_DOUBLE.
2106
2107 2002-08-04  Gabriel Dos Reis  <gdr@nerim.net>
2108
2109         * diagnostic.c (inform): New function.
2110         * diagnostic.h (inform): Declare.
2111
2112 2002-08-03  David Edelsohn  <edelsohn@gnu.org>
2113
2114         * config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
2115         (movhi_internal): Same.
2116         (movqi_internal): Same.
2117         (movdi_internal64): Same.
2118
2119         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405.
2120
2121         * config/rs6000/xcoff.h (SKIP_ASM_OP): Define.
2122         (ASM_OUTPUT_SKIP): Use it.  SIZE unsigned.
2123         (COMMON_ASM_OP): Define.
2124         (ASM_OUTPUT_ALIGNED_COMMON): Use it.  SIZE unsigned.
2125         Use ALIGN parameter.
2126         (LOCAL_COMMON_ASM_OP): Define.
2127         (ASM_OUTPUT_LOCAL): Use it.  SIZE unsigned.
2128
2129 2002-08-03  Roger Sayle  <roger@eyesopen.com>
2130
2131         * builtins.def: Define new builtin functions exp, expf, expl,
2132         log, logf and logl (and their __builtin_* variants).
2133         * optabs.h (enum optab_index): Add new OTI_exp and OTI_log.
2134         Define exp_optab and log_optab.
2135         * optabs.c (init_optans): Initialize exp_optab and log_optab.
2136         * genopinit.c (optabs): Implement exp_optab and log_optab
2137         using exp?f2 and log?f2 patterns.
2138         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP*
2139         and BUILT_IN_LOG* using exp_optab and log_optab respectively.
2140         (expand_builtin): Ignore the new builtins (and all cos and
2141         sin variants) when not optimizing.  Expand new builtins via
2142         expand_builtin_mathfn when flag_unsafe_math_optimizations.
2143
2144         * doc/extend.texi: Document new exp and log builtins.
2145         * doc/md.texi: Document new exp?f2 and log?f2 patterns
2146         (and previously undocumented cos?f2 and sin?f2 patterns).
2147
2148 2002-08-03  Jason Merrill  <jason@redhat.com>
2149
2150         * explow.c (int_expr_size): New fn.
2151         * expr.c (expand_expr) [CONSTRUCTOR]: Use it.
2152         * expr.h: Declare it.
2153
2154 2002-08-02  Krister Walfridsson  <cato@df.lth.se>
2155
2156         * Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to
2157         gengtype-* dependencies.
2158
2159 2002-08-02  Eric Christopher  <echristo@redhat.com>
2160
2161         * config.gcc (mips*-*-linux*): Fix ordering of tm_file.
2162         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change
2163         #ifndef to #undef.
2164         (TARGET_MEM_FUNCTIONS): Define instead of define to 1.
2165
2166 2002-08-02  David Edelsohn  <edelsohn@gnu.org>
2167
2168         PR optimize/7067
2169         * config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT
2170         small if optimizing for size.
2171
2172 2002-08-02  Daniel Jacobowitz  <drow@mvista.com>
2173
2174         * configure.in (FORBUILD): Use $build_alias.
2175         * configure: Regenerated.
2176
2177 2002-08-02  Richard Sandiford  <rsandifo@redhat.com>
2178
2179         * config.gcc: Don't include mips/abi64.h in $tm_file.
2180         * hard-reg-set.h (call_really_used_regs): Declare.
2181         * config/mips/abi64.h: Remove file.
2182         * config/mips/linux.h,
2183         * config/mips/iris6.h: Don't include it.
2184         * config/mips/mips-protos.h (mips_conditional_register_usage): Declare.
2185         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it.
2186         (REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING,
2187         FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING,
2188         FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN):
2189         Bring across definitions from abi64.h.
2190         (GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS.
2191         (BIGGEST_MAX_ARGS_IN_REGISTERS): New.
2192         (struct mips_args): Use it.
2193         * config/mips/mips.c (mips_conditional_register_usage): Define.
2194
2195 2002-08-02  Jason Merrill  <jason@redhat.com>
2196
2197         * langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro.
2198         * langhooks.c (lhd_expr_size): Define default.
2199         * langhooks.h (struct lang_hooks): Add expr_size.
2200         * explow.c (expr_size): Call it.
2201         * expr.c (store_expr): Don't copy an expression of size zero.
2202         (expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much
2203         to store.
2204         * Makefile.in (builtins.o): Depend on langhooks.h.
2205
2206 2002-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2207
2208         * Makefile.in (ra-debug.o): Depend on $(TM_P_H).
2209         * ra-debug.c: Include "tm_p.h".
2210         * ra-rewrite.c (is_partly_live_1): Change return type to bool.
2211
2212 2002-08-02  Toon Moene  <toon@moene.indiv.nluug.nl>
2213
2214         * simplify-rtx.c (simplify_binary_operation): x * 1 is allowed
2215         when not honoring signalling NaNs.
2216         (simplify_ternary_operation): a == b has a definite value
2217         when not honoring NaNs.
2218
2219 2002-08-02  Jason Merrill  <jason@redhat.com>
2220
2221         * gdbinit.in (pct): New macro.
2222
2223 2002-08-01  Stan Shebs  <shebs@apple.com>
2224             Andreas Tobler  <toa@pop.agri.ch>
2225
2226         * ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined,
2227         plays nice with Darwin headers.
2228         (_BSD_RUNE_T_DEFINED_): Likewise.
2229
2230 2002-08-01  Zack Weinberg  <zack@codesourcery.com>
2231
2232         * c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
2233         * cppinit.c (cpp_post_options): Likewise.
2234
2235         * cppexp.c (cpp_classify_number): Suppress -Wtraditional
2236         warning about 'LL' suffix (but not 'ULL' etc) when
2237         -Wno-long-long is in effect.
2238
2239         * cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
2240         Check for failing time()/localtime(), issue a warning, and
2241         make __TIME__ and __DATE__ expand to fallback strings.
2242
2243         * doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
2244         and __TIME__ when the date and time cannot be determined.
2245
2246 2002-08-02  Alan Modra  <amodra@bigpond.net.au>
2247
2248         * config/rs6000/rs6000.c (output_cbranch): Hint differently for power4.
2249
2250 2002-08-01  Daniel Jacobowitz  <drow@mvista.com>
2251
2252         * Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H).
2253
2254 2002-08-01  Chris Demetriou  <cgd@broadcom.com>
2255
2256         * config.gcc (mipsisa64sb1-*-elf*): New configuration.
2257         (mipsisa64sb1el-*-elf*): Likewise.
2258         * config/mips/mips.c (mips_cpu_info_table): Add sb1.
2259         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1.
2260         (TARGET_SB1, TUNE_SB1): New macros.
2261         * doc/invoke.texi: Add sb1 to documentation for MIPS -march and
2262         -mtune flags.
2263
2264 2002-08-01  David Edelsohn  <edelsohn@gnu.org>
2265
2266         * varasm.c (asm_emit_uninitialized): Return false if global BSS
2267         and ASM_EMIT_BSS not supported by target.
2268         (assemble_variable): Do not duplicate uninitialized logic.
2269         Fall through if asm_emit_uninitialized failed.
2270
2271 2002-08-01  Chris Demetriou  <cgd@broadcom.com>
2272
2273         * config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro.
2274
2275 2002-08-02  Alan Modra  <amodra@bigpond.net.au>
2276
2277         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define.
2278         (DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define.
2279
2280         * config/rs6000/rs6000.c (output_toc): Don't use lshift_double when
2281         HOST_BITS_PER_WIDE_INT == 64.
2282
2283 2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2284
2285         * df.c (df_insn_table_realloc): Change parameter to unsigned.
2286         * optabs.c (expand_binop): Make variable unsigned.
2287         * simplify-rtx.c (simplify_subreg): Likewise.
2288         * unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings.
2289
2290 2002-08-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2291
2292         * c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.
2293
2294 2002-08-01  Richard Henderson  <rth@redhat.com>
2295
2296         * toplev.c (parse_options_and_default_flags): Don't set
2297         flag_reorder_blocks for -Os.
2298
2299         * config/avr/avr.c (avr_optimization_options): Remove.
2300         * config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove.
2301         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove.
2302         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove.
2303
2304 2002-08-01  H.J. Lu <hjl@gnu.org>
2305             Richard Henderson  <rth@redhat.com>
2306
2307         * output.h (DECL_READONLY_SECTION): Remove.
2308         (decl_readonly_section): Declare.
2309         * varasm.c (decl_readonly_section): New.
2310         (default_section_type_flags, default_select_section): Use it.
2311         * config/arm/pe.c (arm_pe_unique_section): Likewise.
2312         * config/i386/interix.c (i386_pe_unique_section): Likewise.
2313         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
2314         * config/mcore/mcore.c (mcore_unique_section): Likewise.
2315         * config/mips/mips.c (mips_unique_section): Likewise.
2316
2317 2002-08-01  Richard Henderson  <rth@redhat.com>
2318
2319         * integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it
2320         refers to a subroutine parameter.
2321
2322 2002-08-01  Jakub Jelinek  <jakub@redhat.com>
2323
2324         * varasm.c (assemble_visibility): Strip name encoding.
2325
2326 2002-08-01  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
2327
2328         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch.
2329         (RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0
2330         when there is no frame pointer.
2331         (INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp
2332         registers properly.
2333         * config/ns32k/__unorddf2.c: New file.
2334         * config/ns32k/__unordsf2.c: New file.
2335         * config/ns32k/t-ns32k: New file.
2336         * config.gcc (ns32k-*-netbsd*): Use it.
2337
2338 2002-08-01  Aldy Hernandez  <aldyh@redhat.com>
2339
2340         * config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff.
2341
2342 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
2343
2344         * c-common.c (__GXX_ABI_VERSION): Correct spelling.
2345
2346 2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>
2347
2348         * c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.
2349
2350 2002-08-01  Richard Sandiford  <rsandifo@redhat.com>
2351
2352         * config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions.
2353
2354 2002-08-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2355
2356         * gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size,
2357         n_sets): Removed.
2358         (expr_hash_table, set_hash_table): Type changed to ...
2359         (struct hash_table): New type.
2360         (hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call,
2361         insert_expr_in_table, insert_set_in_table, compute_hash_table,
2362         dump_hash_table, lookup_expr, lookup_set, compute_local_properties,
2363         compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly.
2364         (alloc_set_hash_table, alloc_expr_hash_table): Merged to ...
2365         (alloc_hash_table): New.
2366         (free_set_hash_table, free_expr_hash_table): Merged to ...
2367         (free_hash_table): New.
2368         (compute_set_hash_table, compute_expr_hash_table): Merged to ...
2369         (compute_hash_table_work): New.
2370         (classic_gcse, one_classic_gcse_pass, compute_cprop_data,
2371         find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data,
2372         pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse,
2373         one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout,
2374         hoist_code, one_code_hoisting_pass,
2375         trim_ld_motion_mems): Altered due to changed type of hash tables.
2376
2377 2002-08-01  Zack Weinberg  <zack@codesourcery.com>
2378
2379         * final.c (output_alternate_entry_point):
2380         If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it.
2381
2382 2002-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2383
2384         * objc/objc-act.c (encode_complete_bitfield): Add prototype and
2385         avoid ISO C style function definition.
2386
2387         * expr.c (expand_assignment): Delete unused variable.
2388
2389 2002-08-01  Toon Moene  <toon@moene.indiv.nluug.nl>
2390
2391         * c-common.c (cb_register_builtins): Set
2392         __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
2393         is given, and to 0 otherwise.
2394         * combine.c (simplify_if_then_else): HONOR_NANS
2395         implies FLOAT_MODE_P.
2396
2397 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
2398
2399         * cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
2400         (cpp_handle_option): Don't handle it.
2401         (print_help): Update.
2402         * doc/cppopts.texi: Update.
2403
2404 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
2405
2406         * c-common.c (cb_register_builtins): If C++, define
2407         __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
2408         * gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
2409 cp:
2410         * lang-specs.h: Simplify in accordance with new code in
2411         c-common.c.
2412
2413 2002-08-01  Neil Booth  <neil@daikokuya.co.uk>
2414
2415         * c-common.c: Define all C/ObjC/C++ warning and flag variables.
2416         * c-common.h: Declare all C/ObjC/C++ warning and flag variables.
2417         * c-decl.c: Move all warning and flag variables to c-common.c.
2418         * c-format.c: Move all warning variables to c-common.c.
2419         * c-tree.h: Move all warning and flag declarations to c-common.h.
2420         * objc/objc-act.c: Move all warning variables to c-common.c.
2421         (flag_warn_protocol): Rename warn_protocol.
2422
2423 2002-07-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2424
2425         * pa-linux.h (GLOBAL_ASM_OP): Fix typo.
2426
2427 2002-07-31  Graham Stott  <grahams@btinternet.com>
2428
2429         * config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing
2430         .section prefix.
2431
2432 2002-07-31  Stan Shebs  <shebs@apple.com>
2433
2434         * config.gcc (i[34567]86-*-darwin*): New configuration.
2435         * config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before
2436         defining.
2437         (TARGET_ENCODE_SECTION_INFO): Ditto.
2438         (ASM_PREFERRED_EH_DATA_FORMAT): Ditto.
2439         * config/darwin.c (machopic_indirect_data_reference): Remove
2440         setting of RTX_UNCHANGING_P.
2441         (machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as
2442         not to be applied to sums.
2443         * config/i386/t-darwin: New file.
2444         * config/i386/darwin.h: New file.
2445         * config/i386/i386.h (TARGET_MACHO): Add default definition.
2446         * config/i386/i386.md (tablejump): Add TARGET_MACHO case.
2447         * config/i386/i386.c (output_set_got): For Mach-O, output Mach-O
2448         label and not the GOT add.
2449         (constant_address_p): For Mach-O, seeing a CONST is enough.
2450         (legitimate_pic_address_disp_p): Add a Mach-O case.
2451         (legitimate_address_p): Also test machopic_operand_p if Mach-O.
2452         (legitimize_pic_address): Use generic Mach-O code to legitimize.
2453         (output_pic_addr_const): Suppress @PLT if Mach-O, and parens
2454         if outputting a difference.
2455         (ix86_output_addr_diff_elt): Add Mach-O case.
2456         (ix86_expand_move): Similarly.
2457         (ix86_expand_call): Similarly.
2458         (current_machopic_label_num): New global.
2459         (machopic_output_stub): New function.
2460         (ix86_value_regno): New function.
2461         (ix86_function_value): Use it instead of VALUE_REGNO.
2462         (ix86_libcall_value): Ditto.
2463         * config/i386/unix.h (VALUE_REGNO): Remove.
2464
2465 2002-07-31  Graham Stott  <grahas@btinternet.com>
2466
2467         * config/rs6000/rs6000.c(rs6000_hash_constant): Fix
2468         hash for LABEL_REF's.
2469
2470 2002-07-31  Graham Stott  <grahams@btinternet.com>
2471
2472         * config/rs6000/rs6000.c (spe_init_builtins,
2473         altivec_init_builtins, rs6000_common_init_builtins):
2474         Replace ANSI with K&R function def.
2475
2476 2002-07-31  David Edelsohn  <edelsohn@gnu.org>
2477
2478         * rs6000.c (validate_condition_mode): Test flag_finite_math_only
2479         for CCFPmode.
2480
2481 2002-07-31  Richard Sandiford  <rsandifo@redhat.com>
2482
2483         * config/mips/crtn.asm: Don't use __mips16 to determine the
2484         return-address offset.  Define RA to a suitable temporary
2485         register for the return address.
2486
2487 2002-07-31  Richard Sandiford  <rsandifo@redhat.com>
2488
2489         * config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change
2490         constraints to 'd'.
2491
2492 2002-07-30  Chris Demetriou  <cgd@broadcom.com>
2493
2494         * config/mips/elf.h (STARTFILE_SPEC): Define differently if
2495         default ABI is MEABI.  (Undoes incorrect change in Eric Christopher's
2496         patch on 2002-07-29.)
2497         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
2498
2499 2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2500
2501         * alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h,
2502         fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h,
2503         ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h,
2504         openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h,
2505         s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h:
2506         (ASM_GLOBALIZE_LABEL): Delete.
2507         (GLOBAL_ASM_OP): Define.
2508
2509         * m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete.
2510
2511         * defaults.h (ASM_GLOBALIZE_LABEL): Provide a default.
2512         * doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs.
2513
2514 2002-07-30  Geoffrey Keating  <geoffk@redhat.com>
2515
2516         * doc/extend.texi (Hints implementation): Document that GCC
2517         mostly ignores `register'.
2518
2519 2002-07-30  Toon Moene  <toon@moene.indiv.nluug.nl>
2520
2521         * flags.h: Declare flag_finite_math_only.
2522         Use it in definition of HONOR_NANS and
2523         HONOR_INFINITIES.
2524         * c-common.c (cb_register_builtins): Emit
2525         __FINITE_MATH_ONLY__ when flag_finite_math_only
2526         is set.
2527         * combine.c (simplify_if_then_else): If
2528         flag_finite_math_only is set, a == b has a
2529         definite value.
2530         * toplev.c: Initialize flag_finite_math_only.
2531         (set_flags_fast_math): Set it on -ffast-math.
2532         (flag_fast_math_set_p): Test it.
2533         * doc/invoke.texi: Document -ffinite-math-only.
2534
2535 2002-07-30  Richard Henderson  <rth@redhat.com>
2536
2537         * ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p.
2538         (noce_process_if_block): Likewise.
2539
2540 2002-07-30  Bernd Schmidt  <bernds@redhat.com>
2541
2542         * ifcvt.c (cond_exec_process_if_block): Fix a merging error.
2543         Bail out early if false_expr is NULL and we'd crash due to this.
2544         * genemit.c (gen_expand): Recognize return insns even if the return
2545         appears in a parallel.
2546         * libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined.
2547         * config/fp-bit.c: Likewise.
2548         * doc/tm.texi: Document it.
2549
2550 2002-07-30  David Edelsohn  <edelsohn@gnu.org>
2551             Zack Weinberg  <zack@codesourcery.com>
2552
2553         * rs6000.c (rs6000_expand_unop_builtin): Check icode not
2554         CODE_FOR_nothing.  Change switch to if.
2555         (rs6000_expand_binop_builtin): Same.
2556         (rs6000_expand_builtin): Expand builtin if target support enabled.
2557         (rs6000_init_builtins): Init builtin if target support enabled.
2558         (rs6000_common_init_builtins): Check icode not CODE_FOR_nothing.
2559
2560 2002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2561
2562         * gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101.
2563
2564 2002-07-30  Richard Sandiford  <rsandifo@redhat.com>
2565
2566         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo.
2567
2568 Tue Jul 30 18:31:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
2569
2570         * sh.md (cond_delay_slot): New attribute.
2571         (cbranch delay): Use it for anulled-true case.
2572         (stuff_delay_slot): New pattern.
2573         * sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length
2574         delay slot insn.
2575         (gen_far_branch): Emit stuff_delay_slot pattern.
2576
2577 Tue Jul 30 11:21:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
2578
2579         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.
2580
2581 2002-07-30  Kazu Hirata  <kazu@cs.umass.edu>
2582
2583         * fold-const.c: Fix comment typos.
2584         * gcse.c: Likewise.
2585         * reload1.c: Likewise.
2586
2587 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
2588
2589         * config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot
2590         for TARGET_SPE.
2591
2592 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
2593
2594         * c-pretty-print.h (pp_c_statement): Declare.
2595         * c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC.
2596         (pp_c_statement): Define.
2597
2598 2002-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2599
2600         * alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h,
2601         darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h,
2602         ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h,
2603         mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h,
2604         rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h,
2605         v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition.
2606
2607         * defaults.h (ASM_OUTPUT_LABEL): Provide a default.
2608         * doc/tm.texi (ASM_OUTPUT_LABEL): Update docs.
2609
2610 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
2611
2612         * c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR.
2613         (pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR,
2614         COMPOUND_LITERAL_EXPR, VA_ARG_EXPR.
2615         (pp_c_expression): Update.
2616
2617 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2618
2619         * alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
2620         concat in lieu of xmalloc/strcpy/memcpy/sprintf.
2621         * alpha/vms-ld.c (main): Likewise.
2622         * dsp16xx.c (double_reg_to_memory): Likewise.
2623         * mcore.c (mcore_expand_prolog): Likewise.
2624         * cppfiles.c (read_name_map): Likewise.
2625         * gensupport.c (process_rtx, identify_predicable_attribute,
2626         alter_test_for_insn): Likewise.
2627         * vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise.
2628
2629 2002-07-29  Roger Sayle  <roger@eyesopen.com>
2630
2631         * builtins.c (expand_builtin):  Change the default behavior to
2632         only issue an error if the builtin function doesn't have a
2633         fallback library call.  Remove several cases handled by the
2634         new default.
2635
2636 2002-07-29  John David Anglin  <dave@hiauly1.hia.nrc>
2637
2638         * real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the
2639         floating point format of the target is IEEE.
2640         * (dec_f, dec_d, dec_g, dec_h): Define only if the floating point
2641         format of the target is DEC.
2642
2643 2002-07-29  Richard Henderson  <rth@redhat.com>
2644
2645         * unroll.c (verify_addresses): Remove.
2646         (find_splittable_givs): Never split DEST_ADDR givs.
2647
2648 2002-07-29  Geoffrey Keating  <geoffk@redhat.com>
2649
2650         * doc/gty.texi (GGC Roots): Clarify that the list of syntaxes
2651         is exhaustive.
2652         (Files): Improve documentation on generated source files.
2653
2654         * doc/extend.texi (Translation implementation): Document what
2655         diagnostics look like.
2656         (Identifiers implementation): Document that there's normally no
2657         limit on identifier names.
2658         (Integers implementation): Document two's complement.
2659         (Hints implementation): Document that GCC honours 'inline', mostly.
2660         (Preprocessing directives implementation): Document that GCC
2661         requires the current time.
2662
2663 2002-07-30  Gabriel Dos Reis  <gdr@nerim.net>
2664
2665         * c-pretty-print.h (struct c_pretty_print_info): Add new member.
2666         (pp_initializer): New macro.
2667         (pp_c_initializer): Declare.
2668         * c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR.
2669         (pp_c_initializer): Define.
2670         (pp_c_initializer_list): New function.
2671         (pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST,
2672         VECTOR_CST, CONSTRUCTOR.
2673         (pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR,
2674         IMAGPART_EXPR.
2675         (pp_c_cast_expression): Handle FLOAT_EXPR.
2676         (pp_c_assignment_expression): Handle INIT_EXPR.
2677         (pp_c_expression): Update.
2678
2679 2002-07-30  Neil Booth  <neil@daikokuya.co.uk>
2680
2681         * objc/objc-act.c (objc_init): Return immediately if filename
2682         is NULL.
2683
2684 2002-07-29  Eric Christopher  <echristo@redhat.com>
2685
2686         * config/mips/elf.h: Remove ecoff.h and gofast includes.
2687         (DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally.
2688         (SDB_DEBUGGING_INFO): Undefine.
2689         (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2690         (PUT_SDB_SIZE): Remove.
2691         (SUBTARGET_ASM_DEBUGGING_SPEC): Redefine.
2692         (STARTFILE_SPEC): Add isa3264 define.
2693         * config/mips/elf64.h: Ditto.  Move TARGET_MEM_FUNCTIONS from here...
2694         * config/mips/ecoff.h: Remove. and here...
2695         * config/mips/iris3.h: and here...
2696         * config/mips/sni-svr4.h: and here...
2697         * config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs.
2698         Add assembler -mmdebug options for non-dwarf debugging.
2699         * config/mips/r3900.h: Remove debug info defines.
2700         * config/mips/isa32-linux.h: Remove, move functionality to config.gcc.
2701         * config/mips/isa3264.h: Ditto.
2702         * config/mips/t-isa3264: Fix up for file removal and gofast configure
2703         change.
2704         * config/mips/t-elf: Ditto.
2705         * config/mips/t-ecoff: Ditto.
2706         * config/mips/t-r3900: Ditto.
2707         * config/mips/t-iris5-6: Ditto.
2708         * config/mips/t-isa3264: Ditto.
2709         * config/mips/t-linux: Remove.
2710         * config/mips/t-netbsd: Remove.
2711         * config/mips/t-mips: New file.
2712         * config/mips/t-gofast: Ditto.
2713         * config/mips/netbsd.h: Remove unnecessary undefines.
2714         * config/mips/linux.h: Remove #include of mips.h.
2715         * config.gcc: Add mips.h include for elf targets. Remove tm_file
2716         for ecoff. Add gofast configure option for mips.
2717
2718 2002-07-29  Chris Demetriou  <cgd@broadcom.com>
2719
2720         * configure.in (mips*-*-*): Add a test to see if MIPS libgloss
2721         linker scripts use STARTUP directives consistently.
2722         * configure: Regenerate.
2723         * config.in: Regenerate.
2724         * config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based
2725         on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined.
2726         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
2727         * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if
2728         HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result
2729         will be the same.
2730
2731 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
2732
2733         * config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute.
2734
2735 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
2736
2737         * config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540.
2738
2739 2002-07-29  Aldy Hernandez  <aldy@quesejoda.com>
2740
2741         * config/rs6000/rs6000.md: Move altivec patterns from here...
2742
2743         * config/rs6000/altivec.md: ...to here.
2744
2745 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
2746
2747         * config/rs6000/spe.md ("spe_evmra"): Change to unspec.
2748
2749 2002-07-29  Richard Henderson  <rth@redhat.com>
2750
2751         * emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from
2752         set_mem_attributes and add BITPOS argument.  Subtract it from
2753         OFFSET when same is adjusted.
2754         (set_mem_attributes): New wrapper function.
2755         * expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos;
2756         remove offset adjustment hack.
2757         * expr.h (set_mem_attributes_minus_bitpos): Declare.
2758
2759 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
2760
2761         * Makefile.in (C_OBJS): Include c-pretty-print.o
2762         (c-pretty-print.o): Add depency rule.
2763         * pretty-print.h: Add more macros.
2764         * c-pretty-print.c: New file.
2765         * c-pretty-print.h: Likewise.
2766
2767 2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
2768
2769         * config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector
2770         constants to __ev64_s32__.
2771         (__internal_ev_mwhgsmian): Same.
2772         (__internal_ev_mwhgsmfan): Same.
2773         (__internal_ev_mwhgssfan): Same.
2774         (__internal_ev_mwhgumiaa): Same.
2775         (__internal_ev_mwhgsmiaa): Same.
2776         (__internal_ev_mwhgsmfaa): Same.
2777         (__internal_ev_mwhgssfaa): Same.
2778
2779 2002-07-29  David Edelsohn  <edelsohn@gnu.org>
2780
2781         * varasm.c (assemble_variable): Narrow test for uninitialized
2782         without BSS target support.
2783
2784 2002-07-29  Nathan Sidwell  <nathan@codesourcery.com>
2785
2786         * profile.c: Add file comment describing the overall algorithm and
2787         structures.
2788         (struct edge_info): Add comments.
2789         (struct bb_info): Add comments.
2790         * basic-block.h (EDGE_*): Add comments.
2791         * doc/gcov.texi (Gcov Data Files): Document bit flags.
2792
2793 2002-07-29  Bob Wilson  <bob.wilson@acm.org>
2794
2795         * config/xtensa/elf.h, config/xtensa/linux.h
2796         (TARGET_OS_CPP_BUILTINS): Define.
2797         (CPP_PREDEFINES): Remove.
2798         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define.
2799         (CPP_SPEC): Remove.
2800
2801 2002-07-29  Zack Weinberg  <zack@codesourcery.com>
2802
2803         * gensupport.c: Include hashtab.h.
2804         (insn_elision, condition_table, hash_c_test, cmp_c_test,
2805         maybe_eval_c_test): New routines and data structures to
2806         support insn elision.
2807         (init_md_reader): Read and initialize the condition_table.
2808         (read_md_rtx): Discard insn patterns whose C test is provably
2809         always false.
2810         * gensupport.h: Declare new functions and data structures.
2811
2812         * genconditions.c, dummy-conditions.c: New files.
2813         * Makefile.in: Build genconditions; run it to construct
2814         insn-conditions.c; build that and link it into most gen*
2815         programs.
2816         (HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables.
2817         (GEN): Delete, unused.
2818         (STAGESTUFF): Update.
2819
2820         * gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to
2821         CODE_FOR_nothing for all elided patterns.
2822         (main): Tweaked to support this.
2823         * genflags.c (gen_proto): Emit a static inline generator
2824         function here for all elided patterns, which simply returns
2825         NULL_RTX.
2826         (gen_insn): Do not define HAVE_xxx for elided patterns.
2827         (main): Tweaked to support this.  No need to forward-declare
2828         struct rtx_def.
2829         * genrecog.c: Do not bother emitting the C test if it's known
2830         to be true at compile time.
2831
2832 2002-07-29  Mike Stump  <mrs@apple.com>
2833
2834         * config.gcc (target_gtfiles): Initialize, as otherwise cross
2835         compilers hosted on powerpc-apple-darwin6.0 won't even build.
2836
2837 2002-07-29  Richard Earnshaw  <rearnsha@arm.com>
2838
2839         * arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
2840         remove clobber of LR.
2841         (sibcall_insn, sibcall_value_insn): Update accordingly.
2842         (sibcall_epilogue): Remove debugging comment from assembler stream.
2843
2844 2002-07-29  Gabriel Dos Reis  <gdr@nerim.net>
2845
2846         * pretty-print.h: Define more macros.
2847         * diagnostic.h (output_formatted_integer): Moved from...
2848         * diagnostic.c: ... here.
2849
2850 2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2851
2852         * stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF.
2853
2854 2002-07-28  Zack Weinberg  <zack@codesourcery.com>
2855
2856         * defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
2857         arguments.  Always use ".-symbol" as expression argument.
2858         * doc/tm.texi: Update to match.  Document requirement for
2859         ".size symbol, .-symbol" to be acceptable to assembler.
2860
2861         * config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
2862         config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
2863         config/i386/freebsd-aout.h, config/i386/sco5.h,
2864         config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
2865         config/xtensa/linux.h:  Update uses of ASM_OUTPUT_MEASURED_SIZE.
2866
2867 2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2868
2869         * Makefile.in (gengtype-lex.c): Fix error in last change.
2870
2871         * alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing
2872         backslash.
2873
2874         * Makefile.in (vmsdbgout.o): Depend on function.h.
2875
2876         * vmsdbgout.c: Include function.h.
2877
2878 2002-07-28  Alan Modra  <amodra@bigpond.net.au>
2879
2880         * prefix.c (update_path): Don't strip single `.' path components
2881         unless stripping a later `..' component.  Exit loop as soon as
2882         a valid path is found.
2883
2884 2002-07-27  Roger Sayle  <roger@eyesopen.com>
2885
2886         * builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS
2887         argument.  Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN,
2888         BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99
2889         floating point unordered comparisons (e.g. __builtin_isgreater)
2890         as const, and leave the remaining GCC_BUILTINs unchanged.
2891
2892         * c-decl.c (builtin_function): No need to explicitly mark
2893         BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
2894
2895 2002-07-27  Roger Sayle  <roger@eyesopen.com>
2896
2897         * Makefile.in: rtlanal.o now depends upon real.h.
2898
2899         * flags.h [flag_signaling_nans]: New flag.
2900         [HONOR_SNANS]: New macro.
2901
2902         * toplev.c [flag_signaling_nans]: Initialize to false.
2903         (f_options): Add processing for "-fsignaling-nans".
2904         (set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
2905         (process_options): flag_signaling_nans implies flag_trapping_math.
2906
2907         * c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
2908         when -fsignaling-nans.  First step to implementing WG14's N965.
2909
2910         * fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
2911         1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
2912         [RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.
2913
2914         * simplify-rtx.c (simplify_relational_operation): Conditionalize
2915         transforming abs(x) < 0.0 into false on !HONOR_SNANS.
2916
2917         * rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
2918         required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
2919         UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
2920         -fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
2921         not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).
2922
2923         * doc/invoke.texi: Document new -fsignaling-nans compiler option.
2924
2925 2002-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2926
2927         * Makefile.in (gengtype-lex.c): Work around a bug in flex.
2928         * gengtype-lex.l (YY_USE_PROTOS): Undef.
2929         (YY_DECL): Define.
2930
2931 2002-07-27  Roger Sayle  <roger@eyesopen.com>
2932
2933         * doc/invoke.texi: Document that both -fno-builtin-foo and
2934         -fno-builtin are supported by the g++ front-end.
2935
2936 2002-07-27  Stan Shebs  <shebs@apple.com>
2937
2938         * configure.in: Rename config_gtfiles to target_gtfiles.
2939         * configure: Regenerate.
2940         * doc/gty.texi: Update reference.
2941         * config.gcc (powerpc-*-darwin*): Set target_gtfiles
2942         instead of appending to it.
2943
2944 2002-07-25  Aldy Hernandez  <aldyh@redhat.com>
2945
2946         * config/rs6000/rs6000.c (function_arg_advance): SPE vararg
2947         vectors are split into two registers.
2948         (function_arg): Same.
2949
2950 Thu Jul 26 23:00:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
2951
2952         * pa.md (extv): Check predicates before emitting extv_32.
2953
2954 2002-07-27  Alan Modra  <amodra@bigpond.net.au>
2955
2956         * config/rs6000/rs6000.c (rs6000_traceback_name): New var.
2957         (rs6000_traceback): New var.
2958         (rs6000_override_options): Set rs6000_traceback.
2959         (rs6000_output_function_epilogue): Implement traceback options.
2960         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=".
2961         (rs6000_traceback_name): Declare.
2962
2963         * config/rs6000/rs6000.c (output_profile_hook): Don't generate profile
2964         label reference when NO_PROFILE_COUNTERS.
2965
2966 2002-07-26  Jason Merrill  <jason@redhat.com>
2967
2968         * function.c (assign_parms): Handle frontend-directed pass by
2969         invisible reference.
2970
2971 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
2972
2973         * doc/cppopts.texi: Update.
2974
2975 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
2976
2977         * cppmacro.c (_cpp_create_definition): Don't attempt redefinition
2978         warnings on assertions.
2979
2980 2002-07-26  Neil Booth  <neil@daikokuya.co.uk>
2981
2982         * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,
2983         RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR,
2984         RID_COMPL): Remove.
2985         * c-parse.in (rid_to_yy): Similarly.
2986
2987 2002-07-26  Jason Merrill  <jason@redhat.com>
2988
2989         * c-dump.c: Resurrect.
2990         * tree-dump.c: Move C-specific stuff to c-dump.c.
2991         * c-common.h: Declare c_dump_tree.
2992         * c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
2993         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
2994         (c-dump.o): New rule.
2995
2996 2002-07-26  Alan Modra  <amodra@bigpond.net.au>
2997
2998         * config/rs6000/rs6000.md: Enable patterns using rlwinm for
2999         PowerPC64.  Replace "T" and "S" constraints with "n" when the
3000         predicate will do.  Formatting fixes.
3001         (extzvsi_internal2): Use "andi.", "andis." and attr type of "compare"
3002         as for extzvsi_internal1.
3003
3004 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3005
3006         * dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT,
3007         DERIV_END_LABEL_FMT): Remove.
3008         (SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move.
3009
3010 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3011
3012         * objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE):
3013         Remove.
3014
3015 2002-07-25  Stan Shebs  <shebs@apple.com>
3016
3017         * config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused
3018         local var dwarfp.
3019         (output_compiler_stub): Remove unused locals.
3020         (output_call): Always initialize line number.
3021
3022 Thu Jul 25 20:34:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
3023
3024         * sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
3025         * sh.md (truncdiqi2, movqi_media): Likewise.
3026
3027 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3028
3029         * gcse.c (obstack_chunk_alloc): Remove.
3030         (gcse_alloc): Fix to count allocated bytes.
3031         * collect2.c (SYMBOL__MAIN): Remove.
3032
3033 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3034
3035         * gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
3036         HAVE_TARGET_EXECUTABLE_SUFFIX.
3037
3038 Thu Jul 25 18:57:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
3039
3040         * rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
3041         SIZE, EXPR and OFFSET.
3042
3043 2002-07-25  Richard Henderson  <rth@redhat.com>
3044
3045         * emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos
3046         in ARRAY_REF of DECL_P case.
3047
3048 2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
3049
3050         * doc/invoke.texi: Document -mabi=meabi, and expand on the EABI
3051         description.  Document -mips32, -mips64, and the associated -march
3052         values.  Describe the "mipsN" arguments to -march.  Say that the
3053         -mipsN options are equivalent to -march.  Reword the description
3054         of default type sizes.
3055         * toplev.h (target_flags_explicit): Declare.
3056         * toplev.c (target_flags_explicit): New var.
3057         (set_target_switch): Update target_flags_explicit.
3058         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine.
3059         * config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine.
3060         * config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3.
3061         * config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine.
3062         * config/mips/mips.h (mips_cpu_info): New struct.
3063         (mips_cpu_string, mips_explicit_type_size_string): Remove.
3064         (mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare.
3065         (MIPS_CPP_SET_PROCESSOR): New macro.
3066         (TARGET_CPP_BUILTINS): Declare a macro for each supported processor.
3067         Define _MIPS_ARCH and _MIPS_TUNE.
3068         (MIPS_ISA_DEFAULT): Don't provide a default value.  Instead...
3069         (MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor
3070         MIPS_ISA_DEFAULT were already defined.
3071         (MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT.
3072         (TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size.
3073         (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New.
3074         (GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules.
3075         (ABI_GAS_ASM_SPEC): Remove.
3076         (MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros.
3077         (ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64.
3078         Invoke %(asm_abi_default_spec) if no ABI was specified.
3079         (CC1_SPEC): Remove ISA -> register-size rules.
3080         (EXTRA_SPECS): Remove abi_gas_asm_spec.  Add asm_abi_default_spec.
3081         * config/mips/mips.c (mips_arch_info, mips_tune_info): New vars.
3082         (mips_cpu_string, mips_explicit_type_size_string): Remove.
3083         (mips_cpu_info_table): New array.
3084         (mips_set_architecture, mips_set_tune): New fns.
3085         (override_options): Rework to make -mipsN equivalent to -march.
3086         Detect more erroneous cases, including those removed from CC1_SPEC.
3087         Don't change the ABI based on architecture, or vice versa.
3088         Unify logic with GAS.
3089         (mips_asm_file_start): Get architecture name from mips_arch_info.
3090         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns.
3091         (mips_parse_cpu): Take the name of the option as argument.  Handle
3092         'from-abi'.  Raise an error if the option is wrong.
3093         (mips_cpu_info_from_isa): New fn.
3094
3095 2002-07-25  Richard Sandiford  <rsandifo@redhat.com>
3096
3097         * config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
3098         (tablejump_mips162): Likewise.
3099
3100 Thu Jul 25 10:23:41 2002  J"orn Rennecke <joern.rennecke@superh.com>
3101
3102         * simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
3103         int_mode_for_mode.
3104
3105 2002-07-25  Gabriel Dos Reis  <gdr@nerim.net>
3106
3107         * c-common.c (c_sizeof_or_alignof_type): Take a third argument for
3108         complaining.
3109         * c-common.h (c_sizeof): Adjust definition.
3110         (c_alignof): Likewise.
3111         * c-tree.h (c_sizeof_nowarn): Now macro.
3112         * c-typeck.c (c_sizeof_nowarn): Remove definition.
3113
3114 2002-07-25  Neil Booth  <neil@daikokuya.co.uk>
3115
3116         * c-decl.c (c_decode_option): No need to handle switches
3117         cpplib handles.
3118
3119 2002-07-24  Zack Weinberg  <zack@codesourcery.com>
3120
3121         * defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
3122         ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
3123         * doc/tm.texi: Document them.  Also document SIZE_ASM_OP,
3124         TYPE_ASM_OP, and TYPE_OPERAND_FMT.
3125
3126         * config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
3127         config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
3128         config/cris/aout.h, config/i386/freebsd-aout.h,
3129         config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
3130         config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
3131         config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
3132         config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
3133         config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
3134         config/xtensa/elf.h, config/xtensa/linux.h:
3135         Use the new macros.
3136         Where possible, remove redundant definitions of SIZE_ASM_OP,
3137         TYPE_ASM_OP, and TYPE_OPERAND_FMT.
3138
3139 2002-07-24  Aldy Hernandez  <aldyh@redhat.com>
3140
3141         * config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
3142         TARGET_ISEL, and TARGET_FPRS.
3143
3144         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3145         -mabi=spe, -mabi=no-spe, and -misel=.
3146
3147         * config/rs6000/rs6000-protos.h: Add output_isel.
3148         Move vrsave_operation prototype here.
3149
3150         * config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
3151         (smaxsi3): Same.
3152         (uminsi3): Same.
3153         (umaxsi3): Same.
3154         (abssi2_nopower): Disallow when TARGET_ISEL.
3155         (*ne0): Same.
3156         (negsf2): Change to expand and rename old pattern to *negsf2.
3157         (abssf2): Change to expand and rename old pattern to *abssf2.
3158
3159         New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
3160         fixunssfsi2.
3161
3162         Change patterns that check for TARGET_HARD_FLOAT or
3163         TARGET_SOFT_FLOAT to also check TARGET_FPRS.
3164
3165         * config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
3166         rs6000_isel, rs6000_fprs, rs6000_isel_string.
3167         (rs6000_override_options): Add 8540 case to
3168         processor_target_table.
3169         Set rs6000_isel for the 8540.
3170         Call rs6000_parse_isel_option.
3171         (enable_mask_for_builtins): New.
3172         (rs6000_parse_isel_option): New.
3173         (rs6000_parse_abi_options): Add spe and no-spe.
3174         (easy_fp_constant): Treat !TARGET_FPRS as soft-float.
3175         (rs6000_legitimize_address): Check for TARGET_FPRS when checking
3176         for TARGET_HARD_FLOAT.
3177         Add case for SPE_VECTOR_MODE.
3178         (rs6000_legitimize_reload_address): Handle SPE vector modes.
3179         (rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
3180         vector modes.
3181         Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
3182         (rs6000_emit_move): Check for TARGET_FPRS.
3183         Add cases for SPE vector modes.
3184         (function_arg_boundary): Return 64 for SPE vector modes.
3185         (function_arg_advance): Check for TARGET_FPRS and
3186         Handle SPE vectors.
3187         (function_arg): Same.
3188         (setup_incoming_varargs): Check for TARGET_FPRS.
3189         (rs6000_va_arg): Same.
3190         (struct builtin_description): Un-constify mask field.  Move up in
3191         file.
3192         (bdesc_2arg): Un-constify and add SPE builtins.
3193         (bdesc_1arg): Same.
3194         (bdesc_spe_predicates): New.
3195         (bdesc_spe_evsel): New.
3196         (rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
3197         (rs6000_expand_binop_builtin): Same.
3198         (bdesc_2arg_spe): New.
3199         (spe_expand_builtin): New.
3200         (spe_expand_predicate_builtin): New.
3201         (spe_expand_evsel_builtin): New.
3202         (rs6000_expand_builtin): Call spe_expand_builtin for SPE.
3203         (rs6000_init_builtins): Initialize SPE builtins.  Call
3204         rs6000_common_init_builtins.
3205         (altivec_init_builtins): Move all non-altivec builtin code to...
3206         (rs6000_common_init_builtins): ...here.  New function.
3207         (branch_positive_comparison_operator): Allow NE code for SPE.
3208         (ccr_bit): Return correct ccr bit for SPE fp.
3209         (print_operand): Emit crnor in 'D' case for SPE.
3210         New case 't'.
3211         Add SPE code for 'y' case.
3212         (rs6000_generate_compare): Generate rtl for SPE fp.
3213         (output_cbranch): Handle SPE hard floats.
3214         (rs6000_emit_cmove): Handle isel.
3215         (rs6000_emit_int_cmove): New.
3216         (output_isel): New.
3217         (rs6000_stack_info): Adjust stack frame so GPRs are saved in
3218         64-bits for SPE.
3219         (debug_stack_info): Add SPE info.
3220         (gen_frame_mem_offset): New.
3221         (rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
3222         Change mode of frame pointer, when saving it, to Pmode.
3223         (rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
3224         Misc cleanups and use gen_frame_mem_offset when appropriate.
3225
3226         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
3227         (TARGET_SPE_ABI): New.
3228         (TARGET_SPE): New.
3229         (TARGET_ISEL): New.
3230         (TARGET_FPRS): New.
3231         (FIXED_SCRATCH): New.
3232         (RTX_COSTS): Add PROCESSOR_PPC8540.
3233         (ASM_CPU_SPEC): Add case for 8540.
3234         (TARGET_OPTIONS): Add isel= case.
3235         (rs6000_spe_abi): New.
3236         (rs6000_isel): New.
3237         (rs6000_fprs): New.
3238         (rs6000_isel_string): New.
3239         (UNITS_PER_SPE_WORD): New.
3240         (LOCAL_ALIGNMENT): Adjust for SPE.
3241         (HARD_REGNO_MODE_OK): Same.
3242         (DATA_ALIGNMENT): Same.
3243         (MEMBER_TYPE_FORCES_BLK): New.
3244         (FIRST_PSEUDO_REGISTER): Set to 113.
3245         (FIXED_REGISTERS): Add SPE registers.
3246         (reg_class): Same.
3247         (REG_CLASS_NAMES): Same.
3248         (REG_CLASS_CONTENTS): Same.
3249         (REGNO_REG_CLASS): Same.
3250         (REGISTER_NAMES): Same.
3251         (DEBUG_REGISTER_NAMES): Same.
3252         (ADDITIONAL_REGISTER_NAMES): Same.
3253         (CALL_USED_REGISTERS): Same.
3254         (CALL_REALLY_USED_REGISTERS): Same.
3255         (SPE_ACC_REGNO): New.
3256         (SPEFSCR_REGNO): New.
3257         (SPE_SIMD_REGNO_P): New.
3258         (HARD_REGNO_NREGS): Adjust for SPE.
3259         (VECTOR_MODE_SUPPORTED_P): Same.
3260         (REGNO_REG_CLASS): Same.
3261         (FUNCTION_VALUE): Same.
3262         (LIBCALL_VALUE): Same.
3263         (LEGITIMATE_OFFSET_ADDRESS_P): Same.
3264         (SPE_VECTOR_MODE): New.
3265         (CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
3266         the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
3267         (rs6000_stack): Add spe_gp_size, spe_padding_size,
3268         spe_gp_save_offset.
3269         (USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
3270         (LEGITIMATE_LO_SUM_ADDRESS_P): Same.
3271         (SPE_CONST_OFFSET_OK): New.
3272         (rs6000_builtins): Add SPE builtins.
3273
3274         * testsuite/gcc.dg/ppc-spe.c: New.
3275
3276         * config/rs6000/eabispe.h: New.
3277
3278         * config/rs6000/spe.h: New.
3279
3280         * config/rs600/spe.md: New.
3281
3282         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3283         __SIMD__ for TARGET_SPE.
3284
3285         * config.gcc: Add powerpc-*-eabispe* case.
3286         Add spe.h to user headers for powerpc.
3287
3288 2002-07-24  Chris Demetriou  <cgd@broadcom.com>
3289
3290         * config/mips/elf.h (STARTFILE_SPEC): Undo previous change.
3291         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
3292         * config/mips/isa3264.h (STARTFILE_SPEC): Likewise.
3293
3294 2002-07-24  Richard Henderson  <rth@redhat.com>
3295
3296         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
3297         form when not optimizing.
3298
3299 2002-07-24  David Mosberger  <davidm@hpl.hp.com>
3300
3301         * config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
3302         thread_pointer_rtx as unchanging.
3303
3304 2002-07-24  Michael Matz  <matz@suse.de>
3305
3306         * ra-colorize.c (INV_REG_ALLOC_ORDER): New macro.
3307         (free_reg): Use it.
3308
3309 2002-07-24  Richard Earnshaw  <rearnsha@arm.com>
3310
3311         * arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output
3312         pattern.
3313         (arm_buneq_reversed, arm_bltgt_reversed): Likewise.
3314         (movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT.
3315
3316 2002-07-24  Chris Demetriou  <cgd@broadcom.com>
3317
3318         * config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o.
3319         * config/mips/elf64.h (STARTFILE_SPEC): Likewise.
3320         * config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine.
3321
3322 Wed Jul 24 17:59:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
3323
3324         * toplev.c (rest_of_compilation): Dump loops before clobbering
3325         the structure.
3326
3327 Wed Jul 24 17:23:16 CEST 2002  Jan Hubicka  <jh@suse.cz>
3328
3329         * rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs.
3330
3331 2002-07-24  Frank van der Linden  <fvdl@wasabisystems.com>
3332
3333         PR optimization/7291
3334         * config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment
3335         problem on x86_64.
3336
3337 2002-07-24  Gabriel Dos Reis  <gdr@nerim.net>
3338
3339         * pretty-print.h: Add macros from cp/error.c
3340
3341 2002-07-24  Alan Modra  <amodra@bigpond.net.au>
3342
3343         * config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare.
3344         (mask64_2_operand): Declare.
3345         (build_mask64_2_operands): Declare.
3346         (and64_2_operand): Declare.
3347         (extract_MB): Declare.
3348         (extract_ME): Declare.
3349         * config/rs6000/rs6000.c (mask64_operand): Allow all ones.  Remove
3350         CONST_DOUBLE code.
3351         (mask_operand_wrap): New insn predicate.
3352         (mask64_2_operand): Likewise.
3353         (and64_2_operand): Likewise.
3354         (build_mask64_2_operands): New function.
3355         (extract_MB): New function.
3356         (extract_ME): New function.
3357         (print_operand <case m,M>): Use extract_MB and extract_ME.
3358         (print_operand <case S>): Allow all ones.  Remove CONST_DOUBLE support.
3359         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'.
3360         (PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and
3361         mask64_2_operand.  Remove CONST_DOUBLE from mask64_operand.
3362         * config/rs6000/rs6000.md (andsi3_internal3): New
3363         (andsi3_internal3+1): Enable split for powerpc64.
3364         (andsi3_internal3+2): New split.
3365         (andsi3_internal4): Renamed old andsi3_internal3.
3366         (andsi3_internal5): New.
3367         (andsi3_internal5+1): Enable split for powerpc64.
3368         (andsi3_internal5+2): New split.
3369         (andsi3_internal6, andsi3_internal7, andsi3_internal8): New.
3370         (anddi3): Handle 't' constraint.
3371         (anddi3+1): New split.
3372         (anddi3_internal2): Handle 't' constraint.
3373         (anddi3_internal2+1): New split.
3374         (anddi3_internal3): Handle 't' constraint.
3375         (anddi3_internal3+1): New split.
3376
3377 2002-07-24  Alan Modra  <amodra@bigpond.net.au>
3378
3379         * config/rs6000/rs6000.md: Remove scratch reg on insns using
3380         addze and similar (plus (comparison r1 r2) r3) insns.  Add
3381         missing scratch reg in one case.  Formatting fixes.
3382
3383 2002-07-24  Neil Booth  <neil@daikokuya.co.uk>
3384
3385         * cppexp.c (parse_defined): Mark macro used.
3386         * cpphash.h (struct cpp_macro): New member "used".
3387         (_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New.
3388         (struct cpp_reader): New member.
3389         * cppinit.c (cpp_finish_options): Set first_unused_line.
3390         (cpp_finish): Warn of unused macros if requested.
3391         (OPT_TABLE): New switches.
3392         (cpp_handle_option): Handle them.
3393         * cpplib.c (do_undef): Warn if macro unused.
3394         (do_ifdef, do_ifndef): Mark macro used.
3395         * cpplib.h (struct cpp_options): New member.
3396         * cppmacro.c (_cpp_warn_if_unused_macro): New.
3397         (enter_macro_context): Mark macro used.
3398         (_cpp_create_definition): Mark macro unused; warn if unused
3399         when redefined.
3400         * cpptrad.c (scan_out_logcial_line, push_replacement_text):
3401         Mark macros used.
3402         * doc/cppopts.texi: Update.
3403
3404 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3405
3406         * dwarf2out.c (SECTION_ASM_OP,
3407         ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
3408         * system.h (SECTION_ASM_OP): Poison.
3409         * tree.c (FILE_FUNCTION_PREFIX_LEN): Remove.
3410         * config/alpha/alpha-interix.h, config/mips/linux.h
3411         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
3412         * config/mmix/mmix-protos.h, config/mmix/mmix.c
3413         (mmix_asm_output_define_label_difference_symbol): Remove.
3414         * config/mmix/mmix.h
3415         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
3416         * doc/tm.texi: Remove documentation.
3417
3418 Tue Jul 23 21:49:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
3419
3420         * recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
3421         (constrain_operands): Likewise.
3422         * regclass.c (record_reg_classes): Likewise.
3423         * reload.c (find_reloads): Likewise.
3424         * doc/md.texi: Likewise.
3425
3426         * reload.c (find_reloads_toplev): Use simplify_gen_subreg.
3427         * simplify-rtx.c (simplify_subreg): When converting to a non-int
3428         mode, try to convert to an integer mode of matching size first.
3429
3430         * simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR
3431         from individual subregs, check that each subreg has been generated
3432         sucessfully.
3433
3434 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3435
3436         * genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
3437         * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
3438         FOR_EACH_BB_IN_SBITMAP): Remove.
3439         * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
3440         * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
3441         LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
3442         * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
3443         PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
3444         * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.
3445
3446 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
3447
3448         * pretty-print.h: New file.
3449
3450 2002-07-23      Paul Koning     <pkoning@equallogic.com>
3451
3452         * real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC.
3453         (LARGEST_EXPONENT_IS_NORMAL): Ditto.
3454         (VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
3455         (TARGET_G_FLOAT): Default to 0 if not defined.
3456         (ieeetoe): New, common routine to convert target format floats
3457         to internal form.
3458         (e24toe, e53toe): Change to use ieeetoe, distinguish DEC
3459         vs. others.
3460         (e113toe): Change to use ieeetoe.
3461
3462 2002-07-23  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
3463
3464         * real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for
3465         IBM.
3466         (e53toe): Assume IEEE if non of DEC, IBM and C4X is defined.
3467         (e64toe): Remove special cases for DEC and IBM. Remove support for
3468         ARM_EXTENDED_IEEE_FORMAT.
3469         (e24toe): Remove special cases for DEC.
3470         (significand_size): Simplify. Indent.
3471         (ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New.
3472         (etoieee, toieee): New.
3473         (etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use
3474         etoieee and toieee for IEEE arithmetic.
3475
3476 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
3477
3478         * doc/extend.texi: Say ISO C90, not ISO C89.
3479         * doc/invoke.texi: Likewise.
3480         * doc/standards.texi: Likewise.
3481
3482 2002-07-23  Steve Ellcey  <sje@cup.hp.com>
3483
3484         * gcc/explow.c (convert_memory_address): Fix conversion of CONSTs.
3485         Fix permutation of conversion and plus/mult.
3486         * gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is
3487         ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined.
3488         (expand_builtin_strncpy) Ditto.
3489         (expand_builtin_memset) Ditto.
3490
3491 2002-07-23  Gabriel Dos Reis  <gdr@nerim.net>
3492
3493         Fix PR/7363:
3494         * c-common.c (c_sizeof_or_alignof_type): New function.
3495         (c_alignof): Remove definition.
3496         * c-common.h (c_sizeof, c_alignof): Define as macros.
3497         (c_sizeof_or_alignof_type): Declare.
3498         (my_friendly_assert): Moved from cp/cp-tree.h
3499         * c-typeck.c (c_sizeof): Remove definition.
3500
3501 2002-07-23  Jan Hubicka  <jh@suse.cz>
3502
3503         * gcse.c (try_replace_reg): Use num_changes_pending.
3504         * recog.c (num_changes_pending): New function.
3505         (validate_replace_src): Use validate_repalce_src_group.
3506         (validate_replace_src_group): New.
3507         * recog.h (validate_repalce_src_group): New.
3508         (num_changes_pending): Likewise.
3509
3510 Tue Jul 23 12:16:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
3511
3512         * calls.c (emit_library_call_value_1): If
3513         FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
3514         libcall, const call nor pure call.
3515
3516 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3517
3518         * config/m88k/m88k.h (SECTION_ASM_OP): Remove.
3519
3520 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3521
3522         * vmsdbgout.c (SECTION_ASM_OP): Remove.
3523
3524 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3525
3526         * config/i386/i386.c (AT_BP): Remove.
3527
3528 2002-07-23  Neil Booth  <neil@daikokuya.co.uk>
3529
3530         * defaults.h (obstack_chunk_alloc, obstack_chunk_free):
3531         Default definition.
3532         * gcse.c: Don't define obstack_chunk_free.
3533         * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
3534         flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
3535         integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
3536         reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
3537         Don't define obstack macros.
3538
3539 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
3540
3541         PR target/6744
3542         * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace
3543         ASM_OPERANDS instructions.
3544
3545 2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>
3546
3547         PR target/7361
3548         * config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
3549         constant addresses only on 68HC12.
3550
3551 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
3552
3553         * cppfiles.c (stack_include_file): Correct test of whether
3554         a dependency should be output.
3555
3556 2002-07-22  David Edelsohn  <edelsohn@gnu.org>
3557
3558         * collect2.c (is_ctor_dtor): Add other possible JOINER values.
3559
3560 2002-07-22  Richard Earnshaw  <rearnsha@arm.com>
3561
3562         * arm.md (movqi): If optimizing and we can create pseudos, use
3563         a ZERO_EXTEND to load from memory, then copy the result into the
3564         target.
3565         (movhi): Likewise, but only for ARMv4.
3566
3567 2002-07-22  Neil Booth  <neil@daikokuya.co.uk>
3568
3569         * ssa-ccp.c (PHI_PARMS): Remove.
3570
3571 2002-07-22  Richard Sandiford  <rsandifo@redhat.com>
3572
3573         * config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS
3574         on big-endian targets.
3575
3576 2002-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3577
3578         * hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE,
3579         HOST_WIDE_INT_PRINT_UNSIGNED_SPACE,
3580         HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE):
3581         New formatting macros.
3582
3583         * ra-debug.c (dump_static_insn_cost): Avoid string concatenation.
3584
3585 Mon Jul 22 15:27:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
3586
3587         * rtlanal.c (subreg_regno_offset): Return correct offset for
3588         big endian paradoxical subregs.
3589
3590         * optabs.c (expand_vector_unop): Don't expand using sub_optab
3591         if we got the wrong mode.
3592
3593         * hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define.
3594         * genrecog.c (write_switch, write_cond): Use it.
3595         * genemit.c (gen_exp): Likewise.
3596
3597 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
3598
3599         * c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE.
3600
3601 2002-07-22  Jakub Jelinek  <jakub@redhat.com>
3602
3603         * c-decl.c (build_compound_literal): Defer compound literal decls
3604         until until file end to emit them only if they are actually used.
3605
3606 2002-07-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3607
3608         * ra-build.c (check_conflict_numbers): Hide unused function.
3609         (livethrough_conflicts_bb): Avoid automatic aggregate
3610         initialization.
3611         (parts_to_webs_1): Avoid `U' integer constant modifier.
3612         (conflicts_between_webs): Wrap a variable in the macro controlling
3613         its usage.
3614         * ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE.
3615         (dump_igraph, dump_graph_cost): Avoid string concatenation
3616         (dump_static_insn_cost): Avoid automatic aggregate
3617         initialization.
3618         * ra-rewrite.c (insert_stores): Avoid automatic aggregate
3619         initialization.
3620         (dump_cost): Avoid string concatenation
3621
3622 2002-07-21  Richard Henderson  <rth@redhat.com>
3623
3624         * expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use
3625         GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded.
3626
3627 2002-07-21  Richard Henderson  <rth@redhat.com>
3628
3629         * unroll.c (find_splittable_givs): Do not split DEST_ADDR givs
3630         that are not unrolled completely.
3631
3632 2002-07-21  Richard Henderson  <rth@redhat.com>
3633
3634         * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
3635         * loop.c (strength_reduce): Update.
3636         * toplev.c (rest_of_compilation): Do unrolling in the first
3637         loop pass, not the second.
3638
3639 2002-07-21  Richard Henderson  <rth@redhat.com>
3640
3641         * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
3642         when flag_argument_noalias == 2.
3643         * alias.c (nonoverlapping_memrefs_p): Handle that.
3644         * print-rtl.c (print_mem_expr): Likewise.
3645
3646 2002-07-21  Hartmut Schirmer  <hartmut.schirmer@arcor.de>
3647
3648         * libgcc2.c (__divdi3, __moddi3): Use unary minus operator
3649         instead of __negdi2 directly.
3650
3651 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
3652
3653         * gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
3654         * function.c (SYMBOL__MAIN): Remove definition.
3655         * global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
3656         * predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.
3657         * profile.c (GCOV_INDEX_TO_BB): Remove.
3658         * sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
3659         * simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.
3660
3661 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
3662
3663         * c-lex.c (GET_ENVIRONMENT): Remove.
3664         * collect2.c (GET_ENV_PATH_LIST): Remove.
3665         (prefix_from_env): Use GET_ENVIRONMENT.
3666         * cppinit.c (GET_ENV_PATH_LIST): Remove.
3667         (init_standard_includes): Use GET_ENVIRONMENT.
3668         * defaults.h (GET_ENVIRONMENT): Define here if not already.
3669         * gcc.c (GET_ENV_PATH_LIST): Remove.
3670         (make_relative_prefix, process_command): Update.
3671         * protoize.c (GET_ENV_PATH_LIST): Remove.
3672         (do_processing): Update.
3673
3674 2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>
3675
3676         * c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'.
3677         (grokdeclarator): Likewise.
3678         * c-format.c (C_STD_NAME): Likewise.
3679         * c-lex.c (interpret_integer): Likewise.
3680         * c-typeck.c (build_array_ref): Likewise.
3681         * cpplex.c (_cpp_lex_direct): Likewise.
3682         * toplev.c (documented_lang_options): Likewise.
3683
3684 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
3685
3686         * c-format.c (T99_I, T99_UI): Remove.
3687
3688 2002-07-21  Neil Booth  <neil@daikokuya.co.uk>
3689
3690         * c-typeck.c (SAVE_SPELLING_DEPTH): Remove.
3691
3692 Sun Jul 21 21:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3693
3694         * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
3695         do_local_cprop.
3696
3697 2002-07-21  Andreas Jaeger  <aj@suse.de>
3698
3699         * reload1.c (fixup_abnormal_edges): Remove unused variable.
3700
3701 2002-07-21  Bernd Schmidt  <bernds@redhat.com>
3702
3703         Improvements for the ifcvt pass from Michael Meissner, with patches
3704         by Richard Sandiford <rsandifo@redhat.com>
3705         * basic-block.h (struct ce_if_block, ce_if_block_t): New types.
3706         * ifcvt.c (cond_exec_changed_p): New static variable.
3707         (last_active_insn): New function, renamed from last_active_insn_p
3708         and changed to return the last active insn in a basic block. All
3709         callers updated.
3710         (block_fallthru): New function.
3711         (cond_exec_process_insns): New argument CE_INFO.  Pass it to
3712         IFCVT_MODIFY_INSN.  All callers updated.
3713         Return false if START or END are NULL.
3714         Handle case where we're processing an insn that is already
3715         conditional.
3716
3717         (noce_process_if_block): CE_INFO argument rather than
3718         multiple args containing the involved basic blocks.  All callers
3719         changed.
3720         (process_if_block, merge_if_block, find_if_block,
3721         cond_exec_process_if_block): Likewise.
3722
3723         (cond_exec_process_if_block): New arg DO_MULTIPLE_P.  All callers
3724         changed.
3725         Use new function last_active_insn to simplify some code.
3726         New code to handle multiple tests.
3727         Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set
3728         cond_exec_changed_p to TRUE.
3729
3730         (process_if_block): New code to handle multiple tests.
3731         (merge_if_block): Likewise.
3732         (find_if_header): New arg PASS.  Changed to return the currently
3733         processed basic block or NULL instead of true/false. All callers
3734         changed.
3735         Call IFCVT_INIT_EXTRA_FIELDS.
3736         (block_jumps_and_fallthru_p): New function.
3737         (find_if_block): Discover opportunities to convert multiple tests.
3738         Add additional debugging output.
3739         Update the ce_info structure before returning.
3740
3741         (if_convert): Run multiple passes of if-conversion.
3742         * doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN,
3743         IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS,
3744         IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
3745         these macros.
3746
3747 Sun Jul 21 00:54:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3748
3749         * gcse.c: Include cselib.h
3750         (constptop_register): Break out from ...
3751         (cprop_insn): ... here; kill basic_block argument.
3752         (do_local_cprop, local_cprop_pass): New functions.
3753         (one_cprop_pass): Call local_cprop_pass.
3754
3755 2002-07-20  Roger Sayle  <roger@eyesopen.com>
3756
3757         * simplify-rtx.c (simplify_relational_operation): Optimize
3758         abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math).
3759
3760 2002-07-20  Michae Matz  <matz@suse.de>
3761
3762         * ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS.
3763
3764 2002-07-20  Neil Booth  <neil@daikokuya.co.uk>
3765
3766         * cppexp.c (struct op): Add token pointer.
3767         (check_promotion, CHECK_PROMOTION): New.
3768         (optab): Update.
3769         (_cpp_parse_expr): Update, use token pointer of struct op.
3770         (reduce): Warn about change of sign owing to promotion.
3771         * cppinit.c (cpp_handle_option): New warning if -Wall.
3772         * cpplib.h (struct cpp_options): New member.
3773
3774 2002-07-19  David Edelsohn  <edelsohn@gnu.org>
3775
3776         * config/rs6000/rs6000.md: Remove ppc630 fpcompare from single
3777         fpu list.  Separate Power4 compare and delayed_compare.  Correct
3778         Power4 fpcompare.
3779         (fix_truncdfsi2_internal): Restore FPR preference.
3780         * config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3,
3781         mcpu?power4, mcpu?604e.  Remove mpower, mpower2, mpowerpc.
3782
3783 2002-07-19  Momchil Velikov <velco@fadata.bg>
3784
3785         * reload1.c (reload_as_needed): Duplicate oldpat.
3786
3787 2002-07-20  Alan Modra  <amodra@bigpond.net.au>
3788
3789         PR optimization/7130
3790         * loop.h (struct loop_info): Add "preconditioned".
3791         * unroll.c (unroll_loop): Set it.
3792         * doloop.c (doloop_modify_runtime): Correct count for unrolled loops.
3793
3794 2002-07-19  Zack Weinberg  <zack@codesourcery.com>
3795
3796         * rtl.def (CODE_LABEL): Remove slot 8.
3797         * rtl.h (struct rtx_def): Document new uses of jump and call fields.
3798         (LABEL_ALTERNATE_NAME): Delete.
3799         (LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
3800         * defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.
3801
3802         * final.c (output_alternate_entry_point): New.
3803         (final_scan_insn): Use it instead of
3804         ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
3805         of a case label being an alternate entry point.
3806
3807         * cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
3808         * emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
3809         Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
3810         (field deleted).
3811         * print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.
3812
3813         * doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
3814         LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
3815         * doc/tm.texi: Delete documentation of
3816         ASM_OUTPUT_ALTERNATE_LABEL_NAME.
3817
3818 2002-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3819
3820         * config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define.
3821         (PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG.
3822         (LINK_SPEC): Define.
3823         (STARTFILE_SPEC): Define.
3824         (ENDFILE_SPEC): Define.
3825
3826         * config/mips/iris6-o32.h (LINK_SPEC): Move ...
3827         * config/mips/iris6-o32-as.h (LINK_SPEC): ... here.
3828
3829         * config/mips/iris6-o32-gas.h: New file.
3830         * config.gcc (mips-sgi-irix6*o32): Use it.
3831
3832         * config/mips/t-iris5-gas: New file.
3833         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
3834
3835 2002-07-19  Neil Booth  <neil@daikokuya.co.uk>
3836
3837         * cppexp.c (ALWAYS_EVAL): Remove.
3838         (optab, reduce): Always evaluate.
3839         (num_unary_op, num_binary_op, num_div_op): Issue diagnostics
3840         only if not skipping evaluation.
3841
3842 2002-07-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3843
3844         * config/avr/avr.c (debug_hard_reg_set): Remove.
3845
3846 2002-07-19  Chris Demetriou  <cgd@broadcom.com>
3847
3848         * gcc.c (cpp_options): Include "%1" (cc1_spec).
3849
3850 2002-07-19  Richard Henderson  <rth@redhat.com>
3851
3852         * loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.
3853
3854 2002-07-19  Alan Modra  <amodra@bigpond.net.au>
3855
3856         * prefix.c (update_path): Don't zap single `.' path components
3857         unless followed by another `.' and fix typo last patch.
3858
3859 2002-07-18  Neil Booth  <neil@daikokuya.co.uk>
3860
3861         * cppexp.c (cpp_num_mul): Remove unused parameter.
3862         (UNARY, BINARY, OTHER, binary_handler): Remove.
3863         (ALWAYS_EVAL): New.
3864         (optab): Update.
3865         (reduce): Refactor to a large switch, don't use a function
3866         pointer.
3867
3868 2002-07-18  Bo Thorsen  <bo@berlioz.suse.de>
3869
3870         * config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.
3871
3872 Thu Jul 18 19:39:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
3873
3874         * sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
3875         (sh_expand_binop_v2sf): Likewise.
3876         * sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA.
3877         (int_gpr_dest, trunc_hi_operand): New functions.
3878         * sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and
3879         trunc_hi_operand.
3880         (SPECIAL_MODE_PREDICATES, any_register_operand): Define.
3881         * sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about.
3882         (adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise.
3883         (ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise.
3884         (and_shl_scratch+[12], zero_extendhidi2+1): Likewise.
3885         (zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise.
3886         (extendhisi2_media+1, extendqisi2_media+1): Likewise.
3887         (movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise.
3888         (movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise.
3889         (movsf_ie+1): Likewise.
3890         (loaddi_trunc): Use int_gpr_dest predicate.
3891         (use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s).
3892         (mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise.
3893         (casesi_worker_0+[12], casesi_worker): Likewise.
3894         (shcompact_preserve_incoming_args): Likewise.
3895         (mov_nop): Use any_register_operand predicate.
3896         (mperm_w0): Use trunc_hi_operand predicate.
3897
3898 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3899
3900         * pa-linux.h (DWARF2_UNWIND_INFO): Delete define.
3901         * pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct
3902         numbering.
3903
3904 2002-07-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3905
3906         * pa.c (output_deferred_plabels): Remove unused millicode enum mulU.
3907
3908 2002-07-18  Richard Henderson  <rth@redhat.com>
3909
3910         PR optimization/7147
3911         * ifcvt.c (noce_get_condition): Make certain that the condition
3912         is valid at JUMP.
3913
3914 Thu Jul 18 13:44:51 2002  J"orn Rennecke <joern.rennecke@superh.com>
3915
3916         * sh.c (barrier_align, push): Shut up compiler warnings.
3917         (initial_elimination_offset,sh_media_init_builtins): Likewise.
3918         (reg_no_subreg_operand): Delete.
3919
3920 2002-07-17  Bo Thorsen  <bo@suse.de>
3921
3922         * config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option.
3923         (STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations.
3924         (STARTFILE_SPEC): Remove hardcoded library paths.
3925         (ENDFILE_SPEC): Likewise.
3926
3927 Thu Jul 18 09:38:59 CEST 2002  Jan Hubicka  <jh@suse.cz>
3928
3929         * gcse.c (hoist_expr_reaches_here_p):  Stop once expr_bb is reached.
3930
3931         * gcse.c (try_replace_reg): Do not return false positives.
3932
3933 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
3934
3935         * prefix.c: (update_path): Strip ".." components when prior dir
3936         doesn't exist.  Pass correct var to UPDATE_PATH_HOST_CANONICALIZE.
3937
3938         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support.
3939         (ASM_OUTPUT_REG_POP): Likewise.
3940
3941 2002-07-18  Alan Modra  <amodra@bigpond.net.au>
3942
3943         * config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
3944         adjustments to first_reg for profiling case.
3945         (output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
3946         Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
3947         Save static chain reg to sp + 12 on ABI_AIX_NODESC.
3948         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
3949         (ASM_OUTPUT_REG_POP): Define.
3950         * config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
3951         (ASM_OUTPUT_REG_POP): Undef.
3952
3953 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
3954
3955         * cpplib.c (do_sccs): Handle #sccs on all systems.
3956         * system.h (SCCS_DIRECTIVE): Poison.
3957         * config/darwin.h, config/freebsd.h, config/netbsd.h,
3958         config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h,
3959         config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h,
3960         config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h,
3961         config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h,
3962         config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h,
3963         config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h,
3964         config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h:
3965         Remove all references to SCCS_DIRECTIVE.
3966         * doc/cpp.texi, doc/tm.texi: Update.
3967
3968 Wed Jul 17 19:23:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
3969
3970         * regrename.c (maybe_mode_change): New function.
3971         (find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.
3972
3973 2002-07-17  Rodney Brown  <rbrown64@csc.com.au>
3974
3975         * config/i386/i386.c (ix86_expand_int_movcc): In the general case
3976         suppress addition when either ct or cf are zero.
3977
3978 2002-06-17  Eric Botcazou <ebotcazou@multimania.com>
3979             Glen Nakamura <glen@imodulo.com>
3980
3981         PR optimization/6713
3982         * loop.c (loop_givs_rescan): Explicitly delete the insn that
3983         sets a non-replaceable giv after issuing the new one.
3984
3985 2002-07-17  Neil Booth  <neil@daikokuya.co.uk>
3986
3987         * cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
3988         eval_token): Clarify and correct use of "bool" variables.
3989         * cpplib.h (struct cpp_options): Similarly.
3990         * cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
3991         * cpptrad.c (recursive_macro): Similarly.
3992
3993 Wed Jul 17 17:08:06 2002  J"orn Rennecke <joern.rennecke@superh.com>
3994
3995         * config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
3996         SHmedia code.
3997
3998         * sh.md (cmpgtudi_media): Remove spurious @.
3999
4000         * config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian.
4001         * sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian.
4002
4003         * config/sh/lib1funcs.asm (init_trampoline): New entry point.
4004         * sh-protos.h (sh_initialize_trampoline): Declare.
4005         * sh.c (sh_initialize_trampoline): New function.
4006         * sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32.
4007         (TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA.
4008         (INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline.
4009         (TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact.
4010         * sh.md (initialize_trampoline, double_shori): New patterns.
4011         (initialize_trampoline_compact): Likewise.
4012         (shmedia32_initialize_trampoline_big): Remove.
4013         (shmedia32_initialize_trampoline_little): Likewise.
4014
4015         * sh-protos.h (binary_float_operator): Remove declaration.
4016         (sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare.
4017         * sh.c (print_operand, case 'N'): Check against CONST0_RTX.
4018         (unary_float_operator, sh_expand_unop_v2sf): New functions.
4019         (sh_expand_binop_v2sf): Likewise.
4020         (zero_vec_operand): Delete.
4021         (SH_BLTIN_UDI): New builtin shared signature define.  Renumbered
4022         all non-shared ones.
4023         (bdesc): Change all the mextr builtins to use SH_BLTIN_UDI.
4024         Enable nsb and byterev.
4025         * sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS.
4026         (HARD_REGNO_MODE_OK): Allow TImode in fp regs.  Allow V2SFmode
4027         in general regs.
4028         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS.
4029         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.  Remove clause for
4030         immediate operands.
4031         (SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands.
4032         Add DF_HI_REGS.
4033         (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow
4034         lowpart fp regs - only for big endian for now.
4035         (LEGITIMATE_CONSTANT_P): Don't allow non-zero float vectors
4036         when FPU is in use.
4037         (EXTRA_CONTRAINT_U): Check against CONST0_RTX.
4038         (LOAD_EXTEND_OP): NIL for SImode.
4039         (REGISTER_MOVE_COST): Add DF_HI_REGS.  Const for moves between
4040         general and fp registers is 4.
4041         PREDICATE_CODES: Amend binary_float_operator entry.
4042         Remove zero_vec_operand.  Add unary_float_operator.
4043         * sh.md (udivsi3_i4_media): Use truncate instead of paradoxical
4044         subreg SET_DEST.
4045         (truncdisi2, truncdihi2, movv2sf): Allow memory destinations.
4046         (truncdiqi2): Do sign extension.
4047         (movsi_media, movdi_media): Allow to use r63 to an fp register.
4048         (movdf_media, movsf_media): Likewise.
4049         (movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS.
4050         Collapse to one define_insn_and_split.  Allow immediate sources.
4051         (addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns.
4052         (movv4sf_i): Allow immediate sources.  Use simplify_gen_subreg.
4053         (movv4sf): Allow immediate sources.
4054         (movsf_media_nofpu+1): Don't split moves to FP registers.
4055         (unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns.
4056         (movv8qi_i+3): Check against CONST0_RTX.
4057         (mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode
4058         for input and output operands.  Fix argument 3 to gen_mextr_rl.
4059         (mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/
4060         (msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise.
4061         (mshf0_w, fipr, ftrv): Likewise.
4062         (mshfhi_l_di): Now insn_and_split.  Can handle FP regs.
4063
4064 2002-07-17  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
4065
4066         * arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from
4067         NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively.  All uses changed.
4068         * arm.c: Similarly.
4069
4070 2002-07-17  Richard Sandiford  <rsandifo@redhat.com>
4071
4072         * config/mips/mips-protos.h (mips_sign_extend): Declare.
4073         * config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove.
4074         (TARGET_SWITCHES): Remove debugh.
4075         (ISA_HAS_TRUNC_W): New macro.
4076         (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64.
4077         (PREDICATE_CODES): Remove se_nonimmediate_operand.
4078         * config/mips/mips.c (movdi_operand): Allow sign-extensions of
4079         any SImode move_operand.
4080         (se_nonimmediate_operand): Remove.
4081         (mips_sign_extend): New.
4082         (mips_move_2words): Use it for sign-extended source operands.
4083         (override_options): Allow integers to be put into single FPRs.
4084         (mips_secondary_reload_class): Handle integers in float registers.
4085         * config/mips/mips.md (extendsidi2): Turn into a define_expand.
4086         (fix_truncsfsi2, fix_truncdfsi2): Likewise.
4087         (fix_truncdfsi2_insn, fix_truncdfsi2_macro): New.
4088         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): New.
4089         (fix_truncdfdi2): Provide only a single alternative, in which the
4090         integer is in a float register.  Depend on TARGET_FLOAT64 rather
4091         than TARGET_64BIT.
4092         (fix_truncsfdi2, floatdidf2, floatdisf2): Likewise.
4093         (floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency.
4094         (movdi_internal2): Don't allow the source operand to be sign-extended.
4095         Add alternatives for float registers.
4096         (*movdi_internal2_extend): New.  Version of movdi_internal2 that
4097         allows sign-extension.
4098         (*movdi_internal2_mips16): Name the existing mips16 movdi pattern.
4099         (movsi_internal2): Rename to movsi_internal.  Add alternatives for
4100         float registers.  Remove TARGET_DEBUG_H_MODE test.
4101         (movhi_internal1): Rename to movhi_internal.  Don't check
4102         TARGET_DEBUG_H_MODE.  Fix transposed *d and *f source constraints.
4103         (movqi_internal1): Rename to movqi_internal and remove
4104         TARGET_DEBUG_H_MODE dependency.
4105         (movsi_internal1, movhi_internal2, movqi_internal2): Remove.
4106
4107 2002-07-16  Jim Wilson  <wilson@redhat.com>
4108
4109         * toplev.c (lang_dependent_init): Create function context for
4110         init_expr_once.
4111
4112 2002-07-16  Hans-Peter Nilsson  <hp@axis.com>
4113
4114         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't
4115         --gc-sections if -r.
4116         * config/cris/cris.h: Ditto.
4117
4118 2002-07-16  Rodney Brown  <rbrown64@csc.com.au>
4119
4120         * config/i386/i386.c (ix86_expand_int_movcc): In the case where
4121         the comparison directly gives a mask suppress addition when cf is
4122         zero by complementing the mask.
4123
4124 2002-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>
4125
4126         * Makefile.in: Delete references to enquire.
4127         * enquire.c: Move to contrib.
4128
4129 2002-07-16  Stan Shebs  <shebs@apple.com>
4130
4131         * config/darwin.h (ASM_OUTPUT_LABEL): Move to here from
4132         config/rs6000/darwin.h.
4133         (ASM_OUTPUT_SKIP): Ditto.
4134         (TEXT_SECTION_ASM_OP): Ditto.
4135         (DATA_SECTION_ASM_OP): Ditto.
4136         (ASM_APP_ON): Define.
4137         (ASM_APP_OFF): Define.
4138         * config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP,
4139         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove.
4140
4141         * config/darwin.c (func_name_maybe_scoped): Remove unused decl.
4142         (machopic_function_base_name): Declare result to be const.
4143         (machopic_non_lazy_ptr_name): Ditto.
4144         (machopic_stub_name): Ditto.
4145         * config/darwin-protos.h: Ditto for the prototypes.
4146
4147 Wed Jul 17 00:22:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
4148
4149         * m68hc11.c (m68hc11_reorg): Do not rebuild CFG.
4150
4151 Wed Jul 17 00:20:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
4152
4153         * i386.md (prefetch): Fix for 64bit mode.
4154         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
4155
4156 Wed Jul 17 00:19:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
4157
4158         * i386.h (MACHINE_DEPENDENT_REORG): New macro.
4159         * i386.c (x86_machine_dependent_reorg): New function.
4160         * i386-protos.h (x86_machine_dependent_reorg): Declare.
4161
4162 2002-07-16  Zack Weinberg  <zack@codesourcery.com>
4163
4164         * builtins.c (std_expand_builtin_va_start): Remove unused
4165         first argument.
4166         (expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
4167         std_expand_builtin_va_start with just two arguments.
4168         * expr.h: Update prototypes.
4169
4170         * alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
4171         arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
4172         i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
4173         m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
4174         mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
4175         rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
4176         s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
4177         sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
4178         xtensa-protos.h, xtensa.h, xtensa.c:  Remove unused first
4179         argument from all implementations of EXPAND_BUILTIN_VA_START
4180         and all uses of std_expand_builtin_va_start.
4181
4182 Tue Jul 16 19:32:58 2002  J"orn Rennecke <joern.rennecke@superh.com>
4183
4184         * regrename.c (copy_value): Don't record high part copies.
4185
4186 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
4187
4188         * gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define.
4189         (fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL.
4190         * gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function.
4191
4192 2002-07-16  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
4193
4194         * doc/invoke.texi (NS32K Options): Document -mieee-compare option
4195
4196         * config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge
4197         into addsi3 using register class "x" and "y".
4198
4199         * config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf):
4200         "earlyclobber" constraint modifier for some alternative.
4201
4202         * config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble)
4203         (*ble, *blt): Flag to indicate bCOND and sCOND should check for
4204         unordered.
4205         config/ns32k/ns32k.h (CC_UNORD): define corresponding mask.
4206
4207         * config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE)
4208         (TARGET_SWITCHES): Add -mieee-compare option.
4209         (OVERRIDE_OPTIONS): 32332 is a subset of
4210         32532. Don't use IEEE_COMPARE -funsafe-math-optimizations.
4211         (TARGET_SWITCHES): Fix description of bitfield option.
4212         * config/ns32k/netbsd.h (TARGET_DEFAULT): Add
4213         -mieee-compare option. Remove 32332 flag.
4214
4215 2002-07-16  Steve Ellcey  <sje@cup.hp.com>
4216
4217         * explow.c (convert_memory_address): Remove special handling
4218         when POINTERS_EXTEND_UNSIGNED < 0.
4219         * config/ia64.md (movsi_symbolic): New instruction for ILP32 mode.
4220         (movedi_symbolic): Fix typo.
4221         (load_fptr): Remove mode restriction so it works for SI and DI.
4222         (load_fptr_internal1): Ditto.
4223         (load_gprel): Ditto.
4224         (load_symptr_internal1): Ditto.
4225         (call_pic): Ditto.
4226         * config/ia64.c (call_operand): Modify mode check.
4227         (ia64_expand_load_address): Handle DI and SI addresses and symbols.
4228         (ia64_expand_move): Ditto.
4229         (ia64_assemble_integer): Handle SImode function pointers.
4230         (ia64_expand_fetch_and_op): Handle SImode mem addresses.
4231         (ia64_expand_op_and_fetch): Ditto.
4232         (ia64_expand_compare_and_swap): Ditto.
4233         (ia64_expand_lock_test_and_set): Ditto.
4234         (ia64_expand_lock_release): Ditto.
4235
4236 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
4237
4238         * arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.
4239
4240 2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
4241             Richard Earnshaw  <rearnsha@arm.com>
4242
4243         * arm.h (LEGITIMATE_PIC_OPERAND_P): Only test
4244         CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.
4245
4246 2002-07-16  Richard Earnshaw  <rearnsha@arm.com>
4247
4248         * arm.md (stack_tie): New insn.  Use an idiom that the alias code
4249         understands to be a memory clobber.
4250         * arm.c (arm_expand_prologue): Use it.
4251
4252 2002-07-16  Daniel Berlin  <dberlin@dberlin.org>
4253
4254         * ra-rewrite.c: #include reload.h, insn-config.h
4255         * ra-build.c: #include reload.h
4256         * Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
4257         depend on reload.h, insn-config.h.
4258
4259 Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
4260
4261         * expr.c (emit_move_insn_1): Handle arbitrary moves that are
4262         the same size as a word.
4263
4264         * regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
4265         BYTES_BIG_ENDIAN into account.
4266
4267 Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
4268
4269         * i386.md (prefetch): Fix for 64bit mode.
4270         (prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
4271
4272         * i386.md (movss, movsd): Use xorps/xorpd for Athlon.
4273
4274 2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4275
4276         * hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.
4277
4278 2002-07-15  Zack Weinberg  <zack@codesourcery.com>
4279
4280         * ginclude/varargs.h: Replace with stub which issues #error.
4281         * ginclude/stdarg.h: __builtin_stdarg_start is renamed
4282         __builtin_va_start.
4283
4284         * builtins.def (BUILT_IN_VARARGS_START): Delete.
4285         (BUILT_IN_VA_START): New.
4286         * builtins.c (expand_builtin_va_start): Eliminate first
4287         argument and code to implement pre-ISO varargs.
4288         (std_expand_builtin_va_start): Ignore first argument; it is
4289         always 1.
4290         (expand_builtin): Handle BUILT_IN_VA_START and
4291         BUILT_IN_STDARG_START identically.  Delete
4292         BUILT_IN_VARARGS_START case.
4293
4294         * function.c (assign_parms): Delete hide_last_arg and all
4295         its uses.
4296         (mark_varargs): Delete function.
4297         * function.h (struct function): Delete 'varargs' bit.
4298         (current_function_varargs): Delete macro.
4299         * tree.h: Don't declare mark_varargs.
4300
4301         * c-decl.c (c_function_varargs, c_mark_varargs): Delete.
4302         (c_expand_body): Don't call mark_varargs.
4303         * c-objc-common.c: Handle BUILT_IN_VA_START and
4304         BUILT_IN_STDARG_START identically.  Delete
4305         BUILT_IN_VARARGS_START case.
4306         * c-tree.h: Don't declare c_mark_varargs.
4307         * c-parse.in: Remove grammar rules for '&...' (which has been
4308         commented out since before 2.7.2) and for '...' in K+R
4309         argument declarations.
4310
4311         * builtins.c, function.c, integrate.c, sibcall.c,
4312         config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
4313         config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
4314         config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
4315         config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
4316         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
4317         config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
4318         config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
4319         config/stormy16/stormy16.c: Delete all references to
4320         current_function_varargs, and code predicated on that flag.
4321
4322         * config/alpha/alpha.c (alpha_va_start),
4323         config/arc/arc.c (arc_va_start),
4324         config/i386/i386.c (ix86_va_start),
4325         config/mips/mips.c (mips_va_start),
4326         config/mn10300/mn10300.c (mn10300_va_start),
4327         config/rs6000/rs6000.c (rs6000_va_start),
4328         config/s390/s390.c (s390_va_start),
4329         config/sh/sh.c (sh_va_start),
4330         Ignore first argument; it is always 1.
4331
4332         * config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
4333         * config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
4334         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
4335         Delete m68hc11_va_start.
4336         * config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
4337         No need to define EXPAND_BUILTIN_VA_START.
4338
4339         * doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
4340         doc/trouble.texi: Remove references to GCC-provided <varargs.h>.
4341
4342 2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>
4343
4344         PR optimization/7153
4345         * regmove.c (optimize_reg_copy_3): Don't optimize if the register
4346         dies in more than one insn.
4347
4348 2002-07-15  Jason Thorpe  <thorpej@wasabisystems.com>
4349
4350         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.
4351
4352 2002-07-15  Michael Matz  <matz@suse.de>,
4353             Daniel Berlin  <dberlin@dberlin.org>,
4354             Denis Chertykov  <denisc@overta.ru>
4355
4356         Add a new register allocator.
4357
4358         * ra.c: New file.
4359         * ra.h: New file.
4360         * ra-build.c: New file.
4361         * ra-colorize.c: New file.
4362         * ra-debug.c: New file.
4363         * ra-rewrite.c: New file.
4364
4365         * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
4366         (ra-rewrite.o): New .o files for libbackend.a.
4367         (GTFILES): Add basic-block.h.
4368
4369         * toplev.c (flag_new_regalloc): New.
4370         (f_options): New option "new-ra".
4371         (rest_of_compilation): Call initialize_uninitialized_subregs()
4372         only for the old allocator.  If flag_new_regalloc is set, call
4373         new allocator, instead of local_alloc(), global_alloc() and
4374         friends.
4375
4376         * doc/invoke.texi: Document -fnew-ra.
4377         * basic-block.h (FOR_ALL_BB): New.
4378         * config/rs6000/rs6000.c (print_operand): Write small constants
4379         as @l+80.
4380
4381         * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
4382         (df_reg_table_realloc): Make size at least as large as max_reg_num().
4383         (df_insn_table_realloc): Size argument now is absolute, not relative.
4384         Changed all callers.
4385
4386         * gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
4387         * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.
4388
4389         2002-06-20  Michael Matz  <matz@suse.de>
4390
4391         * df.h (struct ref.id): Make unsigned.
4392         * df.c (df_bb_reg_def_chain_create): Remove unsigned cast.
4393
4394         2002-06-13  Michael Matz  <matz@suse.de>
4395
4396         * df.h (DF_REF_MODE_CHANGE): New flag.
4397         * df.c (df_def_record_1, df_uses_record): Set this flag for refs
4398         involving subregs with invalid mode changes, when
4399         CLASS_CANNOT_CHANGE_MODE is defined.
4400
4401         2002-05-07  Michael Matz  <matz@suse.de>
4402
4403         * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.
4404
4405         2002-05-03  Michael Matz  <matz@suse.de>
4406
4407         * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.
4408
4409         Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>
4410
4411         * regclass.c (regclass): Work with all regs which have sets or
4412         refs.
4413         (reg_scan_mark_refs): Count regs inside (clobber ...).
4414
4415         2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>
4416
4417         * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
4418         (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
4419         add new refs.
4420         (df_bb_refs_update): Don't clear insns_modified here, ...
4421         (df_analyse): ... but here.
4422
4423         * sbitmap.c (dump_sbitmap_file): New.
4424         (debug_sbitmap): Use it.
4425
4426         * sbitmap.h (dump_sbitmap_file): Add prototype.
4427
4428         2001-08-07  Daniel Berlin  <dan@cgsoftware.com>
4429
4430         * df.c (df_insn_modify): Grow the UID table if necessary, rather
4431         than assume all emits go through df_insns_modify.
4432
4433         2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
4434
4435         * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
4436         increase REG_N_REFS (like flow does), so that regclass doesn't
4437         think a reg is useless, and thus, not calculate a class, when it
4438         really should have.
4439
4440         2001-01-28  Daniel Berlin  <dberlin@redhat.com>
4441
4442         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
4443         dataflow analysis.
4444
4445 2002-07-15  Jakub Jelinek  <jakub@redhat.com>
4446
4447         PR middle-end/7245
4448         * config/i386/i386.c (const_int_1_31_operand): New.
4449         * config/i386/i386.h (PREDICATE_CODES): Add it.
4450         * config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
4451         ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
4452         lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.
4453
4454 2002-07-14  Alan Modra  <amodra@bigpond.net.au>
4455
4456         PR target/7282
4457         * config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
4458         (floatunssidf2): Likewise.
4459         (floatsidf_ppc64): New insn_and_split.
4460         (floatunssidf_ppc64): Likewise.
4461
4462 2002-07-14  Andreas Jaeger  <aj@suse.de>
4463
4464         * config.gcc (sh64): Remove unused
4465         target_requires_64bit_host_wide_int.
4466
4467 2002-07-12  Roger Sayle  <roger@eyesopen.com>
4468
4469         * expr.c [CLEAR_RATIO]: New macro defining the maximum number
4470         of move instructions to use when clearing memory, c.f. MOVE_RATIO.
4471         [CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
4472         whether clear_by_pieces should be used to clear storage.
4473         (clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.
4474
4475         * doc/tm.texi: Document these two new target macros.
4476
4477 2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>
4478
4479         * config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
4480         the scratch register.
4481         ("*movhi2_push"): Accept Z_REG because a split pattern can make use
4482         of it, forbid reload to use it.
4483
4484 2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4485
4486         * config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
4487         usage on 64-bit hosts, return value was truncated to 32 bits.
4488
4489 Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>
4490
4491         * simplify-rtx.c (simplify_subreg): Handle floating point
4492         CONST_DOUBLEs.  When an integer subreg of a smaller mode than
4493         the element mode is requested, compute a subreg with an
4494         integer mode of the same size as the element mode first.
4495
4496 Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
4497
4498         * combine.c (try_combine): When converting a paradoxical subreg
4499         to an extension, take LOAD_EXTEND_OP into account.
4500
4501 2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4502
4503         * config.gcc (mips-sgi-irix6*o32): New configuration.
4504
4505         * configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
4506         configurations.
4507         * configure: Regenerate.
4508
4509         * config/mips/iris6-o32-as.h: New file.
4510         * config/mips/iris6-o32.h: New file.
4511
4512         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
4513         (NM_FLAGS): Define.
4514         (HAVE_AS_SHF_MERGE): Undefine.
4515
4516         * config/mips/t-iris5-as: New file.
4517         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
4518
4519         * config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
4520         SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
4521         SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
4522         dp-bit.c, fp-bit.c): Move ...
4523         * config/mips/t-iris5-6: ... here.
4524         New file, shared by IRIX 5 and IRIX 6.
4525         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
4526         mips-sgi-irix5*): Use it.
4527
4528         * config/mips/iris6.h: Remove duplicate comment.
4529
4530         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
4531         !TARGET_IRIX6]: Define.
4532         (mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
4533
4534         * config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
4535
4536 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4537
4538         * pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
4539         and delete code to force constant to register.
4540         * pa-protos.h (adddi3_operand): Add prototype.
4541         * pa.c (adddi3_operand): New function.
4542
4543 2002-07-11  Roger Sayle  <roger@eyesopen.com>
4544
4545         * c-decl.c (duplicate_decls): Preserve the noreturn attribute on
4546         non-ANSI builtin functions.
4547
4548 Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>
4549
4550         * rtl.h (gen_rtx_CONST_VECTOR): Declare.
4551         * gengenrtl.c (special_rtx): Check for CONST_VECTOR.
4552         * emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
4553         (gen_const_vector_0): Use it.
4554
4555 2002-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4556
4557         * pa.md (adddi3): For 32-bit targets, force constants to a register
4558         if they don't fit in an 11-bit immediate.  Change insn predicate to
4559         arith11_operand.  Remove comment.
4560         * pa.c (cint_ok_for_move): Fix comment.
4561         (emit_move_sequence):  Don't directly split DImode constants on 32-bit
4562         targets.
4563
4564 2002-07-11  Tim Josling  <tej@melbpc.org.au>
4565
4566         Remove front end hard coding from gengtype.c.
4567
4568         * Makefile.in
4569         (STAGESTUFF): add gtyp-gen.h
4570         (GTFILES): Remove front end specific files.
4571         (GTFILES_FILES_LANGS): New, from configure..
4572         (GTFILES_FILES_FILES): Likewise.
4573         (GTFILES_LANG_DIR_NAMES): Likewise.
4574         (GTFILES_SRCDIR): Likewise.
4575         (gtyp-gen.h): Build from configure information.
4576         (s-gtype): Remove command line parameters from gengtype.
4577         (gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
4578         (mostlyclean): Delete files generated by and for gengtype.
4579
4580         * c-config-lang.in: New file.
4581
4582         * configure.in (all_gtfiles_files_langs): New. Accumulate files
4583         for each language.
4584         (all_gtfiles_files_files): New. Accumulate language for each file
4585         accumulated.
4586         (gtfiles): Pick up value for C.
4587         (srcdir): AC-SUBST this variable.
4588         (all_gtfiles_files_langs): AC-SUBST this variable.
4589         (all_gtfiles_files_files): AC-SUBST this variable.
4590
4591         * configure: Regenerate.
4592
4593         * gengtype-lex.l (parse_file): Make parameter const.
4594
4595         * gengtype.c (toplevel): include gtyp-gen.h.
4596         (BASE_FILE_<language> unnamed enum): Delete.
4597         (lang_names): Delete (replaced by gtyp-gen.h)
4598         (lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
4599         all references.
4600         (NUM_GT_FILES): New.
4601         (NUM_LANG_FILES): New.
4602         (srcdir_len): New.
4603         (NUM_BASE_FILES): Change calculation.
4604         (open_base_files): Change prototype to avoid warning.
4605         (startswith): Delete.
4606         (get_file_basename): Iterate through generated language list not
4607         hard coded list.
4608         (get_base_file_bitmap): Use generated list of files and languages.
4609         (close_output_files): Add prototype to rmove warning.
4610         (main): Iterate through list of generated files from gtyp-gen.h
4611         rather than command line paramaters.  Ignore duplicated file
4612         names.
4613
4614         * gengtype.h (parse_file): Amend prototype for const parameter.
4615
4616         * doc/sourcebuild.texi: Document gtfiles variable.
4617
4618         * doc/gty.texi: Document changes to gtfiles variable for front
4619         ends.
4620
4621         * objc/config-lang.in (gtfiles): Add files needed for objc front
4622         end.
4623
4624 2002-07-10  Roger Sayle  <roger@eyesopen.com>
4625
4626         PR c/2454
4627         * combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
4628         to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.
4629
4630 2002-07-10  Roger Sayle  <roger@eyesopen.com>
4631             Zack Weinberg <zack@codesourcery.com>
4632
4633         * builtins.def: Make the argument types of abort and exit
4634         independent of the front-end.
4635
4636 2002-07-11  Alan Modra  <amodra@bigpond.net.au>
4637
4638         * config/rs6000/linux64.h (ASM_SPEC): Define.
4639
4640 2002-07-10  Aldy Hernandez  <aldyh@redhat.com>
4641
4642         * config/rs6000/rs6000.c (emit_frame_save): New.
4643         (rs6000_frame_related): Replace reg2 before reg.
4644         (rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
4645         and eh_return registers.
4646
4647 2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>
4648
4649         Revert all patches for optimization of Complex .op. Real.
4650         * complex_part_zero_p: Remove
4651         * expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
4652         with x.
4653         * expand_cmplxdiv_wide: Ditto.
4654         * expand_binop: Ditto.
4655
4656 2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4657
4658         * config/avr/avr.md: Fix two 0x80000000 constants to make them
4659         negative also on 64-bit hosts.
4660
4661         Default to -fno-reorder-blocks when optimizing for size.
4662         * config/avr/avr-protos.h (avr_optimization_options): Declare.
4663         * config/avr/avr.c (avr_optimization_options): New function.
4664         * config/avr/avr.h (OPTIMIZATION_OPTIONS): New.
4665
4666         Optimize returning from simple functions.
4667         * config/avr/avr-protos.h (avr_simple_epilogue): Declare.
4668         * config/avr/avr.c (avr_simple_epilogue): New function.
4669         * config/avr/avr.md (return): New insn.
4670
4671 2002-07-10  Douglas B Rupp  <rupp@gnat.com>
4672
4673         * config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
4674         HAS_INIT_SECTION to protection.
4675
4676 2002-07-10  Mark Mitchell  <mark@codesourcery.com>
4677
4678         * doc/invoke.texi (Debugging Options): Mention that -gdwarf is
4679         deprecated.
4680
4681 Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>
4682
4683         * combine.c (gen_lowpart_for_combine): Handle vector modes.
4684         Supply non-VOID mode to simplify_gen_subreg.
4685
4686 Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>
4687
4688         * i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
4689
4690 2002-07-10  Jeffrey A Law  <law@redhat.com>
4691
4692         * mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
4693         as appropriate.
4694
4695         * mn10200.c (expand_epilogue): Fix test to determine which scratch
4696         register to use.
4697
4698 Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>
4699
4700         * cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
4701         Get mode from dest.
4702         If simplify_gen_subreg fails, try next equivalent.
4703
4704 2002-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
4705
4706         * diagnostic.h: #include location.h
4707         (location_t): Move definition to..
4708         * location.h: ... here.  New file.
4709         * tree.h: #include location.h
4710         (DECL_SOURCE_LOCATION): New macro.
4711         (DECL_SOURCE_FILE): Use.
4712         (DECL_SOURCE_LINE): Likewise.
4713         (struct tree_decl): REplace filename and linenum with locus.
4714         * Makefile.in (TREE_H): add location.h
4715         (diagnostic.o): Depends on gt-location.h
4716         (gt-location.h): Depends on s-gtype
4717
4718 2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>
4719
4720         * config/rs6000/aix.h: Convert CPP_PREDEFINES to
4721         TARGET_OS_CPP_BUILTINS.
4722         * config/rs6000/aix31.h: Likewise.
4723         * config/rs6000/aix41.h: Likewise.
4724         * config/rs6000/aix43.h: Likewise.
4725         * config/rs6000/aix51.h: Likewise.
4726         * config/rs6000/beos.h: Likewise.
4727         * config/rs6000/darwin.h: Likewise.
4728         * config/rs6000/eabi.h: Likewise.
4729         * config/rs6000/eabisim.h: Likewise.
4730         * config/rs6000/linux.h: Likewise.
4731         * config/rs6000/linux64.h: Likewise.
4732         * config/rs6000/lynx.h: Likewise.
4733         * config/rs6000/mach.h: Likewise.
4734         * config/rs6000/rtems.h: Likewise.
4735         * config/rs6000/sysv4.h: Likewise.
4736         * config/rs6000/vxppc.h: Likewise.
4737
4738 2002-07-09 Devang Patel <dpatel@apple.com>
4739         * objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
4740         Do not allow ObjC objects as a parameter type for Objective-C methods.
4741         My previous patch restricted  'struct' also.
4742
4743 2002-07-09  Neil Booth  <neil@daikokuya.co.uk>
4744
4745         * cpperror.c (cpp_error): Default to directive_line within
4746         directives here.
4747         * cppexp.c (cpp_interpret_integer): Only use traditional
4748         number semantics in directives.
4749         * cpplib.c (prepare_directive_trad): Don't reset pfile->line.
4750         (do_include_common): Similarly.
4751         * cpptrad.c (scan_out_logical_line): Implement accurate
4752         quoting of <> in #include.
4753         * doc/cpp.texi: Update.
4754
4755 Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
4756                           J"orn Rennecke <joern.rennecke@superh.com>
4757
4758         * sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
4759         * sh.md (attribute issues): Replace with:
4760         (attribute pipe_model).  All users changed.
4761         (attribute type): Change pt / ptabs to pt_media / ptabs_media.
4762         All users changed.
4763         (function units sh5issue, sh5fds): New.
4764         (attribute is_mac_media): New.
4765         (adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
4766         (andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
4767         (ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
4768         (movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
4769         (call_media, call_value_media, sibcall_media): Likewise.
4770         (casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
4771         (return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
4772         (mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
4773         (fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
4774         (cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
4775         (sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
4776         (muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
4777         (fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
4778         (cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
4779         (sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
4780         (truncdfsf2_media): Likewise.
4781         (movsi_media, movsi_media_nofpu, movdi_media): Use new types.
4782         (movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
4783
4784 Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>
4785
4786         * sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
4787         * sh.c (general_extend_operand, inqhi_operand): New functions.
4788         * sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
4789         alternatives using 'N' modifier.  Add type.
4790         (adddi3z_media): Likewise.  Enable generator function generation.
4791         (movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
4792         exact predicates / constraints.  Add type.
4793         (subsi3): Allow 0 for SHMEDIA.
4794         (udivsi3_i4_media): Use match_operand for input values
4795         rather than hard registers.
4796         (udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
4797         unnecessarily through hard registers.  Keep copies of pseudo
4798         registers outside of the libcall sequence.
4799         (mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
4800         (ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
4801         (zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
4802         (extendhidi2, extendqidi2): Likewise.
4803         (andsi3_compact): Name.
4804         (andcdi3): Enable generator function generation.
4805         (zero_extendhisi2, zero_extendqisi2): Rename to
4806         (zero_extendhisi2_compact, zero_extendqisi2_compact).
4807         (extendhisi2, extendqisi2): Rename to
4808         (extendhisi2_compact, extendqisi2_compact).
4809         (rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
4810         (loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
4811         (zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
4812         (zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
4813         (extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
4814         (extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
4815         (truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
4816         (shmedia32_initialize_trampoline_big): Likewise.
4817         (shmedia32_initialize_trampoline_little): Likewise.
4818         (nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
4819         (negdi2): Remove spurious T clobber.
4820         (zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
4821         (movsi_media, movsi_media_nofpu): Remove spurious *k after b.
4822         (movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
4823         (movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
4824         (ic_invalidate_line_media): Write back data cache before invalidating
4825         instruction cache.  Add type.
4826         (movsf_media): Sign-extend when the destination is a general
4827         purpose register.  Add type.
4828         (bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
4829         (casesi_worker_0+1): Only increment ref count for proper label.
4830         (casesi_worker_0+2): Likewise.
4831
4832 2002-07-09  Mark Mitchell  <mark@codesourcery.com>
4833
4834         * dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.
4835
4836 2002-07-09  Steve Ellcey  <sje@cup.hp.com>
4837
4838         * gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
4839         from Pmode to ptr_mode.
4840         (get_exception_pointer): Ditto.
4841         (connect_post_landing_pads): Ditto.
4842         (dw2_build_landing_pads): Ditto.
4843
4844 2002-07-08  Steve Ellcey  <sje@cup.hp.com>
4845         * gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
4846         * gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
4847         (handle_pragma_redefine_extname): Change to use new function.
4848
4849 2002-07-08  Roger Sayle  <roger@eyesopen.com>
4850
4851         * combine.c (combine_simplify_rtx): Add an explicit cast
4852         to avoid signed/unsigned comparison warning.
4853         (simplify_if_then_else): Likewise.
4854         (extended_count): Likewise.
4855         (simplify_shift_const): Likewise.
4856         (simplify_comparison): Likewise.
4857
4858 2002-07-08  Richard Sandiford  <rsandifo@redhat.com>
4859
4860         * config/mips/mips.md: Add imadd type.  Update scheduler description
4861         to use imadd as well as imul.
4862         (*mul_acc_si, *madsi): Change imul alternatives to imadd.
4863         (*mul_acc_di, *mul_acc_64bit_di): Likewise.
4864         (*mul_sub_si): Likewise for first alternative.  Change second
4865         alternative from imul to multi.
4866
4867 2002-07-07  Neil Booth  <neil@daikokuya.co.uk>
4868
4869         * c-common.c (c_common_post_options): Update prototype;
4870         don't init backends if preprocessing only.
4871         * langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
4872         * langhooks.h (struct lang_hooks): Update post_options to
4873         return a boolean.
4874         * toplev.c (parse_options_and_default_flags, do_compile,
4875         lang_independent_init): Update prototypes.  Allow the
4876         front end to specify that there is no need to initialize
4877         the back end.
4878         (general_init): Move call to hex_init here...
4879         (toplev_main): ...from here.  Pass flag for back end init
4880         suppression.
4881
4882 Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
4883
4884         * sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
4885         (PREDICATE_CODES): Add entries for equality_comparison_operator,
4886         greater_comparison_operator and less_comparison_operator.
4887         * sh.c (print_operand): Add '\'' code.  Make 'o' handle
4888         more operators.
4889         (equality_comparison_operator): New function.
4890         (greater_comparison_operator, less_comparison_operator): Likewise.
4891         * sh.md (beq_media_i): Disable generator function generation.
4892         Use match_operator to handle a whole class of comparisons.  Add
4893         modifier in output template to provide branch prediction.  Add type.
4894         (bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
4895         (bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
4896         (blt_media_i, bleu_media_i, bltu_media_i): Likewise.
4897         (bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.
4898
4899 2002-07-07  Hans-Peter Nilsson  <hp@bitrange.com>
4900
4901         Emit MMIX function prologue and epilogue as rtl.
4902         * config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
4903         not unprototyped get_hard_reg_initial_val.
4904         ("call_value", "nonlocal_goto_receiver"): Ditto.
4905         ("return"): Make define_expand.  Move real insn to...
4906         ("*expanded_return"): New pattern.
4907         ("prologue", "epilogue"): New define_expands.
4908         * config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
4909         (struct machine_function): New member in_prologue.
4910         (FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
4911         (FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
4912         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
4913         (MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
4914         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
4915         (LOCAL_REGNO): Define.  Adjust comment.
4916         * config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
4917         Consider regs_ever_live[MMIX_rJ_REGNUM], not just
4918         leaf_function_p.
4919         (MMIX_OUTPUT_REGNO): Don't translate registers while outputting
4920         the prologue.
4921         (mmix_target_asm_function_prologue): Make static.  Just mark that
4922         the prologue is being emitted.  Move guts to...
4923         (mmix_expand_prologue): New function.  Adjust for emitting
4924         prologue as rtl.  For sizes, use HOST_WIDE_INT only.
4925         (mmix_target_asm_function_epilogue): Make static.  Simply emit a
4926         \n.  Move guts to...
4927         (mmix_expand_epilogue): New function.  Adjust for emitting
4928         epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
4929         (mmix_target_asm_function_end_prologue): Mark that the prologue
4930         has ended.
4931         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
4932         (mmix_conditional_register_usage): Improve comments.
4933         (mmix_local_regno): New function.
4934         (mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
4935         * config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
4936         (mmix_expand_prologue, mmix_expand_epilogue): Ditto.
4937         (mmix_get_hard_reg_initial_val): Ditto.
4938
4939 2002-07-06  Andreas Jaeger  <aj@suse.de>
4940
4941         * toplev.c (set_fast_math_flags): Don't use ISO C style function
4942         definitions.
4943         * gengtype.c (open_base_files): Likewise.
4944         (close_output_files): Likewise.
4945         * tracer.c (find_best_predecessor): Likewise.
4946         (find_best_successor): Likewise.
4947         (ignore_bb_p): Likewise.
4948
4949 2002-07-05  Roger Sayle  <roger@eyesopen.com>
4950
4951         PR c++/7099
4952         * builtin-attrs.def: Define new attribute lists for use in
4953         builtins.def.
4954         * builtins.def [DEF_BUILTIN]: Modify to take an additional
4955         ATTRS argument, an enumerated value defined in builtin-attrs.def
4956         that represents the attribute list for the builtins.  Modify
4957         all builtin functions to pass an appropriate attribute list.
4958         Specify "abort", "exit", "_exit" and "_Exit" builtins here with
4959         their required noreturn attributes.
4960         * tree.h (enum_builtin_function): Ignore the additional parameter
4961         to DEF_BUILTIN.
4962         * builtins.c (built_in_names): Likewise.
4963         * c-common.c: (builtin_function_2): Replace the "int noreturn_p"
4964         argument with a tree representing the functions attribute list.
4965         Pass this "attrs" argument to builtin_function.  No longer handle
4966         the noreturn_p processing manually.
4967         (built_in_attributes): Move the definitions from builtin-attrs.def
4968         before c_common_nodes_and_builtins.
4969         (c_common_nodes_and_builtins): Handle the new ATTRS parameter in
4970         DEF_BUILTIN, passing it to both builtin_function and the changed
4971         builtin_function_2.
4972
4973         * doc/extend.texi: Document __builtin_abort, __builtin_exit,
4974         __builtin__exit and __builtin__Exit.
4975
4976 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
4977
4978         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
4979         QI mode registers in soft registers.
4980         ("zero_extendqihi2"): Do not take into account soft registers
4981         for register allocation (use '*' constraint).
4982
4983 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
4984
4985         * config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
4986         it is dead.
4987         ("*ashrsi3"): Likewise.
4988         ("*lshrsi3"): Likewise.
4989
4990 2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>
4991
4992         * genautomata.c (output_max_insn_queue_index_def): Take latencies
4993         into account.
4994
4995 2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>
4996
4997         * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
4998         address computation and memory moves.
4999
5000 2002-07-03  Mark Mitchell  <mark@codesourcery.com>
5001
5002         PR c++/6706
5003         * dwarfout.c (output_reg_number): Fix warning message.
5004         (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
5005         before using it.
5006
5007 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5008
5009         * gcc/gcc.c (asm_debug): Move initialization ...
5010         (init_spec): ... here.
5011
5012 2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>
5013
5014         * c-parse.in (extdef): Append ';'.
5015         (old_style_parm_decls): Append ';'.
5016
5017 2002-07-04  Daniel Jacobowitz  <drow@mvista.com>
5018
5019         * configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
5020         gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
5021         to gcc_cv_as_gstabs_flag.
5022         * configure: Rebuilt.
5023
5024 2002-07-04  Geoffrey Keating  <geoffk@redhat.com>
5025
5026         * ggc.h (ggc_add_root): Document as obsolete.
5027
5028 Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>
5029
5030         * sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
5031         (mshflo_w): Likewise.
5032
5033 Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
5034
5035         * simplify-rtx.c (simplify_subreg): Reduce problem of finding
5036         vector mode subregs of constants to finding integer mode
5037         subregs of constants.
5038         * cse.c (cse_insn): Use simplify_gen_subreg.
5039         * convert.c (convert_to_integer): Don't strip a NOP_EXPR
5040         From a vector mode expression of different size than the
5041         target mode.
5042
5043 2002-07-03  Eric Christopher  <echristo@redhat.com>
5044
5045         * config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
5046         * config/mips/mips.h: Remove deprecated -m<processor> options
5047         and cc1_cpu_spec associated.
5048         (CONSTANT_ADDRESS_P): Fix last patch.
5049         (ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
5050         * config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
5051         sunge_sf): Remove.
5052
5053 2002-07-03  Stan Shebs  <shebs@apple.com>
5054
5055         * config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
5056         (STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
5057         (CPP_SPEC): Remove insertion of APPLE_CC definition.
5058
5059 2002-07-03  Roger Sayle  <roger@eyesopen.com>
5060
5061         * combine.c (struct_undo): Change types of recorded substitutions
5062         to be either "int" or "rtx", instead of "unsigned int" and "rtx".
5063         (do_SUBST_INT): Change types of the substitution from unsigned int
5064         to int, to avoid compilation warning from SUBST_INT's only caller.
5065
5066         (make_extraction): Add cast to avoid compilation warning.
5067         (force_to_mode): Remove cast to avoid compilation warning.
5068
5069 2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
5070             Jeff Law  <law@redhat.com>
5071
5072         * i386.md (length_immediate attribute): Fix typo.
5073         (length_address attribute): Likewise.
5074         (modrm attribute): Set it to 0 for immediate call instructions.
5075         (jcc_1 pattern): Set modrm attribute to 0.
5076         (jcc_2 pattern ): Likewise.
5077         (jump pattern): Likewise.
5078         (doloop_end_internal pattern): Explicitly set length.
5079         (leave pattern): Fix typo.
5080         (leave_rex64 pattern): Likewise.
5081
5082 2002-07-03  David Edelsohn  <edelsohn@gnu.org>
5083
5084         * config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
5085         in FPR as preference.
5086         (fctiwz): Same.
5087         (floatdidf2, fix_truncdfdi2): Same.
5088         (floatdisf2, floatditf2, fix_trunctfdi2): Same.
5089         (floatditf2): Same.
5090         (floatsitf2, fix_trunctfsi2): SImode in GPR.
5091         (ctrdi): Remove FPR alternative and splitter.
5092
5093 2002-07-03  Will Cohen  <wcohen@redhat.com>
5094
5095         * config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
5096
5097 Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>
5098
5099         * optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
5100         than UNITS_PER_WORD, unless this is little endian and the first unit
5101         in this word.  Let extract_bit_field decide how to load an element.
5102         Force arguments to matching mode.
5103         (expand_vector_unop): Likewise.
5104
5105         * simplify-rtx.c (simplify_subreg): Don't assume that all vectors
5106         consist of word_mode elements.
5107         * c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
5108         BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
5109         (build_unary_op): Allow vector types for BIT_NOT_EPR.
5110         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
5111         CONST_VECTOR.
5112         * optabs.c (expand_vector_binop): Try to perform operation in
5113         smaller vector modes with same inner size.  Add handling of AND, IOR
5114         and XOR.  Reject expansion to inner-mode sized scalars when using
5115         OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
5116         (expand_vector_unop): Try to perform operation in smaller vector
5117         modes with same inner size.  Add handling of one's complement.
5118         When there is no vector negate operation, try a vector subtract
5119         operation.  Use simplify_gen_subreg on constants.
5120         * simplify-rtx.c (simplify_subreg): Add capability to convert vector
5121         constants into smaller vectors with same inner mode, and to
5122         integer CONST_DOUBLEs.
5123
5124 2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5125
5126         * c-parse.in (parsing_iso_function_signature): New variable.
5127         (extdef_1): New, copied from...
5128         (extdef): ... here.  Reset parsing_iso_function_signature.
5129         (old_style_parm_decls):  Reset parsing_iso_function_signature.
5130         (old_style_parm_decls_1): New, copied from old_style_parm_decls.
5131         Warn about ISO C style function definitions.
5132         (nested_function, notype_nested_function): Reset
5133         parsing_iso_function_signature.
5134         (parmlist_2): Set parsing_iso_function_signature.
5135
5136         * doc/invoke.texi (-Wtraditional): Document new behavior.
5137
5138 2002-07-02  Chris Demetriou  <cgd@broadcom.com>
5139
5140         * config.gcc (mips*el-*-*): Use tm_defines to set
5141         TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
5142         * config/mips/little.h: Remove.
5143
5144 2002-07-02 Devang Patel <dpatel@apple.com>
5145
5146         * objc/objc-act.c (adjust_type_for_id_default): Do not allow an
5147         object as parameter. Prevent something like 'NSObject' to be
5148         used as the type for a method argument.
5149
5150 2002-07-03  Neil Booth  <neil@daikokuya.co.uk>
5151
5152         * cpptrad.c: Update comment.
5153
5154 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
5155
5156         * doc/cpp.texi: Update for traditional preprocessing changes.
5157         * goc/cppopts.texi: Similarly.
5158
5159 2002-07-02  Ziemowit Laski  <zlaski@apple.com>
5160
5161         * c-parse.in (designator): Enable designated initializers if ObjC.
5162         (objcmessageexpr): Remove references to objc_receiver_context.
5163         * objc/objc-act.h (objc_receiver_context): Remove decl.
5164         * objc/objc-act.c (objc_receiver_context): Remove.
5165         (lookup_objc_ivar): Test objc_method_context instead of
5166         objc_receiver_context.
5167
5168 Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>
5169
5170         * sh.c (print_operand, case 'N'): Allow zero vector.
5171         (arith_reg_or_0_operand): Likewise.
5172         (zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
5173         * sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
5174         IOR, XOR, PLUS and SET and take their respective constant
5175         ranges into account.
5176         (PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
5177         * sh.md (subdi3, subdi3_media): Allow zero operand.
5178         (movv8qi_i+3): Only vector that is not split is the zero vector.
5179         Fix operand 3 to simplify_subreg.
5180         (movv2si_i): Split alternative 1.
5181         (mshfhi_l_di_rev+1): New splitter.
5182
5183 2002-07-02  Neil Booth  <neil@daikokuya.co.uk>
5184
5185         PR preprocessor/7029
5186         * cppinit.c (cpp_handle_option):  Suppress warnings with an
5187         implicit "-w" for "-M" and "-MM".
5188         * doc/cppopts.texi: Update.
5189
5190 2002-07-01  Roger Sayle  <roger@eyesopen.com>
5191
5192         * config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
5193         identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
5194         builtin_function.
5195
5196 2002-07-02  Alan Modra  <amodra@bigpond.net.au>
5197
5198         * README.Portability: Fix typos.
5199
5200 2002-07-01  Hans-Peter Nilsson  <hp@axis.com>
5201
5202         PR target/7177
5203         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
5204         of indirections for register inside sign-extended mem part.
5205
5206 2002-07-01  Roger Sayle  <roger@eyesopen.com>
5207
5208         * tree.h:  Modify builtin_function interface to take an extra
5209         argument ATTRS, which is a tree representing an attribute list.
5210
5211         * c-decl.c (builtin_function): Accept additional parameter.
5212         * objc/objc-act.c (builtin_function): Likewise.
5213         * f/com.c (builtin_function): Likewise.
5214         * java/decl.c (builtin_function): Likewise.
5215         * ada/utils.c (builtin_function): Likewise.
5216         * cp/decl.c (builtin_function): Likewise.
5217         (builtin_function_1): Likewise.
5218
5219         * c-common.c (c_common_nodes_and_builtins): Pass an additional
5220         NULL_TREE argument to builtin_function.  (builtin_function_2):
5221         Likewise.
5222         * cp/call.c (build_java_interface_fn_ref): Likewise.
5223         * objc/objc-act.c (synth_module_prologue): Likewise.
5224         * java/decl.c (java_init_decl_processing): Likewise.
5225         * f/com.c (ffe_com_init_0): Likewise.
5226
5227         * config/alpha/alpha.c (alpha_init_builtins): Pass an additional
5228         NULL_TREE argument to builtin_function.
5229         * config/arm/arm.c (def_builtin): Likewise.
5230         * config/c4x/c4x.c (c4x_init_builtins): Likewise.
5231         * config/i386/i386.c (def_builtin): Likewise.
5232         * config/ia64/ia64.c (def_builtin): Likewise.
5233         * config/rs6000/rs6000.c (def_builtin): Likewise.
5234
5235 2002-07-01  Zack Weinberg  <zack@codesourcery.com>
5236
5237         * config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
5238         * config/mips/t-isa3264: Likewise.
5239         * config/mmix/t-mmix: Likewise.
5240
5241 2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5242
5243         * emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.
5244
5245 2002-07-01  Roger Sayle  <roger@eyesopen.com>
5246
5247         PR opt/4046
5248         * fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
5249         A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
5250         B are truth values.
5251
5252 2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>
5253
5254         * config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.
5255
5256 2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
5257
5258         * README.Portability (Function prototypes): Give an example of
5259         declaring and defining a function with no arguments.
5260
5261         * README.Portability (Function prototypes): Document new
5262         variable-argument function macros.
5263
5264 Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>
5265
5266         * sh.c (langhooks.h): Include.
5267         (sh_init_builtins, sh_media_init_builtins): New functions.
5268         (sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
5269         (mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
5270         (sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
5271         (builtin_description): New struct tag.
5272         (signature_args, bdesc): New arrays.
5273         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
5274         (print_operand): Add 'N' modifier.
5275         * sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
5276         (EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
5277         (EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
5278         (CONST_COSTS): Add special case for SHmedia AND.
5279         (PREDICATE_CODES): Add and_operand, arith_reg_dest,
5280         extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
5281         sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
5282         target_operand can also be const or unspec.
5283         * sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
5284         (UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
5285         (attribute type): Add new types.
5286         (anddi3): Add splitter.
5287         (movdi_const_16bit+1): Add code to handle vector constants and
5288         bitmasks efficiently.
5289         (shori_media): Have generator function made.
5290         (movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
5291         (movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
5292         (movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
5293         (ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
5294         (negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
5295         (negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
5296         (mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
5297         (mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
5298         (mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
5299         (mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
5300         (mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
5301         (mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
5302         (mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
5303         (mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
5304         (mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
5305         (mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
5306         (mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
5307         (lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
5308         (ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
5309         (ftrv): Likewise.
5310
5311         (fpu_switch+1, fpu_switch+2): Remove constraint.
5312
5313 2002-07-01  Aldy Hernandez  <aldyh@redhat.com>
5314
5315         * tree.c (build_function_type_list): Update function comment.
5316         Rename first argument to return_type.
5317
5318 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
5319
5320         * Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
5321         tradcif.y and related files.
5322
5323 2002-07-01  Neil Booth  <neil@daikokuya.co.uk>
5324
5325         * cpptrad.c (skip_whitespace): Pass pointer to prior char.
5326
5327 2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5328
5329         * mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
5330
5331 2002-06-30  Devang Patel  <dpatel@apple.com>
5332
5333         * objc/objc-act.c (finish_file): Avoid finish_objc() if
5334         -fsyntax-only.
5335
5336 Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
5337                           Frank Ch. Eigler  <fche@redhat.com>
5338                           Matthew Green  <mrg@redhat.com>
5339                           Richard Henderson <rtl@redhat.com>
5340                           Dave Hudson  <dave.hudson@ubicom.com>
5341                           Jeff Johnston  <jjohnstn@redhat.com>
5342                           Alan Lehotsky <apl@alum.mit.edu>
5343                           Bernd Schmidt  <bernds@redhat.com>
5344                           Graham Stott  <grahams@redhat.com>
5345
5346         * doc/extend.texi: Add ip2k port to description of attribute
5347         naked.
5348         * doc/install.texi (Specific): Add ip2k description.
5349         * doc/install-old.texi (Configurations): Add ip2k to possible
5350         cpu types.
5351         * doc/md.texi: Document ip2k constraints.
5352         * config/ip2k/crt0.S: New file.
5353         * config/ip2k/ip2k-protos.h: New file.
5354         * config/ip2k/ip2k.c: New file.
5355         * config/ip2k/ip2k.h: New file.
5356         * config/ip2k/ip2k.md: New file.
5357         * config/ip2k/libgcc.S: New file.
5358         * config/ip2k/t-ip2k: New file.
5359
5360 2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>
5361
5362         * config/mmix/mmix.md ("return"): New pattern.
5363         * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
5364         (TARGET_USE_RETURN_INSN): New macros.
5365         (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
5366         (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
5367         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
5368         (MMIX_POP_ARGUMENT): New macro.
5369         (mmix_target_asm_function_prologue): When no epilogue is executed,
5370         just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
5371         (mmix_print_operand) <case '.'>: New case.
5372         (mmix_print_operand_punct_valid_p): Match '.'.
5373         (mmix_use_simple_return): New function.
5374         * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
5375         * doc/invoke.texi (Option Summary) <MMIX Summary>: Add
5376         -msingle-exit, -mno-single-exit.
5377         (MMIX Options): Ditto.
5378
5379 2002-06-30  Aldy Hernandez  <aldyh@redhat.com>
5380
5381         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.
5382
5383 2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5384
5385         * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.
5386
5387 2002-06-30  Alan Modra  <amodra@bigpond.net.au>
5388
5389         * unroll.c (loop_iterations): Handle EQ loops.
5390
5391 2002-06-29  David Edelsohn  <edelsohn@gnu.org>
5392
5393         * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
5394         constraint in define_expand, not splitter.
5395         Formatting.
5396
5397 2002-06-29  Aldy Hernandez  <aldyh@redhat.com>
5398
5399         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
5400         build_function_type_list instead of build_function_type.
5401
5402         * config/ia64/ia64.c (ia64_init_builtins): Same.
5403
5404         * config/alpha/alpha.c (alpha_init_builtins): Same.
5405
5406         * config/rs6000/rs6000.c (altivec_init_builtins): Same.
5407
5408         * config/arm/arm.c (arm_init_builtins): Same.
5409
5410         * tree.h: Add build_function_type_list prototype.
5411
5412         * tree.c (build_function_type_list): New.
5413
5414 2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5415
5416         * collect2.c (scan_prog_file): Fix typo in message.
5417
5418 2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>
5419
5420         * fold-cont.c: Remove unused CHARMASK.
5421
5422 2002-06-29  Neil Booth  <neil@daikokuya.co.uk>
5423
5424         PR preprocessor/7150
5425         * cppmain.c (scan_translation_unit_trad): Simplify.
5426         * cppmacro.c (cpp_scan_nooutput): Handle traditional case.
5427
5428 2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5429
5430         * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
5431         Don't use CPP_PREDEFINES.
5432         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
5433         Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
5434         * config/i386/djgpp.h, config/i386/i386-coff.h,
5435         config/i386/i386-interix.h, config/i386/i386-interix3.h,
5436         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
5437         config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
5438         config/i386/uwin.h: Similarly.
5439
5440 2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5441
5442         * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
5443         flag_inline_trees to enable inlining.
5444
5445 2002-06-28  Phil Edwards  <pme@gcc.gnu.org>
5446
5447         * configure.in (gcc_gxx_include_dir):  Change to match versioned
5448         C++ headers if --enable-version-specific-runtime-libs is used.
5449         * configure:  Regenerate.
5450
5451 2002-06-28  Jan Hubicka  <jh@suse.cz>
5452
5453         * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.
5454
5455 2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>
5456
5457         * combine.c (combine_simplify_rtx): Pass the mode of the
5458         shift count, not the shift operation when trying to simplify
5459         a shift on a SHIFT_COUNT_TRUNCATED target.
5460
5461 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
5462
5463         * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
5464         avoid the auto increment addressing modes.
5465         ("*subsi3"): Likewise.
5466         (split for add/sub on address): For 68HC12 push the value on
5467         the stack and do the operation with a pop.
5468
5469 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
5470
5471         * cpplib.c (_cpp_handle_directive): Move #define-specific
5472         code to the #define handler...
5473         (do_define): ...here.
5474         (lex_macro_node): No longer a need to check for comments here.
5475
5476 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
5477
5478         * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
5479         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
5480         Declare.
5481         * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
5482         do not reorder basic blocks at the end when optimizing for size.
5483
5484 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
5485
5486         * config/m68hc11/m68hc11.c (autoinc_mode): New function.
5487         (m68hc11_make_autoinc_notes): New function.
5488         (m68hc11_split_move): Be very cautious when spliting a move with
5489         auto increment/decrement modes because this may result in incompatible
5490         directions; add REG_INC notes to the resulting insn for CSE reg.
5491
5492 2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>
5493
5494         * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
5495         can be a valid address.
5496
5497 2002-06-28  Aldy Hernandez  <aldyh@redhat.com>
5498
5499         * config/rs6000/rs6000.c: Remove unusued variables from last
5500         patch.
5501
5502 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
5503
5504         Revert:
5505         * config/rs6000/rs6000.c (rs6000_override_options): Move
5506         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
5507
5508 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
5509
5510         * config/rs6000/rs6000.c (altivec_expand_builtin): Move
5511         lvx/stv/dst builtins...
5512         (altivec_expand_ld_builtin): ...to here.
5513         (altivec_expand_st_builtin): ...here.
5514         (altivec_expand_dst_builtin): ...and here (respectively).
5515
5516 2002-06-28  Bob Wilson  <bob.wilson@acm.org>
5517
5518         * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.
5519
5520 2001-06-08  Bernd Schmidt  <bernds@redhat.com>
5521
5522         * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
5523         subregs.
5524         * recog.c (general_operand, register_operand): Disallow them.
5525
5526 2002-06-28  Neil Booth  <neil@daikokuya.co.uk>
5527
5528         PR preprocessor/7138
5529         * cpplib.c (_cpp_handle_directive): Do traditional
5530         preparation after setting state.angled_headers.
5531         * cpptrad.c (scan_out_logical_line): Fix potential
5532         quote bug.
5533
5534 2002-06-27  Aldy Hernandez  <aldyh@redhat.com>
5535
5536         * config/rs6000/rs6000.c (rs6000_override_options): Move
5537         *SUBTARGET_OVERRIDE_OPTIONS before the -m options.
5538
5539 2002-06-27  Bob Wilson  <bob.wilson@acm.org>
5540
5541         * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
5542         (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
5543         zero_cost_loop_end): Remove unnecessary "parallel" from insns.
5544
5545 2002-06-27  Roger Sayle  <roger@eyesopen.com>
5546
5547         * config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
5548         * config/stormy16/stormy16.h: Likewise.
5549
5550         * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
5551         with #define.
5552
5553 2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5554
5555         * doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
5556         Hitachi entry.  Make punctuation more consistent.
5557
5558 2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>
5559
5560         * doc/install.texi: Change ` bit' to `-bit'.
5561         * doc/md.texi: Change `-bits' to `-bit'.
5562         * doc/tm.texi: Change `-bits' to ` bits'.
5563
5564 2002-06-27  Daniel Berlin  <dberlin@dberlin.org>
5565
5566         * gcse.c (hoist_code): Rewrite to only get list of dominated
5567         blocks once per BB. Also fix reversed test (by removing need for
5568         the test at all).
5569
5570 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
5571
5572         * cpphash.h (_cpp_set_trad_context): Remove.
5573         * cpplib.c (prepare_directive_trad): Do nothing for #define.
5574         (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
5575         * cpptrad.c: Update comments.
5576         (_cpp_read_logical_line_trad): Let scan_logical_line handle
5577         updating the current context.
5578         (scan_logical_line): Update the current context.
5579         (_cpp_create_trad_definition): Similarly.
5580         (_cpp_set_trad_context): Remove.
5581
5582 2002-06-27  Neil Booth  <neil@daikokuya.co.uk>
5583
5584         PR preprocessor/7070
5585         * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.
5586
5587 2002-06-26  Bob Wilson  <bob.wilson@acm.org>
5588
5589         * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
5590         config/xtensa/xtensa.c (xtensa_return_addr): New function.
5591         config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
5592         config/xtensa/xtensa.md (fix_return_addr): New pattern.
5593
5594 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5595
5596         * mips.c (coprocessor_operand, coprocessor2_operand,
5597         symbolic_operand): Move prototypes from here...
5598         * mips-protos.h (coprocessor_operand, coprocessor2_operand,
5599         symbolic_operand): ...to here.
5600
5601 Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
5602
5603         * config/sh/crt1.asm: remove _stack label definition
5604         and sentinel value.
5605
5606 2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5607
5608         * varasm.c: Include real.h before output.h.
5609
5610 2002-06-26  Aldy Hernandez  <aldyh@redhat.com>
5611
5612         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
5613         check for TARGET_ALTIVEC.
5614
5615 2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
5616
5617         * config.gcc (vax-*-vms*): Make obselete.
5618
5619 2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5620
5621         * gcc.c (warn_std): Delete.
5622
5623 2002-06-25  Loren J. Rittle  <ljrittle@acm.org>
5624
5625         * doc/extend.texi: Fix formatting of last checkin.
5626
5627 2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5628
5629         * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
5630         underscore from __IEEE_FP and __IEEE_FP_INEXACT.
5631
5632 2002-06-25  Aldy Hernandez  <aldyh@redhat.com>
5633
5634         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5635         discrepancies from motorola's documentation.
5636
5637 Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>
5638
5639         * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
5640         GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.
5641
5642         * config/sh/lib1funcs.asm (udivdi3): Make first divide step
5643         produce a 32 bit result before normalization, then normalize with a
5644         left shift.  Compute approximative error of 2nd reciprocal
5645         approximation in 2's complement.  Fix mask generation from upper
5646         longword of second divide stage result.
5647         For large divisor, fix shift count used to truncate first stage
5648         divide result; make decision if to adjust upwards based on comparison
5649         of higher parts of normalized values.
5650         (udivdi): Likewise.  Undo normalization of result for large divisor
5651         case.
5652
5653 2002-06-25  David S. Miller  <davem@redhat.com>
5654
5655         * config/sparc/sparc.md: Change \\{t,n} to \{t,n}.
5656
5657 2002-06-25  Neil Booth  <neil@daikokuya.co.uk>
5658
5659         * cpplib.c (do_include_common): Revert to correct line number
5660         if -traditional.
5661         * cpptrad.c (scan_out_logical_line): Treat null directive as
5662         white space.  Invlidate MI optimization for non-whitespace
5663         text outside a directive.
5664
5665 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5666
5667         * Makefile.in (SHELL): Set to @SHELL@.
5668         * fixinc/Makefile.in (SHELL): Likewise.
5669
5670         * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
5671         fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
5672         initialization.
5673
5674 2002-06-24  Jeff Law <law@redhat.com>
5675
5676         * flow.c (propagate_one_insn): When removing an insn
5677         with a REG_LIBCALL note but not the entire libcall sequence,
5678         delete the associated REG_RETVAL note.
5679
5680 Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>
5681
5682         * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
5683         (udivsi3): Likewise.  Rewrite SH1 implementation.
5684         (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
5685         * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
5686         (udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
5687         * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
5688         (_moddi3): Likewise.
5689
5690         * lib1funcs.asm (ic_invalidate): Add data cache line writeback.
5691
5692         * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
5693         arguments into account for stack_regs.
5694
5695 2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>
5696
5697         * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
5698         in examples.
5699
5700 2002-06-24  Art Haas  <ahaas@neosoft.com>
5701
5702         * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
5703         * doc/tm.texi (Frame Layout): Likewise.
5704
5705 2002-06-20  Steve Ellcey  <sje@cup.hp.com>
5706
5707         * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
5708         Set float_format to i128.
5709
5710 2002-06-24  David S. Miller  <davem@redhat.com>
5711
5712         * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
5713         32-bit ABI libfuncs to NULL.
5714
5715         * config/sparc/sparc.md: Use define_insn_and_split.  Use braced
5716         strings instead of quoted strings for code blocks.
5717
5718         * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
5719         optabs if op1 is const0_rtx.
5720
5721         * Makefile.in (GTFILES): Add basic-block.h
5722         * basic-block.h (label_value_list, tail_recursion_label_list):
5723         Mark with GTY.
5724
5725 2002-06-24  Neil Booth  <neil@daikokuya.co.uk>
5726
5727         * cpptrad.c (scan_out_logical_line): Check recursing only when
5728         we know we have a macro invocation in the function-like case.
5729         Only call _cpp_handle_directive if we know we have a good
5730         directive, or we want to reject a bad directive.
5731
5732 2002-06-24  Alan Modra  <amodra@bigpond.net.au>
5733
5734         * doloop.c (doloop_valid_p): Correct comment.
5735         (doloop_modify_runtime <abs_inc != 1>): Simplify.
5736         (doloop_modify_runtime <do-while>): Don't emit code when NE.
5737
5738 Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>
5739
5740         * config.gcc: Add support for ip2k.
5741
5742 2002-06-23  Jan Hubicka  <jh@suse.cz>
5743             Jeff Law <law@redhat.com>
5744
5745         * function.h (struct emit_status): Clarify potential contents
5746         of regno_reg_rtx array.
5747         * integrate.c (copy_rtx_and_substitute): Update comments.  Make
5748         sure entry in regno_reg_rtx is a REG before checking REG_POINTER.
5749
5750         * reg-stack.c (convert_regs_exit): Push the registers to stack in
5751         proper order.
5752
5753 2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>
5754
5755         PR middle-end/6963
5756         * function.c (assign_stack_temp_for_type): Do not return
5757         the same MEM rtx for multiple uses of a stack slot.
5758
5759 2002-06-22  David S. Miller  <davem@redhat.com>
5760
5761         PR target/6841 target/6770 target/6719
5762         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
5763         NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
5764         GENERAL_OR_EXTRA_FP_REGS.
5765
5766 2002-06-22  Neil Booth  <neil@daikokuya.co.uk>
5767
5768         * cpptrad.c (struct fun_macro): Add line number.
5769         (scan_out_logical_line): Set it, and use it to report unterminated
5770         macro invocations.
5771
5772 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5773
5774         * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
5775         VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
5776         DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
5777         DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
5778         REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
5779         REGEXP_ONEOF, check_name): Const-ify.
5780
5781 2002-06-21  Matt Thomas  <matt@3am-software.com>
5782
5783         * config/vax/vax.c (vax_output_function_prologue): Use
5784         REGISTER_PREFIX.  Fix some indentation.
5785         * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
5786         (VAX_ISTREAM_SYNC): Define.
5787         (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
5788         i-stream sync to the end.
5789         (REGISTER_PREFIX): Define as "".
5790         (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.
5791
5792 2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>
5793
5794         * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
5795         configurations.
5796
5797 2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5798
5799         * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
5800         tree_node_kind_names): Wrap in GATHER_STATISTICS macro.
5801
5802 2002-06-21  Matt Thomas  <matt@3am-software.com>
5803
5804         * config/vax/netbsd.h: Adjust a comment.
5805         (TARGET_DEFAULT): Redefine as 0.
5806
5807 2002-06-21  Richard Henderson  <rth@redhat.com>
5808
5809         * bb-reorder.c (make_reorder_chain_1): Search harder for the
5810         vax casesi fallthru edge.
5811         * cfglayout.c (cleanup_unconditional_jumps): Use
5812         redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
5813         * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
5814         block after ADDR_VEC.
5815
5816 2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5817
5818         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
5819
5820 2002-06-21  Neil Booth  <neil@daikokuya.co.uk>
5821
5822         * cpperror.c (cpp_error): For traditional CPP, default to
5823         diagnostics on pfile->line.
5824         * cpplib.c (prepare_directive_trad): Set line number for
5825         diagnostics for #define too.
5826         * cpptrad.c (skip_whitespace): Skip comments properly.
5827         (_cpp_expansions_different_trad): Initialize quote2.
5828
5829 2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>
5830
5831         * config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
5832         * config/mmix/mmix.h: Ditto.
5833         * config/mmix/mmix-protos.h: Ditto.
5834         * config/mmix/mmix.c: Ditto.  Fix typo in comment.
5835         * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
5836         comment.  Comment extra CC modes.
5837
5838 2002-06-20 Jan Hubicka  <jh@suse.cz>
5839
5840         * cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
5841         (scope_to_insns_finalize): Do not call set_block_levels; handle
5842         sequences.
5843         (choose_inner_scope): New.
5844         * rtl.h (choose_inner_scope): Declare.
5845
5846 2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5847
5848         * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
5849         HOST_WIDE_INT.
5850         * pa.c (pa_asm_output_mi_thunk): Likewise.
5851         (n_deferred_plabels): Change type to size_t.
5852         (output_deferred_plabels, output_call): Use size_t instead of int.
5853
5854 2002-06-20  Richard Henderson  <rth@redhat.com>
5855
5856         PR target/4041
5857         * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
5858         pattern and adjust constraints for coldfire.
5859
5860 2002-06-20  Richard Henderson  <rth@redhat.com>
5861
5862         * explow.c (probe_stack_range): Use gen_rtx_fmt_ee.
5863
5864 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
5865
5866         * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.
5867
5868 2002-06-20  Chris Demetriou  <cgd@broadcom.com>
5869
5870         * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.
5871
5872 2002-06-20  Stan Shebs  <shebs@apple.com>
5873
5874         * dominance.c: Include errors.h instead of error.h.
5875
5876 2002-06-20  Neil Booth  <neil@daikokuya.co.uk>
5877
5878         * cppexp.c (cpp_interpret_integer): Don't force traditional
5879         numbers to be unsigned.
5880         * cpplib.c (prepare_directive_trad): Set line number for
5881         diagnostics.
5882         * cpptrad.c (scan_out_logical_line): Continue scanning out
5883         at start of buffer.
5884         * gcc.c (trad_capable_cpp): Use cc1 always.
5885
5886 2002-06-20  Jeffrey Law  <law@redhat.com>
5887
5888         * i386.h (TARGET_DEFAULT): Do not turn on frame pointer
5889         elimination in leaf functions by default yet.
5890
5891 2002-06-20  Richard Sandiford  <rsandifo@redhat.com>
5892
5893         * combine.c (make_extraction): Reapply to the argument of an ASHIFT.
5894
5895 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5896
5897         * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
5898         multilibs.
5899         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
5900         Fixes PR other/6836.
5901
5902 Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
5903                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
5904
5905         Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>
5906
5907         * basic-block.h: Do not include et-forest.h
5908         (dominance_info): Declare as struct dominance-info.
5909         * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
5910         deleting block.
5911         * dominance.c (struct dominance_info): Define.
5912         (BB_NODE, SET_BB_NODE): New macros.
5913         (bb_hash_func, bb_eq_func): Kill.
5914         (calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
5915         nearest_common_dominator, dominated_by_p, recount_dominator,
5916         add_to_dominance_info, delete_from_dominance_info): update for new
5917         representation.
5918         (get_dominated_by, redirect_immediate_dominators): Rewrite using
5919         enumerate_sons.
5920         * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
5921         find_if_case_1, find_if_case_2): Remove killed blocks from dominance
5922         structure.
5923
5924         * et-forest.h: Update copyright; revamp all function to operate on
5925         nodes
5926         (et_forest_value): Kill.
5927         (et_forest_enumerate_sons, et_forest_node_value): New.
5928         * et-forest.c: Update copyright.
5929         * et-forest.h: Update copyright; revamp all function to operate on
5930         nodes
5931         (et_forest_value): Kill.
5932         (et_forest_enumerate_sons, et_forest_node_value): New.
5933
5934         Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
5935
5936         * basic-block.h: Inlude et-forest.h
5937         (basic_block_def): Kill dominator.
5938         (dominance_info): New type.
5939         (loops): Use dominace_info.
5940         (dominace handling functions): Take dominace_info as argument
5941         instead of bitmaps.
5942         (create_preheader): Likewise.
5943         * cfg.c (entry_exit_blocks): Kill dominator.
5944         (dump_flow_info): Do not dump dominators.
5945         * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
5946         dominators.
5947         * cfgloop.c (flow_pre_header_find): Use dominacne_info.
5948         (flow_loops_pre_header_scan, make_forwarder_block,
5949         canonicale_loop_headers, flow_loops_find): Likewise.
5950         * dominance.c: Include error.h
5951         (idoms_to_doms): Kill.
5952         (bb_hash_func, bb_eq_func): New static functions.
5953         (debug_dominace_info): New global function.
5954         (calculate_dominance_info): Use new et forest structure.
5955         (free_dominace_info, get_immediate_dominator, set_immediate_dominator,
5956         get_dominated_by, redirect_immediate_dominators,
5957         nearest_common_dominator, dominated_by_p, verify_dominators,
5958         recount_dominator, iterate_fix_dominators, add_to_dominace_info,
5959         delete_from_dominance_info): New global functions.
5960         * gcse.c (domnators): CHange to dominance_info.
5961         (alloc_hoist_mem): Do not alloc dominators
5962         (free_code_hoist_mem): Use free_dominance_info.
5963         (compute_code_hoist_data): Use dominance_info.
5964         (hoist_code): Likewise.
5965         * ifcvt.c (post_dominators): Likewise.
5966         (find_if_case_2, if_convert): Likewise.
5967         * predict.c (process_note_predictions, process_note_prediction,
5968         estimate-probability): Likewise.
5969         * sched-rgn.c (find_rgns, init_regions): Likewise.
5970         * ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
5971         find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
5972         * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
5973         find_evaluations, convert_to_ssa): Likewise.
5974         * ssa.h (compute_dominance_frontiers): Likewise.
5975
5976         Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
5977
5978         * Makefile.in (et-forest.c): Add.
5979         * et-forest.c: New file.
5980         * at-forest.h: New file.
5981
5982 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5983
5984         * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
5985         array size calculation.
5986         * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
5987         Likewise.
5988
5989         * diagnostic.c (diagnostic_kind_text): Const-ify.
5990         * gengtype.c (lang_names): Likewise.
5991
5992 Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>
5993
5994         * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.
5995
5996 2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5997
5998         * config/sol2.h: New file.
5999         * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
6000         (sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
6001         (sparc-*-chorusos*): Likewise.
6002         (sparc-*-elf*): Likewise.
6003         (sparc-*-rtems*, sparc-*-rtemself*): Likewise.
6004         (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
6005         (sparc-hal-solaris2*): Likewise.
6006         (sparc-*-solaris2*): Likewise.
6007         (sparclite-*-elf*): Likewise.
6008         (sparc86x-*-elf*): Likewise.
6009         (sparc64-*-elf*): Likewise.
6010
6011         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
6012         config/sol2.h.
6013         (ASM_SPEC): Override config/sol2.h version for now.
6014         Removed obsolete GAS_REJECTS_MINUS_S variant.
6015         (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
6016         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
6017         (TARGET_OS_CPP_BUILTINS): Likewise.
6018         Assert system=unix.
6019         (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
6020         (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
6021         config/sol2.h.
6022         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
6023         (ASM_CPU_SPEC): Define.
6024         (SUBTARGET_EXTRA_SPECS): Define.
6025
6026         * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
6027         in config/sparc/sol2.h.
6028         (ASM_SPEC): Moved to config/sol2.h.
6029         (CPP_CPU_SPEC): Simplified.
6030         (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
6031         consistency.
6032         (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
6033         (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
6034         STARTFILE_ARCH64_SPEC.
6035         (STARTFILE_SPEC): Moved to config/sol2.h
6036         (SUBTARGET_EXTRA_SPECS): Add startfile_arch.
6037         (LINK_ARCH32_SPEC): Moved to config/sol2.h.
6038         (LINK_ARCH64_SPEC): Simplified.
6039         (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
6040         (LINK_SPEC): Moved to config/sol2.h
6041
6042         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
6043         config/sol2.h.
6044         Use BITS_PER_WORD for size.
6045         (WINT_TYPE, WINT_TYPE_SIZE): Likewise.
6046         (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
6047         (CPP_PREDEFINES): Removed OS-specific part handled by
6048         TARGET_OS_CPP_BUILTINS.
6049         (CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
6050         (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
6051         (ASM_SPEC): Moved to config/sol2.h.
6052         (PREFERRED_DEBUGGING_TYPE): Likewise.
6053         (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
6054         (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
6055         (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
6056         (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h
6057
6058         * config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
6059         * config/i386/sol2gas.h: Removed.
6060
6061 Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
6062
6063         * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
6064
6065 2002-06-16  Aldy Hernandez  <aldyh@redhat.com>
6066
6067         * gcc.c-torture/execute/simd-1.c: New.
6068
6069         * gcc.dg/simd-1.c: New.
6070
6071         * doc/extend.texi (Vector Extensions): Document that we can
6072         specify simd types not specifically supported by the hardware.
6073         Document that simd types can be used as function arguments.
6074         Document that signness does make a difference in SIMD types.
6075         Misc cleanups and revisions to the vector extensions section.
6076
6077         * simplify-rtx.c (simplify_subreg): Simplify subregs of vector
6078         constants.
6079
6080         * expr.c (vector_mode_valid_p): New.
6081
6082         * expr.h: Add vector_mode_valid_p.
6083
6084         * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
6085
6086         * c-common.c (type_for_mode): Always build vector nodes regardless
6087         of VECTOR_MODE_SUPPORTED_P.
6088         (handle_mode_attribute): Error if we can't emulate a nonexisting
6089         vector mode.
6090         (handle_vector_size_attribute): Same.
6091
6092         * optabs.c (expand_binop): Open-code vector operations.
6093         (expand_unop): Open-code vector unops.
6094         (expand_vector_binop): New.
6095         (expand_vector_unop): New.
6096
6097         * c-typeck.c (build_binary_op): Allow vectors in binops.
6098         Allow vectors in conditional operatiors.
6099         (build_unary_op): Allow vectors in unary minus.
6100
6101         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
6102         TARGET_ALTIVEC.
6103
6104 2002-05-20  Richard Henderson  <rth@redhat.com>
6105
6106         * c-common.c (c_common_get_alias_set): Correctly handle characters.
6107         Rearrange order of expressions; don't handle vectors here.
6108         * alias.c (get_alias_set): Let vectors match their components.
6109
6110 2002-06-19  Chris Demetriou  <cgd@broadcom.com>
6111
6112         * config/mips/mips.c (mips_emit_prefetch): Use hints which
6113         match desired locality.
6114
6115 2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>
6116
6117         * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
6118         (h8300_insert_attributes): New.
6119
6120 2002-06-19  Akim Demaille  <akim@epita.fr>
6121
6122         * c-parse.in (initelt: identifier ':' initval): Add an empty
6123         action to fix a type clash.
6124         (aliasdecl, classdef): Add the missing closing `;'.
6125         Whitespace changes.
6126         * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
6127         $$ = $1 type clashes.
6128
6129 2002-06-19  Eric Christopher  <echristo@redhat.com>
6130
6131         * config/mips/mips.c (symbol_operand): New function.
6132         (mips_emit_prefetch): Ditto.
6133         * config/mips/mips-protos.h: Define.
6134         * config/mips/mips.h (ISA_HAS_PREFETCH): Define.
6135         (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
6136         (LEGITIMIZE_ADDRESS): Ditto.
6137         * config/mips/mips.md (prefetch, prefetch_si_address,
6138         prefetch_si, prefetch_di_address, prefetch_di): New patterns.
6139
6140 2002-06-19  Eric Christopher  <echristo@redhat.com>
6141
6142         * config/fp-bit.h: Add unordered defines for gofast.
6143
6144 2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>
6145
6146         * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
6147         DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
6148         DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
6149         REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
6150         checking and without it.
6151         (decl_name, decl_mode_check_failed, regexp_name,
6152         regexp_mode_check_failed): New functions.
6153         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
6154         gen_presence_set, gen_absence_set, gen_automaton,
6155         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
6156         gen_regexp_sequence, gen_reserv, gen_insn_reserv,
6157         automaton_decl_hash, automaton_decl_eq_p): Use the macros.
6158         (find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
6159         (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
6160         (find_insn_decl): Ditto.  Set up mode of work_insn_decl.
6161         (decl_hash, decl_eq_p): Use the macros.
6162         (find_decl): Ditto.  Set up mode of work_decl.
6163         (process_excls, process_presence_absence, process_decls,
6164         check_automaton_usage, process_regexp, process_regexp_decls,
6165         check_usage, loop_in_regexp, check_loops_in_regexps,
6166         process_regexp_cycles, add_advance_cycle_insn_decl,
6167         initiate_states, initiate_excl_sets,
6168         initiate_presence_absence_sets, copy_insn_regexp, transform_1,
6169         transform_2): Use the macros.
6170         (transform_3): Ditto.  Check mode before making transformations of
6171         ALLOF.
6172         (regexp_transform_func, transform_insn_regexps,
6173         process_unit_to_form_the_same_automaton_unit_lists,
6174         form_the_same_automaton_unit_lists_from_regexp,
6175         form_the_same_automaton_unit_lists,
6176         process_seq_for_forming_states, process_alts_for_forming_states,
6177         create_alt_states, form_ainsn_with_same_reservs, make_automaton,
6178         form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
6179         estimate_one_automaton_bound, compare_max_occ_cycle_nums,
6180         units_to_automata_heuristic_distr, create_ainsns,
6181         units_to_automata_distr, create_automata): Use the macros.
6182         (form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
6183         (longest_path_length, min_issue_delay_pass_states,
6184         output_dead_lock_vect, output_tables, output_insn_code_cases,
6185         output_internal_insn_latency_func, output_print_reservation_func,
6186         output_description, output_automaton_units, generate): Use the
6187         macros.
6188         (make_insn_alts_attr): Ditto.  Check case when there are not
6189         alternatives in the reservation.
6190         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
6191         make_bypass_attr, form_important_insn_automata_lists,
6192         expand_automata): Use the macros.
6193
6194 2002-06-20  Tim Josling  <tej@melbpc.org.au>
6195
6196         * Makefile.in: Clean up code to check for misspecified languages
6197         in enable-languages.
6198
6199 2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>
6200
6201         * cpptrad.c (_cpp_replacement_text_len): initialize len.
6202
6203 2002-06-19  Jason Merrill  <jason@redhat.com>
6204
6205         * Makefile.in (unstrap, restrap): New targets.
6206         (bootstrap): Mention restrap.
6207
6208 2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>
6209
6210         * except.c (ehl_free): Remove.
6211
6212         * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
6213         builtin_define and builtin_define_std.
6214
6215 2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
6216
6217         * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
6218         (sCOND): Restrict operand class so that gcc knows how to reload them.
6219         (bitfield_set): Merge two unnamed insn's using alternatives.
6220         (call_value): Remove constraint on unused uperand.
6221         (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
6222         (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.
6223
6224         * longlong.h (count_trailing_zeros): Escape newline and beautify.
6225
6226 2002-06-19  Mark Mitchell  <mark@codesourcery.com>
6227
6228         * Makefile.in (QMTEST_DIR): Simplify definition.
6229
6230 2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
6231
6232         * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
6233         #define.
6234
6235 2002-06-19  Neil Booth  <neil@daikokuya.co.uk>
6236
6237         * cpphash.h (struct cpp_reader): Make date and time strings.
6238         (_cpp_builtin_macro_text, _cpp_copy_replacement_text,
6239         _cpp_replacement_text_len): New.
6240         * cppinit.c (cpp_create_reader): Update.
6241         (init_builtins): Register appropriate builtins for -traditional-cpp.
6242         * cppmacro.c (new_number_token): Remove.
6243         (_cpp_builtin_macro_text): New.
6244         (builtin_macro): Use it.
6245         (cpp_macro_definition): Update to handle traditional macros.
6246         * cppmain.c (cb_line_change): Don't do column positioning for
6247         traditional output.
6248         * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
6249         state ls_fun_close.
6250         (skip_whitespace): Fix.
6251         (maybe_start_funlike): Don't set state.parsing_args.
6252         (scan_out_logical_line): Remove duplicate error.  Use lex_state
6253         rather than state.parsing_args.
6254         (push_replacement_text): Handle builtins.
6255         (_cpp_replacement_text_len, _cpp_copy_replacement_text): New.
6256
6257 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
6258             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6259
6260         * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
6261         attribute __always_inline__.
6262
6263 2002-06-18  Bob Wilson  <bob.wilson@acm.org>
6264
6265         * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
6266         when generating the call to _mcount.
6267         (NO_PROFILE_COUNTERS): Define.
6268
6269 2002-06-18  Richard Henderson  <rth@redhat.com>
6270
6271         * print-rtl.c (print_rtx): Adjust NOTE argument numbers for
6272         2002-06-02 change.
6273
6274 Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>
6275
6276         * t-sh (MULTILIB_EXCEPTIONS): Set to ml.
6277         config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
6278         * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
6279         * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.
6280
6281         * sh-protos.h (sh_pr_interrupt): Declare.
6282         * sh.c (sh_pr_interrupt): New function.
6283         (print_operand, calc_live_regs, sh_expand_prologue): Use it.
6284         (sh_hard_regno_rename_ok): Likewise.
6285         * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.
6286
6287 2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>
6288
6289         * rtl.def (DEFINE_AUTOMATON): Add description of new options
6290         `time' and `v'.  Fix incorrect description of option `w'.
6291
6292         * doc/md.texi: Ditto.
6293
6294         * genautomata.c (TIME_OPTION, V_OPTION): New macros.
6295         (gen_automata_option): Process the new options.
6296         (transform_2, transform_3): Initialize some variables.
6297         (initiate_automaton_gen): Use the new macros.
6298
6299 2002-06-18  Richard Sandiford  <rsandifo@redhat.com>
6300
6301         * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
6302         (mips_set_return_address, mips_restore_gp): Declare.
6303         * config/mips/mips.h (struct mips_frame_info): Move to mips.c
6304         (current_frame_info): Remove.
6305         (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
6306         * config/mips/mips.c: Remove uses of current_frame_info.
6307         (struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
6308         (struct machine_function): Add 'frame' and 'insns_len'.
6309         (current_frame_info, zero_frame_info): Remove.
6310         (mips_restore_gp, mips_set_return_address): New.
6311         (mips_initial_elimination_offset): New.
6312         * config/mips/mips.md (exception_receiver): Use mips_restore_gp.
6313         (eh_return define_split): Use mips_set_return_address.
6314
6315 2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>
6316
6317         * cpplib.c (dtable): Update.
6318         (end_directive): Decrement expansion prevention count.
6319         Clear state.in_expression.
6320         (prepare_directive_trad): Set state.in_expression.
6321         Increment expansion prevention count.
6322         * cpptrad.c (enum ls): New.
6323         (_cpp_overlay_buffer): Set overlaid_buffer.
6324         (_cpp_remove_overlay): Use overlaid_buffer.
6325         (_cpp_read_logcial_line_trad): Update buffer when it might
6326         have changed.
6327         (scan_out_logical_line): Handle state transitions for assertions
6328         and defined() in #if, and for funlike invocations including the
6329         directive case.  Handle '<' and '>' as a quote mechanism in
6330         #include.  Warn about unterminated macro invocations.
6331         * cpphash.h (struct lexer_state): New member in_expression.
6332         (struct cpp_reader): New member overlaid buffer.
6333
6334 2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
6335
6336         * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
6337         __always_inline__.
6338
6339 2002-06-18  Alan Modra  <amodra@bigpond.net.au>
6340
6341         * config/ia64/ia64.md (doloop_end_internal): Correct rtl.
6342
6343         * doloop.c (doloop_optimize): Extract pattern from insn.
6344
6345 2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>
6346
6347         * doc/extend.texi (Function Attributes): Remove `,...' from @var.
6348
6349 2002-06-17  Jeff Law <law@redhat.com>
6350
6351         * libgcc2.c: Do not include symcat.h or machmode.h.
6352
6353 2002-06-17  Richard Henderson  <rth@redhat.com>
6354
6355         PR target/6922
6356         * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
6357
6358 2002-06-17  Tom Tromey  <tromey@redhat.com>
6359
6360         * dwarfout.c: Include function.h.
6361
6362 2002-06-17  Andreas Schwab  <schwab@suse.de>
6363
6364         * print-rtl.c (print_rtx): Print space before vector, not after.
6365         (debug_rtx): Clear sawclose before printing.
6366         (debug_rtx_list): Print newline after each list element.
6367         (debug_rtx_range): Likewise.
6368
6369 2002-06-17  Richard Henderson  <rth@redhat.com>
6370
6371         * function.h (struct function) [funcdef_no]: Rename profile_label_no.
6372         (current_function_funcdef_no): Similarly.
6373         * function.c (funcdef_no): Similarly.
6374         (prepare_function_start): Set current_function_funcdef_no.
6375         (expand_function_start): Don't set current_function_profile_label_no.
6376         * dwarf2out.h (current_funcdef_number): Remove.
6377         * dwarf2out.c (current_funcdef_number): Remove.  Replace with
6378         current_function_funcdef_no throughout.
6379         * dwarfout.c, vmsdbgout.c: Similarly.
6380         * except.c (sjlj_funcdef_number): Remove.
6381         (sjlj_emit_function_enter): Use current_function_funcdef_no instead.
6382         (output_function_exception_table): Likewise.
6383         * final.c (profile_function): Use current_function_funcdef_no
6384         instead of current_function_profile_label_no.
6385
6386 2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>
6387
6388         * sched-ebb.c (init_ready_list): Check INSN_P first.
6389
6390 Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>
6391
6392         * sh.md (divsi3): Update way how to find insns in a sequence.
6393
6394         * reload1.c (merge_assigned_reloads): Don't change reloads
6395         other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
6396         to RELOAD_OTHER when there are conflicting input reloads.
6397
6398 2002-06-17  Richard Earnshaw  (rearnsha@arm.com)
6399
6400         * function.c (epilogue_done): Correctly build a sequence of insns for
6401         a sibcall epilogue.
6402
6403 2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>
6404
6405         * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
6406         #define.
6407
6408         * config/m32r/m32r.md: Replace gen_sequence with get_insns.
6409
6410 2002-06-16  Richard Henderson  <rth@redhat.com>
6411
6412         * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
6413         of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.
6414
6415 2002-06-16  Richard Henderson  <rth@redhat.com>
6416
6417         PR opt/6722
6418         * regclass.c (globalize_reg): Update regs_invalidated_by_call.
6419
6420 2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6421
6422         * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
6423         * config/i386/i386-aout.h, config/i386/i386elf.h,
6424         config/i386/sysv4.h: Remove CPP_PREDEFINES.
6425         * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
6426         config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
6427         config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
6428         config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
6429         CPP_PREDEFINES and part of CPP_SPEC.
6430         * config/i386/sysv4-cpp.h: New.
6431
6432 2002-06-16  Richard Henderson  <rth@redhat.com>
6433
6434         PR c/7030
6435         * dwarf2out.c (modified_type_die): Don't assign the qualified die
6436         to the unqualified type.
6437
6438 Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
6439
6440         * i386-protos.h (x86_field_alignment): Declare.
6441         * i386.c (x86_field_alignment): Define.
6442         * i386.h (ADJUST_FIELD_ALIGNMENT): New.
6443         (BIGGEST_FIELD_ALIGNMENT): Kill.
6444
6445 2002-06-16  Richard Henderson  <rth@redhat.com>
6446
6447         * vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.
6448
6449 2002-06-16  Richard Henderson  <rth@redhat.com>
6450
6451         * c-common.c (flag_ms_extensions): Move from c++ front end.
6452         * c-common.h (flag_ms_extensions): Declare.
6453         * c-decl.c (c_decode_option): Add -fms-extensions.
6454         (grokfield): Don't accept anonymous structures in ISO C mode;
6455         accept only unnamed anonymous structures in GNU C mode; accept
6456         Plan 9 extensions in MS mode.
6457         * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
6458         SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
6459         (extension): Clear flag_iso.
6460         * doc/invoke.texi (C Dialect Options): Add -fms-extensions.
6461
6462 2002-06-16  Hans-Peter Nilsson  <hp@axis.com>
6463
6464         PR target/7042
6465         * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
6466         early if current_function_epilogue_delay_list is non-empty.
6467         * config/cris/cris.md ("return"): Add sanity check asserting that
6468         current_function_epilogue_delay_list is empty.
6469
6470 2002-06-16  Jeff Law <law@redhat.com>
6471
6472         * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
6473         sharing of hard registers.
6474
6475         * toplev.c (rest_of_compilation): Remove redundant conditional.
6476
6477         * toplev.c (rest_of_compilation): Perform a simpler, less costly
6478         cleanup of the CFG when not optimizing.
6479
6480 2002-06-16  Alan Modra  <amodra@bigpond.net.au>
6481
6482         * gcc.c (main): Correct startfile_prefix_spec check.
6483
6484 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
6485
6486         * config.gcc: Revert rth's patch of 2002-05-18.  Instead,
6487         include both darwin.o and rs6000-c.o.
6488
6489 2002-06-15  Roger Sayle  <roger@eyesopen.com>
6490
6491         * expr.c (compare_from_rtx): Call simplify_relational_operation
6492         on all comparisons, not just those between integer constants,
6493         with the correct (possibly unsigned) comparison code.
6494         (do_compare_rtx_and_jump): Likewise.
6495
6496 2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6497
6498         * Makefile.in (tm_defines): New configuration variable.
6499         (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
6500         Pass tm_defines in TM_DEFINES.
6501         (cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
6502         * config.gcc (tm_defines): New configuration variable.
6503         (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
6504         pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
6505         * configure.in: Substitute tm_defines.
6506         * configure: Rebuilt.
6507         * mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
6508         * doc/install.texi: Update.
6509         * pa/pa-700.h: Delete file.
6510         * pa/pa-7100.h: Delete file.
6511
6512 2002-06-15  Roger Sayle  <roger@eyesopen.com>
6513
6514         * fold-const.c (comparison_to_compcode): New function to convert
6515         an comparison TREE CODE into a bit-based representation.
6516         (compcode_to_comparison): New function to convert from this bit
6517         based representation back to a comparison TREE CODE.
6518         (fold_truthop): Simplify (x<y) && (x==y) and related composite
6519         comparisons.
6520
6521 2002-06-15  Aldy Hernandez  <aldyh@redhat.com>
6522
6523         * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.
6524
6525         * stor-layout.c (compute_record_mode): Remove check for
6526         FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
6527         MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
6528         MEMBER_TYPE_FORCES_BLK.
6529
6530         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.
6531
6532         * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.
6533
6534 2002-06-14  Jeff Sturm  <jsturm@one-point.com>
6535
6536         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.
6537
6538 2002-06-14  Steve Ellcey  <sje@cup.hp.com>
6539
6540         * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
6541         USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
6542         * configure, config.in: Regenerate.
6543
6544 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
6545
6546         * loop.c (check_final_value): Use v->always_executed
6547         instead of v->always_computable.
6548         * unroll.c (final_giv_value): Don't calculate the final
6549         value as a function of the biv if the giv is not computed
6550         for every loop iteration.
6551
6552 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
6553
6554         * loop.c (for_each_insn_in_loop): Fix formatting and comments.
6555
6556 2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>
6557
6558         PR c/6677
6559         * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
6560         the truncation down when the target type is signed.
6561         [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
6562         * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
6563         the conversion if the target type is a smaller type.
6564
6565 2002-06-14  Richard Henderson  <rth@redhat.com>
6566
6567         * fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
6568         earlier.  Re-factor comparisons vs extrema.
6569
6570 2002-06-14  Richard Henderson  <rth@redhat.com>
6571
6572         * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.
6573
6574 2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6575
6576         * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
6577         * sched-deps.c (add_dependence): Likewise.
6578         (group_leader): Likewise.
6579         * sched-rgn.c (init_ready_list): Likewise.
6580         * doc/rtl.texi: Adjust accordingly.
6581
6582 2002-06-13  Jeffrey Law  <law@redhat.com>
6583
6584         * gcse.c (delete_null_pointer_checks_1): Inform caller if any
6585         null pointer checks were eliminated.  Update prototype.
6586         (delete_null_pointer_checks): Similarly.
6587         * rtl.h (delete_null_pointer_checks): Update prototype.
6588         * toplev.c (rest_of_compilation): Only run cleanup_cfg if
6589         delete_null_pointer_checks deletes one or more null
6590         pointer checks.  Do not run cleanup_cfg before gcse, the
6591         CFG is accurate and optimized at that point..
6592
6593         * rs6000.c (rs6000_frame_related): Avoid unwanted sharing
6594         of hard registers.
6595
6596 2002-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
6597
6598         * Makefile.in (libgcc.mk): Depend on specs.
6599
6600 Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>
6601
6602         * sh.md (mulsi3): Update way how to find insns in a sequence.
6603
6604 Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>
6605
6606         * sh.h: Define HARD_REGNO_RENAME_OK
6607         * sh.c: sh_hard_regno_rename_ok: New. If current function has
6608         interrupt_handler attribute, only registers saved on stack are OK.
6609         * sh-protos.h: Declare sh_hard_regno_rename_ok.
6610
6611 2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>
6612
6613         * config/sh/sh.md (jump): Emit jump insn.
6614         (call_pcrel): Get pattern of the result of gen_call_site.
6615         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
6616
6617 2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6618
6619         * cpphash.h (struct cpp_buffer): Remove saved_line_base.
6620         * cpptrad.c: Update comments.
6621         (skip_whitespace, copy_comment): Take a new parameter.
6622         (skip_escaped_newlines): Don't duplicate escaped newline test.
6623         (copy_comment): Different location for CUR, decide here how
6624         to copy / replace the comment.
6625         (skip_whitespace): Copy whitespace.
6626         (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
6627         (scan_out_logical_line): Let copy comment handle keeping or
6628         replacing comments.
6629         (scan_parameters, _cpp_create_trad_definition): Update.
6630
6631 2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>
6632
6633         * reload.c (get_secondary_mem,find_reloads_address,
6634         find_reloads_address_1): Pass reference to MEM to find_reloads_address
6635         so that LEGITIMIZE_RELOAD_ADDRESS will be called.
6636
6637 2002-06-13  Jessica Han  <jessica@cup.hp.com>
6638
6639         * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
6640         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
6641         * doc/tm.texi: Document them.
6642         * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
6643         (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
6644         (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
6645         (ASM_OUTPUT_FDESC): Likewise.
6646
6647 2002-06-13  Eric Christopher  <echristo@redhat.com>
6648
6649         * diagnostic.c (output_format): Fix thinko.
6650
6651 Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>
6652
6653         * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
6654         (DWARF2_UNWIND_INFO): Define to 0.
6655
6656         * config/sh/sh.c (calc_live_regs): Don't use initial_value
6657         optimization for PR_MEDIA_REG.
6658
6659 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6660
6661         * cpphash.h (_cpp_lex_identifier_trad): Remove.
6662         * cpplib.c (end_directive): Don't skip, always remove overlay
6663         apart from #define.
6664         (prepare_directive_trad): Handle NULL pfile->directive.
6665         (_cpp_handle_directive): Always call prepare_directive_trad
6666         if traditional.
6667         * cppmain.c (check_multiline_token): Rename account_for_newlines,
6668         generalize inputs.
6669         (scan_translation_unit_trad): Use it.
6670         * cpptrad.c (skip_comment): Rename copy_comment, copy comment to
6671         output, get escaped newline in comment close correct.
6672         (check_output_buffer, skip_whitespace): Update.
6673         (_cpp_lex_identifier_trad): Remove.
6674         (scan_out_logical_line): Handle -C and comments in directives
6675         properly.
6676
6677 Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
6678
6679         * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
6680         * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
6681         * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
6682         (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
6683         (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
6684         (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
6685         (SELECT_SH5_COMPACT_NOFPU): Likewise.
6686         (TARGET_SWITCHES): Use them.
6687         (TARGET_CPU_DEFAULT): Define if not already defined.
6688         (TARGET_DEFAULT): Use it.
6689         (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
6690         * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
6691         * config/sh/t-monolib: New file.
6692
6693 2002-06-13  Roger Sayle  <roger@eyesopen.com>
6694
6695         * toplev.c (rest_of_compilation): Simplify (and correct) the
6696         logic of the first delete-null-pointer-checks pass.
6697
6698 Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
6699
6700         * i386.c (ix86_expand_movstr):  Fix pasto.
6701
6702 Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>
6703
6704         * reload.c (find_valid_class):  Fix thinko in my previous patch.
6705
6706 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
6707
6708         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
6709         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
6710         (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
6711         (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.
6712
6713 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
6714
6715         * tree-inline.c (expand_call_inline): Don' mess with _DECL
6716         fields.
6717
6718 2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>
6719
6720         * diagnostic.c (output_format): Recognize "%H" as a format
6721         specifier for a location_t.
6722         (text_specifies_location): New function.
6723         (diagnostic_set_info): Use it.
6724
6725 2002-06-13  Jeffrey Law  <law@redhat.com>
6726
6727         * emit-rtl.c (static_regno_reg_rtx): Define.
6728         (init_emit_once): Initialize static_regno_reg_rtx.
6729         (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
6730         of building new hard reg objects once per function.
6731         (gen_rtx_REG): Try to share hard regs.
6732         * regclass.c (init_fake_stack_mems): New function broken out from
6733         init_regs.
6734         * rtl.h (init_fake_stack_mems): Declare.
6735         * toplev.c (lang_independent_init): Call init_regs before
6736         init_emit_once.  Call init_fake_stack_mems after init_emit_once.
6737
6738         * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.
6739
6740         * alias.c (argument_registers): Remove.
6741         (init_alias_once): Initialize static_reg_base_value here.  Remove
6742         initialization of argument_registers.
6743         (init_alias_once_per_function): Remove.
6744         (init_alias_analysis): Copy all the entries from static_reg_base_value
6745         into new_reg_base_value all at once.
6746         * rtl.h (init_alias_once_per_function): Remove declaration.
6747         * function.c (prepare_function_start): Do not call
6748         init_alias_once_per_function.
6749
6750         * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
6751         starting a sequence and emitting an INSN.
6752
6753 2002-06-13  Richard Sandiford  <rsandifo@redhat.com>
6754
6755         * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.
6756
6757 2002-06-13  David S. Miller  <davem@redhat.com>
6758
6759         * expmed.c (init_expmed): Remove duplicate init of 'reg'.
6760
6761 2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6762
6763         * cpplib.c (end_directive): Handle line skipping.  Only remove
6764         the rest of the line if the directive was valid.
6765         * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
6766         expanding a traditional macro.
6767         * cpptrad.c (recursive_macro): New.
6768         (read_logical_line_trad): Handle skipping.
6769         (scan_out_logical_line): Continue after a successful directive.
6770         Don't expand macros whilst skipping, or if recursing.
6771         (_cpp_create_trad_definition): scan_out_logical_line now sets
6772         the output current position.
6773
6774 2002-06-12  Eric Christopher  <echristo@redhat.com>
6775
6776         From Chris Demetriou  <cgd@broadcom.com>
6777         * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
6778         comment.
6779         (ISA_HAS_MADD_MSUB): Ditto.
6780         (ISA_HAS_NMADD_NMSUB): Ditto.
6781
6782 2002-06-12  Eric Christopher  <echristo@redhat.com>
6783
6784         * config.gcc: Consolidate little endian handling and
6785         little/big endian targets.
6786         * config/mips/elfl.h: Remove file.
6787         * config/mips/elfl64.h: Ditto.
6788         * config/mips/ecoffl.h: Ditto.
6789         * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.
6790
6791 2002-06-12  Geoffrey Keating  <geoffk@redhat.com>
6792
6793         * gengtype.h (xvasprintf): New prototype.
6794         (xasprintf): New prototype.
6795         (struct outf): New.
6796         (get_output_file): Return an outf_p.
6797         (header_file): Is now an outf_p.
6798         (base_files): Now are outf_p.
6799         (oprintf): New.
6800         * gengtype.c: Replace all output FILE * with outf_p; use oprintf
6801         rather than stdio operations.  Use xasprintf in a few places,
6802         when appropriate.
6803         (xvasprintf): New.
6804         (xasprintf): New.
6805         (struct filemap): Delete.
6806         (files): Delete.
6807         (output_files): New.
6808         (oprintf): New.
6809         (create_file): Create an outf_p.  Add parameter to indicate output
6810         file name, change all callers.
6811         (open_base_files): Create gtype-desc.c here.
6812         (get_output_file_with_visibility): Rewrite.
6813         (get_output_file_name): Just look at 'name' field in struct outf.
6814         (close_output_files): Rewrite.
6815
6816 2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>
6817
6818         * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
6819         (MASK_G_FLOAT): Define.
6820         (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
6821         (TARGET_SWITCHES): Likewise.
6822         (TARGET_DEFAULT): Likewise.
6823
6824 2002-06-12  Daniel Jacobowitz  <drow@mvista.com>
6825
6826         * config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
6827         * config/mips/mips.c (mips_output_filename): Don't print a
6828         ".file" directive if we are using DWARF-2.
6829         (mips_output_function_prologue): Do not emit source file
6830         name for TARGET_GAS.
6831
6832 Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>
6833
6834         * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
6835         decide whether emit the short opcode.
6836         * i386.h (x86_shift1): Declare.
6837         (TARGET_SHIFT1): New macro.
6838         * i386.c (x86_shift1): New global variable.
6839
6840         * toplev.c (rest_of_compilation): Call find_basic_block pre-loop
6841         unconditionally; make loop to rebuild CFG; kill unnecesary
6842         find_basic_block calls; kill compute_bb_for_insn call.
6843         * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
6844         * haifa-sched.c (sched_init): Likewise.
6845         * ssa-ccp.c (ssa_const_prop): Likewise.
6846         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
6847
6848 2002-06-11  David S. Miller  <davem@redhat.com>
6849
6850         * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
6851         active_insn_p.
6852
6853 2002-06-11  Richard Henderson  <rth@redhat.com>
6854
6855         * c-common.c (builtin_define_type_max): New.
6856         (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
6857         __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.
6858
6859         From Joseph S. Myers:
6860         * glimits.h: Rewrite to expect the double underscore definitions
6861         from the compiler.
6862
6863         * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
6864         config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
6865         config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
6866         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
6867         config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
6868         config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
6869         config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
6870         __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.
6871
6872 2002-06-11  Richard Henderson  <rth@redhat.com>
6873
6874         * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
6875         (ALPHA_BUILTIN_SET_THREAD_POINTER): New.
6876         (code_for_builtns): Update.
6877         (alpha_init_builtins): Add __builtin_thread_pointer and
6878         __builtin_set_thread_pointer.
6879         (alpha_expand_builtin): Handle void builtins.
6880         * doc/extend.texi (Alpha Built-in Functions): Update.
6881
6882 2002-06-11  Hans-Peter Nilsson  <hp@axis.com>
6883
6884         PR target/6997
6885         * config/cris/cris.md ("sleu"): Set attribute "cc" to "none".
6886
6887 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
6888
6889         * config.gcc: Make the name of the extra-modes file adjustable
6890         by target stanzas.
6891         (s390x, strongarm, xscale stanzas): Use this facility.
6892         * configure.in: Update to match.
6893         * configure: Regenerate.
6894
6895 2002-06-11  Aldy Hernandez  <aldyh@redhat.com>
6896
6897         * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
6898         max/mins as unsigned GE compares.
6899
6900 2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>
6901
6902         * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
6903         * config/vax/bsd.h: New file.
6904         * config/vax/netbsd.h: Add missing notice.
6905         (CPP_PREDEFINES): Remove.
6906         (TARGET_OS_CPP_BUILTINS): Define.
6907         (CPP_SPEC): Use NETBSD_CPP_SPEC.
6908         * config/vax/openbsd.h: Update copyright years.
6909         (CPP_PREDEFINES): Remove.
6910         (TARGET_OS_CPP_BUILTINS): Define.
6911         * config/vax/ultrix.h: Likewise.
6912         * config/vax/vaxv.h: Likewise.
6913         * config/vax/vms.h: Likewise.
6914         * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
6915         (CPP_PREDEFINES, CPP_SPEC): Remove.
6916
6917 Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>
6918
6919         * i386.md (addqi_1_slp, subqi_1_slp
6920         (andqi_ext0, testqi_ext0): Remove unnecesary check.
6921         (addhi*, addqi*): Simplify "dec" condition.
6922         (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
6923         (and, or, xor to QImode splitters): New.
6924         (iorqi_ext*): New.
6925         (xorqi_ext_0): New.
6926         (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
6927         (andqi_ext_1_rex64): New.
6928         (ashrqi*_slp): New.
6929         (ashlqi*_slp): New.
6930         (lshlqi*_slp): New.
6931         (rotrqi3*_slp): New.
6932         (rotlqi3*_slp): New.
6933
6934 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
6935
6936         * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
6937         softfloat.h.
6938         * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
6939         (CPP_ENDIAN_LITTLE_SPEC): Delete.
6940         * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
6941         * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
6942         __LONG_DOUBLE_128__ setting, _CALL_* setting.
6943         (CPP_DEFAULT_SPEC): Delete.
6944         (CPP_FLOAT_DEFAULT_SPEC): Delete.
6945         (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
6946         (CPP_SYSV_DEFAULT_SPEC): Delete.
6947         (CPP_ENDIAN_BIG_SPEC): Delete.
6948         (CPP_ENDIAN_LITTLE_SPEC): Delete.
6949         (CPP_ENDIAN_SPEC): Delete.
6950         (CPP_SPEC): Don't include cpp_endian, cpp_cpu.
6951         (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
6952         cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
6953         cpp_longdouble_default.
6954         * config/rs6000/softfloat.h: Delete.
6955         * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
6956         (EXTRA_SPECS): Delete cpp_cpu.
6957         (TARGET_CPU_CPP_BUILTINS): New.
6958         * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
6959         prototype.
6960         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
6961         * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
6962         (CPP_DEFAULT_SPEC): Delete.
6963         * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
6964         * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
6965         * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
6966         (CPP_DEFAULT_SPEC): Delete.
6967         * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
6968         (CPLUSPLUS_CPP_SPEC): Likewise.
6969         (CPP_CPU_SPEC): Delete.
6970         (CPP_DEFAULT_SPEC): Delete.
6971         * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
6972         (CPLUSPLUS_CPP_SPEC): Likewise.
6973         (CPP_CPU_SPEC): Delete.
6974         (CPP_DEFAULT_SPEC): Delete.
6975         * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
6976         (CPP_DEFAULT_SPEC): Delete.
6977         * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
6978         (CPP_DEFAULT_SPEC): Delete.
6979
6980         * doc/gty.texi: Small updates.
6981
6982 2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>
6983
6984         * objc/objc-act.c (warn_with_ivar): Adjust calls to
6985         diagnostic_count_error.
6986         (warn_with_method): Likewise.
6987
6988         * diagnostic.h (warnings_are_errors_message): New field of
6989         diagnostic_context.
6990         (diagnostic_count_error): Rename to diagnostic_count_diagnostic to
6991         match semantics.
6992         * diagnostic.c: Adjust calls to diagnostic_count_error through out.
6993         (diagnostic_count_diagnostic): Make aware of other kinds of
6994         diagnostics.
6995         (diagnostic_initialize): Initialize warnings_are_errors_message field.
6996
6997 2002-06-11  Tom Tromey  <tromey@redhat.com>
6998
6999         For PR java/6520:
7000         * fold-const.c (fold_convert): Don't modify existing tree's type.
7001
7002 2002-06-11  Geoffrey Keating  <geoffk@redhat.com>
7003
7004         * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.
7005
7006 2002-06-11  Richard Henderson  <rth@redhat.com>
7007
7008         * caller-save.c (init_caller_save): Clear INSN_CODE each iteration.
7009
7010 2002-06-11  Richard Henderson  <rth@redhat.com>
7011
7012         * defaults.h (EH_FRAME_SECTION_NAME): Don't define if
7013         DWARF2_UNWIND_INFO is false.
7014
7015 2002-06-11  Bob Wilson  <bob.wilson@acm.org>
7016
7017         * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.
7018
7019         * config/s390/s390.c (emit_prologue): gen_store_multiple
7020         returns an insn now, not a pattern.
7021
7022 2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7023
7024         * Makefile.in (gccinstall.dvi): Pass absolute pathnames to
7025         $(TEXI2DVI) -o.
7026
7027 Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
7028
7029         * i386.c (x86_promote_QImode): Set for Athlon
7030         (x86_fast_prefix): New global variable.
7031         (x86_arch_always_fancy_math_387): Fix formating.
7032         * i386.h (x86_fast_prefix): Declare
7033         (TARGET_FAST_PREFIX): define.
7034         * i386.md (and to strict_low_part, HI to SI
7035         promoting splitter): Use new macro.
7036
7037         * i386.h (RTX_COSTS): float_extend is not for free for SSE.
7038
7039 2002-06-11  Zack Weinberg  <zack@codesourcery.com>
7040
7041         * Makefile.in (distclean): Delete junk left in testsuite
7042         directory, too.
7043
7044 2002-06-11  Jeffrey Law <law@redhat.com>
7045
7046         * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
7047         last insn created by the splitter.
7048
7049         * caller-save.c (init_caller_save): Move creation of SAVEINSN
7050         and RESTINSN into into the scope of the sequence.
7051
7052         * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
7053         RETURN insns.
7054
7055         * loop.c (loop_regs_scan): Avoid useless generation of REG objects.
7056
7057         * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
7058         not the pattern.  So extract the pattern from the insn.
7059
7060         * mips.c (embedded_pic_fnaddr_reg): Fix typo.
7061
7062 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
7063
7064         * config/s390/s390.md (movsi): Only use floating point
7065         register alternatives when operands are already fprs.
7066         (movdi_31, movdi_64): Likewise.
7067
7068 2002-06-11  David S. Miller  <davem@redhat.com>
7069
7070         * emit-rtl.c (try_split): Do not abort on non-INSN_P.
7071         Only run RTX equality checks on INSN_P rtl.
7072
7073 2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
7074
7075         * config/s390/s390.md (reload_base, ltorg): Remove.
7076         * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
7077         s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
7078         * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
7079         s390_asm_output_pool_prologue): Likewise.
7080         * s390.h (s390_pool_start_insn): Likewise.
7081
7082         * s390.c (s390_output_symbolic_const): Remove support for
7083         old-style pool chunks.
7084         (s390_function_epilogue): Likewise.
7085         (s390_output_constant_pool): Likewise.  Also, fix incorrect
7086         alignment for 64-bit literal pools.
7087         (print_operand_address): Remove 'y' and 'Y' format flags.
7088         * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
7089         old-style pool chunks.
7090         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
7091         (ASM_OUTPUT_POOL_EPILOGUE): Remove.
7092         (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.
7093
7094         * s390.c (consttable_operand): New function.
7095         * s390-protos.h (consttable_operand): Declare it.
7096         * s390.h (PREDICATE_CODES): Add consttable_operand.
7097         * s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
7098         consttable_sf, consttable_df, pool_start_31, pool_end_31,
7099         pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
7100         * s390.c (struct constant, struct constant_pool): New data types.
7101         (constant_modes, gen_consttable): New variables.
7102         (s390_start_pool, s390_end_pool, s390_add_pool,
7103         s390_dump_pool, s390_free_pool): New functions.
7104         (s390_chunkify_pool): Completely reimplement literal pool
7105         overflow handling.
7106
7107         * s390.c (s390_pool_overflow): New variable.
7108         * s390.h (s390_pool_overflow): Declare it.
7109         * s390.md (cjump, icjump): Use it to adapt length for out-of-range
7110         jumps in literal pool overflow situations.
7111
7112         * s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
7113         (s390_frame_info): Account for possible use of RETURN_REGNUM
7114         by new literal pool overflow code.
7115         (s390_emit_prologue): Likewise.
7116
7117 2002-06-05  David S. Miller  <davem@redhat.com>
7118
7119         Delete SEQUENCE rtl usage outside of reorg and ssa passes.
7120         * rtl.h (gen_sequence, emit_insns, emit_insns_before,
7121         emit_insns_before_scope, emit_insns_after,
7122         emit_insns_after_scope): Delete declaration.
7123         * ada/misc.c (insert_code_for): Use emit_insn* instead of
7124         emit_insns_foo.
7125         * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
7126         (alpha_set_memflags): Fix comment.
7127         (set_frame_related_p): Use get_insns instead of gen_sequence.
7128         * config/alpha/alpha.md (setjmp receiver splitter): Avoid
7129         emitting no insns.
7130         * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
7131         gen_sequence.
7132         (arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
7133         * config/fr30/fr30.c (fr30_move_double): Likewise.
7134         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
7135         Likewise.
7136         * config/ia64/ia64.c (spill_restore_mem): Likewise.
7137         * config/ia64/ia64.md (conditional move spliiter): Avoid emitting
7138         no insns.
7139         * config/m32r/m32r.c (gen_split_move_double): Use get_insns
7140         instead of gen_sequence.
7141         * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
7142         (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
7143         * config/sh/sh.c (sh_need_epilogue): Likewise.
7144         * config/sparc/sparc.md (current_function_calls_alloca, flat): New
7145         attributes.
7146         (setjmp pattern and split): Use them to avoid splitter which emits
7147         no RTL.
7148         * genattrtab.c (main): Emit include of function.h
7149         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
7150         get_insns instead of gen_sequence.
7151         * config/cris/cris.c (cris_split_movdx): Likewise.
7152         * emit-rtl.c (emit_insns*): Kill.
7153         (try_split): Expect insn list instead of SEQUENCE.
7154         (make_jump_insn_raw, make_call_insn_raw): Fix comments.
7155         (emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
7156         Make them abort if a SEQUENCE is given and RTL checking is
7157         enabled.
7158         (emit_*_scope): Don't forget to set scope on final insn.
7159         (gen_sequence): Move from here...
7160         * ssa.c (gen_sequence): To here as private function.
7161         * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
7162         comments.
7163         (expand_builtin_return, expand_builtin_mathfn): Likewise.
7164         (expand_builtin_strlen): Use get_insns instead of gen_sequence.
7165         (expand_builtin_saveregs): Use emit_insn_foo, fix comments.
7166         (expand_builtin_expect_jump): Use get_insns and fix comments.
7167         * calls.c (try_to_integrate): Use emit_insn_foo.
7168         (expand_call, emit_library_call_value_1): Likewise.
7169         * expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
7170         (emit_move_insn_1): Use get_insns instead of gen_sequence.
7171         (expand_expr): Use emit_insn_foo.
7172         * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
7173         * except.c (build_post_landing_pads): Likewise.
7174         * flow.c (attempt_auto_inc): Likewise.
7175         * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
7176         expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
7177         * function.c (fixup_var_refs_insn): Use get_insns instead of
7178         gen_sequence.
7179         (fixup_var_refs_1): Likewise and expect insn list from gen_foo.
7180         (fixup_memory_subreg): Use get_insns instead of gen_sequence.
7181         (fixup_stack_1, purge_addressof_1, expand_main_function,
7182         get_arg_pointer_save_area): Likewise.
7183         (optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
7184         expand_function_end): Use emit_insn_foo.
7185         (record_insns, keep_stack_depressed): Work with insn list instead
7186         of SEQUENCE, fix comments.
7187         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
7188         noce_try_store_flag_constants, noce_try_store_flag_inc,
7189         noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
7190         noce_try_minmax, noce_try_abs): Use emit_insn_foo.
7191         (noce_process_if_block): Use get_insns instead of gen_sequence.
7192         * optabs.c (add_equal_note): Work with insn list, fix comments.
7193         (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
7194         (expand_unop, expand_complex_abs, expand_unop_insn,
7195         expand_no_conflict_block): Likewise.
7196         (gen_move_insn): Use get_insns instead of gen_sequence.
7197         (gen_cond_trap): Likewise.
7198         * integrate.c (copy_rtx_and_substitute): Likewise.
7199         (emit_initial_value_sets): Use emit_insn_foo.
7200         * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
7201         (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
7202         now that RTL generators give insn lists.
7203         * sibcall.c (replace_call_placeholder): Use emit_insn_foo.
7204         * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
7205         instead of gen_sequence.
7206         (doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
7207         * explow.c (emit_stack_save, emit_stack_restore): Use get_insns
7208         instead of gen_sequence.
7209         * loop.c (move_movables, emit_prefetch_instructions,
7210         gen_add_mult, check_dbra_loop, gen_load_of_final_value):
7211         Likewise.
7212         (loop_regs_update): Work with insn list instead of SEQUENCE rtl.
7213         (product_cheap_p): Likewise, and add commentary about RTL wastage
7214         here.
7215         * lcm.c (optimize_mode_switching): Use get_insns instead of
7216         gen_sequence.
7217         * profile.c (gen_edge_profiler): Likewise.
7218         * regmove.c (copy_src_to_dest): Likewise.
7219         * reg-stack.c (compensate_edge): Likewise and fix comment.
7220         * gcse.c (process_insert_insn): Likewise.
7221         (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
7222         * jump.c (delete_prior_computation): Update comment.
7223         * genemit.c (gen_expand, gen_split, main): Use get_insns instead
7224         of gen_sequence, update comments to match.
7225         * recog.c (peephole2_optimize): Work with insn lists instead of
7226         SEQUENCE rtl.
7227         * sched-vis.c (print_pattern): Abort on SEQUENCE.
7228         * unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
7229         Use get_insns instead of gen_sequence.
7230         (copy_loop_body): Likewise and don't emit dummy NOTE.
7231         * genrecog.c: Don't mention SEQUENCE rtl in comments.
7232         * combine.c (try_combine): Expect insn lists from split generator.
7233         * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
7234         hand.
7235
7236 2002-06-11  Roger Sayle  <roger@eyesopen.com>
7237             Andreas Jaeger <aj@suse.de>
7238
7239         * cfgbuild.c: Update copyright years.
7240
7241 2002-06-11  Andreas Schwab  <schwab@suse.de>
7242
7243         * config/m68k/m68k.h (PREDICATE_CODES): Define.
7244
7245 2002-06-11  Eric Christopher  <echristo@redhat.com>
7246
7247         * doc/tm.texi (Run-time Target): Add comment about flag_iso
7248         and strict ANSI.
7249         * config/mips/ecoff.h (CPP_PREDEFINES): Remove.
7250         * config/mips/ecoffl.h: Ditto.
7251         * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
7252         (CPP_PREDEFINES): Ditto.
7253         * config/mips/elfl64.h: Ditto.
7254         * config/mips/elfl.h: Ditto.
7255         * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
7256         out until irix header consolidation.
7257         * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
7258         with SUBTARGET_OS_CPP_BUILTINS.
7259         * config/mips/iris6.h: Ditto.
7260         (CPLUSPLUS_CPP_SPEC): Remove.
7261         * config/mips/linux.h: Ditto.
7262         * config/mips/netbsd.h: Ditto.
7263         * config/mips/openbsd.h: Ditto.
7264         * config/mips/rtems.h: Ditto.
7265         * config/mips/rtems64.h: Ditto.
7266         * config/mips/sni-svr4.h: Ditto.
7267         * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
7268         ISA_MIPS32, ISA_MIPS64): New defines.
7269         (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
7270         ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
7271         ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
7272         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
7273         (TARGET_CPU_CPP_BUILTINS): Define.
7274         (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
7275         * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
7276         (movdicc): Remove check for ISA_MIPS32.
7277          (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
7278         sunordered_df, sunordered_sf, sordered_df, sordered_sf,
7279         sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
7280         sunge_sf, sunle_df, sunle_sf): New patterns.
7281
7282 2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7283
7284         * Makefile.in: Update cppmain.o.
7285         * cpphash.h (struct cpp_reader): Move some members to a
7286         nested structure.
7287         (trad_line): Rename saved_line.
7288         (_cpp_read_logical_line_trad): Update.
7289         (_cpp_remove_overlay): New.
7290         * cppinit.c (cpp_create_reader): No need to set saved_line.
7291         (cpp_destroy): Update.
7292         (cpp_read_main_file): Only overlay if compiling.
7293         * cpplex.c (continue_after_nul): Return false if in directive.
7294         * cpplib.c (EXPAND): New.
7295         (directive_table, SEEN_EOL): Update.
7296         (end_directive): Remove overlay if traditional; don't skip
7297         line in traditional #define.
7298         (prepare_directive_trad): New.
7299         (_cpp_handle_directive, run_directive): Update for traditional
7300         directives.
7301         (lex_macro_node): Simplify, don't use lex_identifier_trad.
7302         * cpplib.h (struct options): Add preprocess_only.
7303         * cppmain.c: Don't include intl.h.
7304         (cpp_preprocess_file): Set options->preprocess_only.
7305         (scan_translation_unit_trad): Fix, and print line numbers.
7306         * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
7307         maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
7308         save_replacement_text, _cpp_create_trad_definition): Update for
7309         variable renaming.
7310         (_cpp_overlay_buffer): Save line number.
7311         (_cpp_remove_overlay): Rename from restore_buff, restore line.
7312         (_cpp_read_logical_line_trad): Don't handle overlays here.
7313         (scan_out_logical_line): Process directives.
7314
7315 2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>
7316
7317         * gthr-win32.h: Wrap functions in extern "C".
7318         (__gthread_key_t): Typedef as unsigned long,
7319         not win32 DWORD.
7320         (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
7321         (__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
7322         (__gthr_win32_once, __gthr_win32_key_create,
7323         __gthr_win32_key_delete, __gthr_win32_getspecific,
7324         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
7325         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
7326         __gthr_win32_mutex_unlock): Declare.
7327         (__gthread_once,__gthread_key_create,
7328         __gthread_key_delete, __gthread_getspecific,
7329         __gthread_setspecific, __gthread_mutex_init_function,
7330         __gthread_mutex_lock,__gthread_mutex_trylock,
7331         __gthread_mutex_unlock): Call corresponding
7332         __gthr_win32_* extern implementations if #defined
7333         __GTHREAD_HIDE_WIN32API.
7334         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
7335         $(srcdir)/config/i386/gthr-win32.c
7336         * config/i386/gthr-win32.c: New implementation file.
7337         (__gthr_win32_once, __gthr_win32_key_create,
7338         __gthr_win32_key_delete, __gthr_win32_getspecific,
7339         __gthr_win32_setspecific, __gthr_win32_mutex_init_function,
7340         __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
7341         __gthr_win32_mutex_unlock): New functions, based on
7342         static inlines in gthr-win32.h.
7343
7344 2002-06-10  Bob Wilson  <bob.wilson@acm.org>
7345
7346         * config/xtensa/xtensa.c (override_options): Don't warn about
7347         using -fpic or -fPIC when PIC is enabled by default.
7348
7349 2002-06-10  Roger Sayle  <roger@eyesopen.com>
7350
7351         * toplev.c (rest_of_compilation): Revert flag_if_conversion change.
7352
7353 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
7354
7355         * Makefile.in (MACHMODE_H): Add @extra_modes_file@.
7356         * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
7357         exists, substitute its pathname as @extra_modes_file@, define
7358         EXTRA_MODES_FILE to be an appropriate string to #include it
7359         with, and define EXTRA_CC_MODES to 1.
7360
7361         * machmode.def: Update comments.  Include EXTRA_MODES_FILE if
7362         it's defined.  Get rid of redundancy in calling sequence for
7363         CC; don't use it to define CCmode, to avoid a warning.
7364         * libgcc2.c: Include symcat.h for the sake of machmode.def.
7365
7366         * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
7367         i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
7368         pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
7369         New files.
7370         * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
7371         pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
7372
7373         * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
7374         defining extra CC modes.
7375
7376 2002-06-10  Roger Sayle  <roger@eyesopen.com>
7377             Andreas Jaeger <aj@suse.de>
7378
7379         * cfgrtl.c (create_basic_block_structure):  Remove index argument
7380         and use last_basic_block++ instead.  (create_basic_block): Update.
7381         * cfgbuild.c (find_basic_blocks_1): Likewise.
7382
7383         * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
7384         * haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
7385         * sched-ebb.c (schedule_ebbs): Likewise.
7386         * sched-rgn.c (schedule_insns): Likewise.
7387         * ssa-ccp.c (ssa_const_prop): Likewise.
7388         * ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
7389         * toplev.c (rest_of_compilation): Likewise.
7390         * config/ia64/ia64.c (ia64_reorg): Likewise.
7391
7392 2002-06-10  Roger Sayle  <roger@eyesopen.com>
7393
7394         * simplify-rtx.c (simplify_replace_rtx): Allow replacement
7395         of matching registers.
7396
7397 2002-06-10  Roger Sayle  <roger@eyesopen.com>
7398
7399         * toplev.c (rest_of_compilation): Disable early if-conversion pass.
7400         * gcse.c (bypass_conditional_jumps): Fix typo in setcc test.
7401
7402 2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>
7403
7404         * config/mmix/mmix.h: Improve comments.
7405         (CPP_SPEC, CPP_PREDEFINES): Don't define.
7406         (TARGET_CPU_CPP_BUILTINS): Define.
7407         (CANONICALIZE_COMPARISON): Don't define, replace with comment.
7408         (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
7409         unused predicate.
7410         * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
7411         compiler warning.
7412         (mmix_constant_address_p): Remove another
7413         redundant test before case.
7414         (mmix_canonicalize_comparison): Remove unused function.
7415         (mmix_print_operand_address): Don't test and adjust for operand in
7416         non-canonical format.
7417         (mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
7418         (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.
7419
7420 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
7421
7422         * config/m32r/m32r.h: Don't define SELECT_CC_MODE.
7423         * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
7424         * config/m32r/m32r.c: Don't define m32r_select_cc_mode.
7425         (gen_compare): Use CCmode unconditionally.
7426
7427 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
7428
7429         PR optimization/6759
7430         * cse.c (cse_insn): Fold src_eqv just once, store it folded back into
7431         the REQ_EQUAL note.
7432
7433 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
7434
7435         PR c/6660
7436         * c-decl.c (grokfield): Allow user defined types if they declare
7437         structs or unions for unnamed fields.
7438
7439 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
7440
7441         PR c/6809
7442         * print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
7443
7444 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
7445
7446         PR optimization/6842
7447         * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
7448         operand subreg cannot be simplified.
7449
7450 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
7451
7452         * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
7453         (compare_constant): Likewise.
7454         (output_addressed_constants): Likewise.
7455
7456 2002-06-10  Jakub Jelinek  <jakub@redhat.com>
7457
7458         * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
7459         merge bb with itself.
7460
7461 2002-06-10  Richard Henderson  <rth@redhat.com>
7462
7463         * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
7464         (builtin_zapnot): Likewise.
7465
7466         * config/alpha/ev5.md: Don't combine shift and mvi insns in one
7467         reservation.
7468
7469 2002-06-10  Eric Christopher  <echristo@redhat.com>
7470
7471         * config/i386/i386.c (ix86_osf_output_function_prologue): Remove
7472         prototype and function.
7473         (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
7474         (call_insn_operand): Remove half pic references.
7475         (legitimate_address_p): Ditto.
7476         * config/i386/i386.h: Remove half pic defines.
7477
7478 2002-06-10  Eric Christopher  <echristo@redhat.com>
7479
7480         * doc/extend.texi (Return Address): Add note explaining the side-
7481         effects of inlining on __builtin_return_address.
7482
7483 2002-06-10  Tom Tromey  <tromey@redhat.com>
7484
7485         * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
7486         (c-common.o): Depend on langhooks.h.
7487
7488 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
7489
7490         * cpphash.h (_cpp_read_logical_line_trad,
7491         _cpp_expansions_different_trad): Update prototypes.
7492         * cpplex.c (continue_after_nul): New.
7493         * cppmain.c: Include cpphash.h.
7494         (scan_translation_unit_trad): New.
7495         (cpp_preprocess_file): Call it.
7496         * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
7497         overlay.
7498         (_cpp_expansions_different_trad): Update prototype.
7499
7500 Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
7501
7502         Fix cfi generation for SH[1-4]:
7503
7504         * sh.c (frame_insn): New function.
7505         (output_stack_adjust): Add parameter emit_fn.  All callers changed.
7506         (push): Now returns rtx.  Use frame_insn.
7507         (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
7508         of a DF register.
7509         * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.
7510
7511 2002-06-10  Zack Weinberg  <zack@codesourcery.com>
7512
7513         * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
7514         and gtype-desc.c.
7515         (mostlyclean): Delete specs.h, options.h, gencheck.h here...
7516         (distclean): ... not here.  But do delete all testsuite/*.log,
7517         testsuite/*.sum files here.  Delete mkheaders.  Delete
7518         po/*.gmo and the testsuite directory in a split tree build.
7519
7520 2002-06-10  Jeffrey Law  <law@redhat.com>
7521
7522         * alias.c (static_reg_base_value): New to hold RTL for
7523         items allocated once per function for the aliasing code.
7524         (init_alias_once_per_function): Initialize static_reg_base_value.
7525         (init_alias_analysis): Avoid throw-away allocations of RTL by
7526         using pre-computed values in static_reg_base_value.
7527         * function.c (prepare_function_start): Call
7528         init_alias_once_per_function appropriately.
7529         * rtl.h (init_alias_once_per_function): Declare.
7530         * caller-save (init_caller_save): Restructure slightly to
7531         avoid lots of silly RTL generation.
7532         * expr.c (init_expr_once): Likewise.
7533         * reload1.c (reload_cse_regs_1): Allocate throw-away register
7534         RTL object here.  Pass it into children.
7535         (reload_cse_simplify_operands): Use passed-in register RTL
7536         object.
7537         (reload_cse_simplify): Pass through throw-away register
7538         RTL object.
7539
7540 2002-06-10  Daniel Berlin  <dberlin@dberlin.org>
7541
7542         * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.
7543
7544 2002-06-10  Richard Sandiford  <rsandifo@redhat.com>
7545
7546         * gcc.c (process_command): Avoid assignment to read-only location.
7547         Fix sizeof calculation.
7548
7549 2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>
7550
7551         * cpphash.h (struct cpp_macro): Put comments on their own lines.
7552         (_cpp_expansions_different_trad): New.
7553         * cppmacro.c (warn_of_redefinition): Fix for traditional case.
7554         * cpptrad.c (canonicalize_text): New.
7555         (scan_out_logical_line): Handle no arguments correctly.
7556         (save_replacement_text): Commit memory when finished.
7557         (_cpp_expansions_different_trad): New.
7558
7559 2002-06-10  Tim Josling  <tej@melbpc.org.au>
7560
7561         * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
7562         TREELANG and COBOL.
7563         (lang_names): Add treelang and cobol.
7564         (get_file_basename): Add code to support treelang and cobol as
7565         4th and 5th users of c-common.c.
7566
7567 2002-06-09  Geoffrey Keating  <geoffk@redhat.com>
7568
7569         * Makefile.in (install-driver): Install driver as
7570         $(target_alias)-gcc-$(version).
7571         * gcc.c (spec_version): Make const.
7572         (process_command): Handle -V and -b by using exec.
7573         * doc/invoke.texi (Target Options): Restore -V option,
7574         update docs for -b option.
7575
7576 2002-06-10  Tim Josling  <tej@melbpc.org.au>
7577
7578         * configure.in (remaining_languages_check):
7579         Added check that all languages specified were found.
7580         Exit if not found. Previous behaviour was silent failure.
7581         * configure: Regenerated.
7582
7583 2002-06-10  Tim Josling  <tej@melbpc.org.au>
7584
7585          First steps to making treelang documentation compliant, based on
7586          instructions in sourcebuild.texi. Also add to gcc.c list of
7587          default languages.
7588
7589         * doc/contrib.texi: Add self as contributor of treelang.
7590
7591         * doc/frontends.texi: Add mention of treelang.
7592
7593         * doc/invoke.texi (Overall Options): Add mention of treelang.
7594
7595         * doc/standards.texi:  Add mention of treelang.
7596
7597 2002-06-09  Hans-Peter Nilsson  <hp@axis.com>
7598
7599         * config/cris/cris.c: Include ggc.h
7600
7601 2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>
7602
7603         * cpphash.h (_cpp_push_text_context): Update.
7604         (_cpp_arguments_ok): New.
7605         * cppmacro.c (_cpp_arguments_ok): New, split out from...
7606         (collect_args): ...here.
7607         (_cpp_push_text_context): Change inputs.
7608         * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
7609         replace_args_and_push): New.
7610         (lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
7611         Don't use IS macros directly.
7612         (scan_out_logical_line): Handle function-like macro argument
7613         collection.
7614         (push_replacement_text): Update.
7615         (replacement_length): Remove.
7616         (_cpp_create_trad_definition): Don't skip whitespace before
7617         checking for '('.
7618
7619 2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7620
7621         * config/avr/avr.c (avr_mcu_types): Update for new devices.
7622         * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
7623         (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
7624         * config/avr/avr.md ("type" and "length" attributes): New type
7625         "xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
7626         output a single "call" or "rcall" insn depending on device size.
7627         * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.
7628
7629 2002-06-09  David Edelsohn  <edelsohn@gnu.org>
7630
7631         * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
7632         synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
7633         assembler option.
7634         (CPP_CPU_SPEC): Add power3 and power4.
7635         (PROCESSOR_DEFAULT): Change to 604e.
7636         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
7637         (CPP_CPU_SPEC): Similar additions.
7638         (enum process_type): Add POWER4.
7639         (RTX_COSTS): Add POWER4.
7640         (CPP_CPU_SPEC): Similar additions.
7641         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
7642         (PROCESSOR_DEFAULT64): Define.
7643         * config/rs6000/rs6000.c (rs6000_override_options): Add power4.
7644         (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
7645         branch adjustment.
7646         (rs6000_issue_rate): Add Power4.
7647         * config/rs6000/rs6000.md (cpu attr): Add power4.
7648         (iu compare): Remove 604, 604e, 620, 630.
7649         Add basic Power4 scheduling information.
7650         (mfcr/mtcrf): Change type attribute to cr_logical.
7651
7652 2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7653
7654         * gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
7655         ATTRIBUTE_PRINTF_2.
7656         * gengtype-lex.l: Fix format specifier warning.
7657
7658         * genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
7659         not isspace.
7660         * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
7661         lieu of isspace/IDchar.
7662         * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
7663         * read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
7664         ISSPACE.
7665
7666 2002-06-08  Zack Weinberg  <zack@codesourcery.com>
7667
7668         * Makefile.in (LIBCPP_OBJS): Take out version.o.
7669         * cpphash.h (cpp_reader): Take out print_version member.
7670         * cppinit.c: (cpp_handle_option): Don't do anything with
7671         -version.  Just set help_only for --version, --target-help.
7672         Just set verbose option for -v.
7673         (cpp_post_options): Don't print a version string.
7674
7675 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7676
7677         * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
7678         (avr_section_type_flags): New, handle .noinit* sections.
7679
7680 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7681
7682         * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
7683         and include netbsd_entry_point.
7684         (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
7685         (NETBSD_ENTRY_POINT): Define.
7686
7687 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7688
7689         * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
7690         if not already defined.
7691         (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.
7692
7693 2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7694
7695         * config/avr/avr.c (avr_regs_to_save): No need to save any registers
7696         in a noreturn function.
7697         (avr_output_function_prologue, avr_output_function_epilogue):
7698         Correct function size calculation.  Do not crash on empty function.
7699         (avr_output_function_epilogue): No need for epilogue after a BARRIER.
7700
7701 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7702
7703         * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
7704         netbsd_link_spec and netbsd_entry_point.
7705         (LINK_SPEC): Use %(netbsd_link_spec).
7706         (NETBSD_ENTRY_POINT): Define.
7707
7708 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7709
7710         * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
7711         linker emulation.
7712         (LINK_ARCH64_SPEC): Likewise.
7713         (LINK_SPEC, NETBSD_ENTRY_POINT): Define.
7714         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.
7715
7716 2002-06-08  Marc Espie  <espie@openbsd.org>
7717
7718         * lists.c (free_list):  Fix typo in comment.
7719
7720 2002-06-08  Andreas Jaeger  <aj@suse.de>
7721
7722         * lcm.c (optimize_mode_switching): Add unused attribute for
7723         variable.
7724
7725         * sched-deps.c (sched_analyze): Remove unused variable.
7726
7727 2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>
7728
7729         * diagnostic.def: Don't capitalize diagnostict descriptors.
7730
7731 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7732
7733         * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
7734         (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
7735         (NETBSD_ENTRY_POINT): Define.
7736
7737 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7738
7739         * config/i386/netbsd-elf.h (LINK_SPEC): Define as
7740         NETBSD_LINK_SPEC_ELF.
7741         (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
7742         (NETBSD_ENTRY_POINT): Define.
7743         * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
7744         (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
7745         netbsd_entry_point.
7746         (NETBSD_ENTRY_POINT): Define.
7747
7748 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7749
7750         * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
7751         netbsd_link_spec and netbsd_entry_point.
7752         (LINK_SPEC): Use %(netbsd_link_spec).
7753         (NETBSD_ENTRY_POINT): Define.
7754
7755 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
7756
7757         * config/netbsd-elf.h (LINK_SPEC): Rename to...
7758         (NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
7759         to specify program entry point.
7760
7761 2002-06-07  Jeff Law <law@redhat.com
7762
7763         * emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
7764         * combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
7765         than creating a new register.
7766         (distribute_notes): Likewise.
7767         * df.c (df_reg_use_gen): Likewise.
7768         (df_reg_clobber_gen): Likewise.
7769         (df_ref_record): Likewise.
7770         * expr.c (use_regs): Likewise.
7771         * flow.c (propagate_one_insn): Likewise.
7772         (mark_set_1): Likewise.
7773         (mark_used_reg): Likewise.
7774         * reload.c (emit_reload_insns): Likewise.
7775
7776 2002-06-07  Roger Sayle  <roger@eyesopen.com>
7777
7778         * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
7779         (ne (comp x y) 0) into (comp x y) where comp is a comparison code.
7780         Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
7781         comparison code comp can be reversed.
7782
7783 2002-06-07  Roger Sayle  <roger@eyesopen.com>
7784
7785         * fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
7786         constants last in comparisons.  Optimize (x+1.0)>0.0 into the
7787         equivalent x > -1.0 when -ffast-math.
7788
7789 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
7790
7791         * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
7792         * config/mips/t-netbsd: New file.
7793
7794 2002-06-07  Zack Weinberg  <zack@codesourcery.com>
7795
7796         * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
7797         options their own entries.
7798         (parse_option): Clarify comment.
7799         (cpp_handle_option): Remove 'ignore' parameter and OPT_W
7800         special case.  Replace if/strcmp chain for -W options with
7801         use of new OPT_* entries for them.
7802         (cpp_handle_options): Update to match.
7803         * cpplib.h: Remove last parameter to cpp_handle_option from prototype.
7804         * c-decl.c: Update call to cpp_handle_option.
7805
7806 2002-06-07  Akim Demaille  <akim@epita.fr>
7807
7808         * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
7809         Whitespace changes.
7810
7811 2002-06-07  Jeffrey Law  <law@redhat.com>
7812
7813         * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
7814         on empty lists.
7815
7816 2002-06-07  H.J. Lu  (hjl@gnu.org)
7817
7818         * configure.in: Add --enable-__cxa_atexit.
7819         * configure: Regenerated.
7820         * config.in: Likewise.
7821
7822         * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
7823         not defined.
7824
7825 2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>
7826
7827         * diagnostic.c (diagnostic_build_prefix): Fix initialization.
7828
7829 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
7830
7831         * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.
7832
7833 2002-06-07  Jason Merrill  <jason@redhat.com>
7834
7835         * cppexp.c (num_equality_op): Use a temporary variable to work
7836         around gcc 3.0.4 bug.
7837
7838 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
7839
7840         * diagnostic.c (diagnostic_build_prefix): Tidy.
7841
7842 2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7843
7844         * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
7845         scan_parameters, save_replacement_text, replacement_length): New.
7846         (scan_out_logical_line): Take a macro and save parameters if
7847         non-NULL.
7848         (_cpp_logical_line_trad): Update.
7849         (_cpp_create_trad_definition): Update to handle function-like
7850         macros.
7851         * cpplex.c (new_buff): Update.
7852         (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
7853         * cpphash.h: ...here.
7854         (CPP_ALIGN2, _cpp_save_parameter): New.
7855         * cppmacro.c (save_parameter): Rename, export.
7856         (parse_params): Update.
7857
7858 2002-06-07  Andreas Jaeger  <aj@suse.de>
7859
7860         * config/mmix/mmix.c: Remove extra broken prototype for
7861         mmix_init_machine_status.
7862
7863 2002-06-06  Geoffrey Keating  <geoffk@redhat.com>
7864
7865         * gengtype.c: Add comments before all the routines.
7866
7867 2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>
7868
7869         * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
7870         from and add t-sh64 to ${tmake_file}.
7871         (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
7872         * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
7873         * config/sh/t-netbsd-sh5-32: Remove.
7874         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
7875         MULTILIB_ENDIAN.
7876         (MULTILIB_DIRNAMES): Define.
7877
7878 Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>
7879
7880         * i386.md (and promoting splitters): Disable QI to SImode promoting
7881         when doing so changes immediate to be 32bit.
7882
7883         * rtl.h (emit_*_scope): Declare.
7884         * emit-rtl.c (emit_*_scope): New global functions.
7885         (try_split): Copy scope.
7886         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
7887         noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
7888         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
7889         noce_process_if_block, find_cond_trap): Copy scopes.
7890         * recog.c (peephole2_optimize): likewise.
7891
7892 2002-06-06  Jeffrey Law  <law@redhat.com>
7893
7894         * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.
7895
7896 Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>
7897
7898         * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".
7899
7900 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7901
7902         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
7903         ($(docdir)/gccinstall.info): New target.
7904         (info): Depend on it.
7905         (gccinstall.dvi): New target.
7906         (dvi): Depend on it.
7907         * doc/.cvsignore: Ignore new info files.
7908         * doc/install.texi (@setfilename): Reflect new info filename.
7909
7910 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
7911
7912         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
7913         on an UNSPEC.
7914
7915 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
7916
7917         PR objc/6834
7918         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
7919         c_common_get_alias_set.
7920         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.
7921
7922 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7923
7924         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
7925         functions.
7926         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
7927         * avr/avr.c (avr_output_function_epilogue): Use above to determine
7928         function size.
7929         * pa/pa.c (pa_output_function_prologue): Likewise.
7930
7931 2002-06-05  David S. Miller  <davem@redhat.com>
7932
7933         * integrate.c (subst_constants): Handle 'B' RTL format.
7934
7935 2002-06-05  Eric Christopher  <echristo@redhat.com>
7936
7937         * varasm.c (make_decl_rtl): Fix comment for removed
7938         halfpic.c.
7939
7940 2002-06-05  Eric Christopher  <echristo@redhat.com>
7941
7942         * Makefile.in: Remove missed halfpic bits.
7943
7944 2002-06-05  Eric Christopher  <echristo@redhat.com>
7945
7946         * toplev.c: Remove half-pic.
7947         * config/mips/mips.c: Ditto.
7948         * config/mips/mips.h: Ditto. Remove unused defines.
7949         * config/mips/openbsd.h: Update comment to reflect above.
7950         * config/mips/mips.md: Remove half-pic constraints.
7951         * halfpic.h: Delete.
7952         * halfpic.c: Ditto.
7953
7954 2002-06-05  Jeffrey Law  <law@redhat.com>
7955
7956         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
7957         rejects (mem (lo_sum (reg) (unspec))), but will allow
7958         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
7959
7960 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7961
7962         * cpphash.h (_cpp_create_definition): Update prototype.
7963         (_cpp_push_text_context, _cpp_create_trad_definition): New.
7964         ( cpp_lex_identifier_trad): New.
7965         (_cpp_set_trad_context): New.
7966         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
7967         * cpplib.c (SEEN_EOL): Update.
7968         (lex_macro_node): Update for -traditional.
7969         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
7970         * cppmacro.c (_cpp_create_definition): Split into
7971         create_iso_definition() and _cpp_create_trad_definition().
7972         (warn_of_redefinition): Update prototype; handle traditional
7973         macros.
7974         (_cpp_push_text_context): New.
7975         * cpptrad.c (skip_whitespace, push_replacement_text): New.
7976         (lex_identifier): Call ht_lookup with correct start.
7977         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
7978         _cpp_set_trad_context): New.
7979         (scan_out_logical_line): Update to handle changing contexts.
7980
7981 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
7982
7983         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
7984         (shl*-*-elf*): Add.
7985         * config/sh/t-be (MULTILIB_ENDIAN): Set.
7986         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
7987         * t-sh (MULTILIB_ENDIAN): Set.
7988         (MULTILIB_OPTIONS): Use it.
7989         * t-sh64 (MULTILIB_OPTIONS): Likewise.
7990         (MULTILIB_DIRNAMES): Likewise.
7991
7992 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
7993
7994         * toplev.h (report_error_function): Remove.
7995
7996         * diagnostic.h (location_t): New datatype.
7997         (text_info): Likewise.
7998         (diagnostic_info): Likewise.
7999         (output_prefix): New macro.
8000         (diagnostic_last_function_changed): Likewise.
8001         (diagnostic_set_last_function): Likewise.
8002         (diagnostic_last_module_changed): Likewise.
8003         (diagnostic_set_last_module): Likewise.
8004         (report_diagnostic): Now macro.
8005         (diagnostic_set_info): Declare.
8006
8007         * diagnostic.c (report_problematic_module): Rename to
8008         diagnostic_repor_current_module.
8009         (set_diagnostic_context): Remove.
8010         (count_error): Rename to diagnostic_error_count.
8011         (error_function_changed): Remove.
8012         (record_last_error_function): Likewise.
8013         (error_module_changed): Likewise.
8014         (record_last_error_module): Likewise.
8015         (context_as_prefix): Rename to diagnostic_build_prefix.
8016         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
8017         (diagnostic_set_info): New function.
8018
8019         * objc/objc-act.c: #include diagnostic.h
8020         (error_with_ivar): Adjust call to count_error.
8021         (warn_with_method): Likewise.
8022         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
8023
8024 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
8025
8026         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
8027         lang_hooks.types.make_type instead of make_node; set up
8028         __va_list_tag type decl.
8029         (xtensa_builtin_saveregs): Remove broken use of
8030         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
8031         for saved registers; add varargs alias set.
8032
8033 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
8034
8035 config:
8036         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
8037         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
8038         CPP_PREDEFINES and part of CPP_SPEC.
8039         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
8040         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
8041
8042 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
8043
8044         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
8045
8046 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
8047
8048         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
8049
8050 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
8051
8052         * gengtype-yacc.y: Make sure all rules end with a semicolon.
8053
8054 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
8055
8056         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
8057         typo in function prototype and include "ggc.h" header.
8058
8059 2002-06-04  Richard Henderson  <rth@redhat.com>
8060
8061         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
8062         (print_operand) ['U']: Likewise.
8063         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
8064         (alpha_expand_unaligned_store_words): Likewise.
8065         (alpha_expand_builtin_vector_binop): Fix typo.
8066         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
8067         umulh, and cix insns.
8068         (one_arg_builtins): Add cix builtins.
8069         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
8070         (alpha_expand_builtin): Fix typo in arity.
8071         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
8072         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
8073         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
8074         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
8075         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
8076         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
8077         builtin_ctlz, builtin_ctpop): New.
8078         * doc/extend.texi (Alpha Built-in Functions): Update.
8079
8080 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
8081
8082         * gengtype.c (write_gc_root): Don't unnecessarily prevent
8083         global variable-length arrays being roots.
8084
8085         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
8086         * configure.in (config_gtfiles): New variable.
8087         (all_gtfiles): Initialise from config_gtfiles.
8088         * configure: Regenerate.
8089
8090 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8091
8092 config/i386:
8093         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
8094         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
8095         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
8096         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
8097         win32.h (CPP_SPEC): Remove cpp_cpu.
8098         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
8099         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
8100
8101 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
8102
8103         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
8104
8105 2002-06-04  Jeff Law <law@redhat.com.
8106             David Edelsohn <edelsohn@gnu.org>
8107             Michael Matz <matz@kde.org>
8108
8109         * sched-int.h (struct deps): New field libcall_block_tail_insn.
8110         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
8111         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
8112         is set, then mark the current insn as being part of a libcall
8113         scheduling group.
8114         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
8115
8116         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
8117         insns against the issue rate.
8118
8119 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
8120
8121         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
8122         * final.c (final_scan_insn): Likewise.
8123         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
8124         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
8125         * haifa-sched.c (unlink_other_notes): Likeewise.
8126         (reemit_notes): Likewise.
8127         * print-rtl.c (print_rtx): Likewise.
8128         * sched-deps (sched-analyze): Likewise.
8129         * rtl.c (note_insn_name): Likewise.
8130         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
8131         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
8132         (RANGE_*): Kill.
8133
8134 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
8135
8136         * varasm.c (mark_constants): Handle RTX format 'B'.
8137
8138 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
8139
8140         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
8141         (struct cpp_context): Add traditional fields.
8142         * cppmacro.c (paste_all_tokens, push_ptoken_context,
8143         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
8144         * cpptrad.c (skip_comment, lex_identifier,
8145         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
8146
8147 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
8148
8149         * gbl-ctors.h: Fix formatting.
8150         * gcc.c: Likewise.
8151         * gccspec.c: Likewise.
8152         * gcov.c: Likewise.
8153         * gcov-io.h: Likewise.
8154         * gcse.c: Likewise.
8155         * ggc-common.c: Likewise.
8156         * ggc.h: Likewise.
8157         * ggc-page.c: Likewise.
8158         * ggc-simple.c: Likewise.
8159         * global.c: Likewise.
8160         * graph.h: Likewise.
8161         * gthr-dce.h: Likewise.
8162         * gthr.h: Likewise.
8163         * gthr-posix.h: Likewise.
8164         * gthr-rtems.h: Likewise.
8165         * gthr-solaris.h: Likewise.
8166         * gthr-win32.h: Likewise.
8167
8168 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
8169
8170         Merge from pch-branch:
8171
8172         * gengtype.h (UNION_OR_STRUCT_P): New macro.
8173         * gengtype.c (write_gc_structure_fields): Use it.
8174         (write_gc_root): Use it here too.
8175
8176         * gengtype.c (write_gc_structure_fields): Assume that lengths
8177         of typenames fit into an 'int'; don't pass a size_t to "%d" in
8178         printf.
8179         (write_gc_marker_routine_for_structure): Likewise.
8180         (write_gc_types): Likewise.
8181         (write_gc_root): Likewise.
8182
8183         * varray.h (VARRAY_CLEAR): New.
8184         (varray_clear): Prototype.
8185         * varray.c (varray_clear): New.
8186         * cselib.c (reg_values_old): New.
8187         (used_regs_old): New.
8188         (cselib_init): Use cached varrays if available to avoid
8189         generating large amounts of garbage.
8190         (cselib_finish): Don't throw away old varrays.
8191
8192         * final.c (insn_addresses_): Move out of ifdef.
8193
8194         * varray.c (uses_ggc): Make more varray kinds GCable.
8195         * varray.h (union varray_data_tag): Let gengtype see
8196         fields 'generic' and 'te'.
8197         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
8198         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
8199         (reg_to_stack): Don't call VARRAY_FREE.
8200         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
8201         (insn_addresses_): Use gengtype to mark.
8202         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
8203         pointers; handle generic pointers in unused union fields.
8204         (get_output_file_with_visibility): Include cselib.h,
8205         insn-addr.h in gtype-desc.c.
8206         * function.c (prologue): Use gengtype to mark.
8207         (epilogue): Likewise.
8208         (sibcall_epilogue): Likewise.
8209         * dependence.c: Include gt-dependence.h, ggc.h.
8210         (struct def_use): Use gengtype to mark.
8211         (struct loop): Likewise.
8212         (struct induction): Likewise.
8213         (struct dependence): Likewise.
8214         (def_use_chain): Likewise.
8215         (dep_chain): Likewise.
8216         (loop_chain): Likewise.
8217         (induction_chain): Likewise.
8218         (init_dependence_analysis): Don't free anything, just clear pointers.
8219         (build_def_use): Use GGC to allocate def_use.
8220         (add_loop): Use GGC to allocate loop.
8221         (find_induction_variable): Use GGC to allocate induction.
8222         (check_node_dependence): Use GGC to allocate induction, dependence.
8223         (dump_node_dependence): Don't free varrays.
8224         (end_dependence_analysis): Likewise.
8225         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
8226         (struct elt_loc_list): Likewise.
8227         (struct elt_list): Likewise.
8228         * cselib.c: Don't include obstack.h.
8229         (hash_table): Use gengtype to mark.
8230         (reg_values): Use gengtype to mark.
8231         (used_regs): Use gengtype to mark.
8232         (cselib_obstack): Delete.
8233         (cselib_startobj): Delete.
8234         (empty_vals): Mark as deletable.
8235         (empty_elt_lists): Mark as deletable.
8236         (empty_elt_loc_lists): Mark as deletable.
8237         (new_elt_list): Use GGC to allocate struct elt_list.
8238         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
8239         (clear_table): Don't delete obstack; don't unnecessarily clear
8240         deletable variables.
8241         (new_cselib_val): Use GGC to allocate struct cselib_val.
8242         (cselib_init): Don't set up obstacks.  Use GGC to allocate
8243         hash table.
8244         (cselib_finish): Just clear variables, don't free anything.
8245         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
8246         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
8247         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
8248         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
8249         (gt-reg-stack.h): New rule.
8250         (gt-dependence.h): New rule.
8251         (gtype-desc.o): Add cselib.h, insn-addr.h.
8252
8253         * varray.c: Use only necessary headers.
8254         (element_size): New.
8255         (uses_ggc): New.
8256         (varray_init): Take type, not size.  Use GGC if appropriate.
8257         (varray_grow): Update for change to struct varray_head_tag.
8258         Use GGC if appropriate.
8259         * varray.h (struct const_equiv_data): Use gengtype.
8260         (enum varray_data_enum): New.
8261         (union varray_data_tag): Use gengtype.
8262         (struct varray_head_tag): Use gengtype.  Replace size field with
8263         enum varray_data_enum.
8264         (varray_init): Update prototype.
8265         (VARRAY_SCHED_INIT): Delete.
8266         (VARRAY_*_INIT): Update for change to varray_init.
8267         (VARRAY_SCHED): Delete.
8268         (VARRAY_PUSH_SCHED): Delete.
8269         (VARRAY_TOP_SCHED): Delete.
8270         * tree.h: Update for change to length specifier.
8271         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
8272         (clone_body): Likewise.
8273         * ssa.h (ssa_definition): Use gengtype to mark.
8274         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
8275         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
8276         * rtl.h (struct rtvec_def): Update for change to length specifier.
8277         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
8278         (struct initial_value_struct): Update for change to length specifier.
8279         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
8280         (ggc_add_tree_varray_root): Delete prototype.
8281         (ggc_mark_rtx_varray): Delete prototype.
8282         (ggc_mark_tree_varray): Delete prototype.
8283         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
8284         (ggc_add_tree_varray_root): Delete.
8285         (ggc_mark_rtx_varray): Delete.
8286         (ggc_mark_tree_varray): Delete.
8287         (ggc_mark_rtx_varray_ptr): Delete.
8288         (ggc_mark_tree_varray_ptr): Delete.
8289         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
8290         (create_varray): Delete prototype.
8291         * gengtype.c (varrays): Delete.
8292         (create_varray): Delete.
8293         (adjust_field_type): Detect array of string pointers.
8294         (process_gc_options): Remove code to handle varray_type option.
8295         (set_gc_used_type): Remove TYPE_VARRAY case.
8296         (output_escaped_param): New.
8297         (write_gc_structure_fields): Use output_escaped_param on all
8298         parameters.  Handle 'skip' with 'use_param' option.  Handle
8299         arrays of strings.  Remove TYPE_VARRAY handling.
8300         (write_gc_roots): Use boolean to detect 'length' option.
8301         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
8302         (struct_fields): Call adjust_field_type on array fields.
8303         (type): Remove VARRAY_TYPE case.
8304         (type_option): Likewise.
8305         * gengtype-lex.l: Don't consider varray_type a keyword.
8306         * function.h: Update for change to length specifier.
8307         (free_eh_status): Delete prototype.
8308         * function.c (free_after_compilation): Don't call free_eh_status.
8309         (reorder_blocks): Don't use VARRAY_FREE.
8310         * except.c (struct eh_status): Update for change to length specifier.
8311         remove varray_type specifier.
8312         (free_eh_status): Delete.
8313         * dwarf2out.c: Include gt-dwarf2out.h.
8314         (used_rtx_varray): Use gengtype to mark, move
8315         outside ifdefs.
8316         (incomplete_types): Likewise.
8317         (decl_scope_table): Likewise.
8318         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
8319         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
8320         * c-tree.h (struct lang_type): Update for change to length specifier.
8321         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
8322         * c-objc-common.c: Include gt-c-objc-common.h.
8323         (deferred_fns): Mark for gengtype.
8324         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
8325         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
8326         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
8327         (gtype-desc.o): Update dependencies.
8328         (dwarf2out.o): Add gt-dwarf2out.h.
8329         (varray.o): Update dependencies.
8330         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
8331         (gt-c-objc-common.h): New rule.
8332         (gt-dwarf2out.h): New rule.
8333         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
8334
8335         * doc/gty.texi (GTY Options): Correct spelling.
8336         (GGC Roots): Likewise.
8337         * Makefile.in (TEXI_CPP_FILES): New.
8338         (TEXI_GCC_FILES): New.
8339         (TEXI_GCCINT_FILES): New.
8340         (TEXI_CPPINT_FILES): New.
8341         ($(docdir)/cpp.info): Use new macros.
8342         ($(docdir)/gcc.info): Likewise.
8343         ($(docdir)/gccint.info): Likewise.
8344         ($(docdir)/cppinternals.info): Likewise.
8345         (cpp.dvi): Likewise.
8346         (gcc.dvi): Likewise.
8347         (gccint.dvi): Likewise.
8348         (cppinternals.dvi): Likewise.
8349
8350         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
8351         * doc/gccint.texi (Top): Include gty.texi.
8352         * doc/gty.texi: New file.
8353
8354         * bitmap.c: Include ggc.h, gt-bitmap.h.
8355         (bitmap_ggc_free): New.
8356         (bitmap_elem_to_freelist): New.
8357         (bitmap_element_free): Use bitmap_elem_to_freelist.
8358         (bitmap_element_allocate): Allow use of GGC.
8359         (bitmap_clear): Use bitmap_elem_to_freelist.
8360         (bitmap_copy): Update for change to bitmap_element_allocate.
8361         (bitmap_set_bit): Likewise.
8362         (bitmap_operation): Update for changes elsewhere.
8363         (bitmap_initialize): Allow to create bitmaps that will use GGC.
8364         * bitmap.h (struct bitmap_element_def): Use gengtype.
8365         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
8366         (bitmap_initialize): Add extra parameter.
8367         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
8368         (BITMAP_ALLOCA): Delete.
8369         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
8370         (BITMAP_GGC_ALLOC): New.
8371         * Makefile.in (gtype-desc.o): Add bitmap.h.
8372         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
8373         (GTFILES): Add bitmap.c.
8374         (gt-bitmap.h): New rule.
8375         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
8376         * basic-block.h: Update for changes to bitmap_initialize.
8377         * except.c (exception_handler_label_map): Move into...
8378         (struct eh_status): Here.
8379         (struct eh_region): Make 'aka' GCable.
8380         (free_eh_status): Don't need to specially handle
8381         exception_handler_label_map.
8382         (add_ehl_entry): Update for changes to exception_handler_label_map.
8383         (find_exception_handler_labels): Likewise.
8384         (remove_exception_handler_label): Likewise.
8385         (maybe_remove_eh_handler): Likewise.
8386         (for_each_eh_label): Likewise.
8387         (remove_eh_handler): Allocate 'aka' using GGC.
8388         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
8389         to list of includes.
8390
8391         * gengtype.c (write_gc_marker_routine_for_structure): Name
8392         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
8393         (write_gc_types): Arrange for the tests with NULL to be inlined.
8394         (write_gc_roots): Update uses of procedure pointers.
8395         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
8396
8397         * Makefile.in (explow.o): Add dependency on gt-explow.h.
8398         (sdbout.o): Add dependency on gt-sdbout.h.
8399
8400         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
8401         (mem_attrs_htab): Likewise.
8402         (init_emit_once): Don't call ggc_add_deletable_htab.
8403         * fold-const.c (size_htab): Use gengtype to clear unused entries.
8404         (size_int_type_wide): Don't call ggc_add_deletable_htab.
8405         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
8406         parameters, use them, change callers.
8407         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
8408         (write_gc_roots): Handle 'if_marked' option.
8409         (main): Don't need to call set_gc_used_type any more.
8410         * ggc.h (ggc_htab_marked_p): Delete.
8411         (ggc_htab_mark): Delete.
8412         (struct ggc_cache_tab): New.
8413         (gt_ggc_cache_rtab): New declaration.
8414         * ggc-common.c (struct d_htab_root): Delete.
8415         (d_htab_roots): Delete.
8416         (ggc_add_deletable_htab): Delete.
8417         (ggc_htab_delete): Handle new htab-deleting mechanism.
8418         (ggc_mark_roots): Use new htab-deleting mechanism.
8419         * tree.c (type_hash_table): Use gengtype to clear unused entries.
8420         Make static.
8421         (init_obstacks): Don't call ggc_add_deletable_htab.
8422
8423         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
8424         (struct hashed_entry): Likewise.
8425         (nst_method_hash_list): Likewise.
8426         (cls_method_hash_list): Likewise.
8427         (HASH_ALLOC_LIST_SIZE): Delete.
8428         (ATTR_ALLOC_LIST_SIZE): Delete.
8429         * objc/objc-act.c (hash_init): Use ggc to allocate
8430         nst_method_hash_list, cls_method_hash_list.
8431         (hash_enter): Use ggc to allocate; allocate one entry at a time.
8432         (hash_add_attr): Likewise.
8433         (ggc_mark_hash_table): Delete.
8434         (objc_act_parse_init): Delete.
8435         (objc_init): Delete reference to objc_act_parse_init.
8436         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
8437         obstack.h.  Replace references to 'struct hash_table' with htab_t.
8438         (struct symbol_hash_entry): Replace hash header with key field.
8439         (struct file_hash_entry): Replace hash header with key field.
8440         (struct demangled_hash_entry): Replace hash header with key field.
8441         (hash_string_eq): New.
8442         (hash_string_hash): New.
8443         (symbol_hash_newfunc): Delete.
8444         (symbol_hash_lookup): Modify to use htab_t.
8445         (file_hash_newfunc): Delete.
8446         (file_hash_lookup): Modify to use htab_t.
8447         (demangled_hash_newfunc): Delete.
8448         (demangled_hash_lookup): Modify to use htab_t.
8449         (tlink_init): Modify to use htab_t.
8450         * hash.h: Delete.
8451         * hash.c: Delete.
8452         * ggc.h: Delete forward structure declarations.
8453         Delete prototypes for deleted functions.
8454         * ggc-common.c: Don't include hash.h.
8455         (ggc_add_tree_hash_table_root): Delete.
8456         (ggc_mark_tree_hash_table_entry): Delete.
8457         (ggc_mark_tree_hash_table): Delete.
8458         (ggc_mark_tree_hash_table_ptr): Delete.
8459         * gengtype.c (write_gc_structure_fields): Allow param_is option.
8460         (write_gc_marker_routine_for_structure): Use visibility of
8461         the parameter if there is one.
8462         * function.c: Replace hash.h with hashtab.h.  Replace references
8463         to 'struct hash_table *' with htab_t.
8464         (struct insns_for_mem_entry): Include a plain key.
8465         (fixup_var_refs_insns_with_hash): Update to use htab_t.
8466         (insns_for_mem_newfunc): Delete.
8467         (insns_for_mem_hash): Update to use htab_t.
8468         (insns_for_mem_comp): Likewise.
8469         (insns_for_mem_walk): Likewise.
8470         * c-lang.c: Include ggc.h.
8471         * Makefile.in (OBJS): Remove hash.o.
8472         (c-lang.o): Add GGC_H.
8473         (COLLECT2_OBJS): Remove hash.o.
8474         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
8475         (ggc-common.o): Remove hash.h.
8476         (function.o): Remove hash.h, add HASHTAB_H.
8477         (genautomata.o): Remove hash.h, add HASHTAB_H.
8478
8479         * varasm.c (mark_const_str_htab_1): Delete.
8480         (mark_const_str_htab): Delete.
8481         (const_str_htab_del): Delete.
8482         (const_str_htab): Use gengtype to mark.
8483         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
8484         allocate them.
8485         * tree.c (mark_tree_hashtable_entry): Delete.
8486         (mark_tree_hashtable): Delete.
8487         * tree.h (mark_tree_hashtable): Delete prototype.
8488         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
8489         (ggc_mark): Likewise.
8490         (ggc_calloc): New.
8491         (htab_create_ggc): New.
8492         * ggc-common.c (ggc_calloc): New.
8493         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
8494         (struct type): Add param_struct structure.
8495         * gengtype.c (param_structs): New.
8496         (adjust_field_type): Handle param_is option.
8497         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
8498         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
8499         (write_gc_structure_fields): Add new PARAM parameter.  Update
8500         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
8501         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
8502         Use it to generate function name.  Update callers.
8503         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
8504         Process them.
8505         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
8506         option.
8507         (main): Define PTR as pointer-to-scalar.  Don't specially
8508         mark deferred_string or ehl_map_entry.
8509         * gengtype-yacc.y (PARAM_IS): Add new token.
8510         (externstatic): Use adjust_field_type.
8511         (type_option): Add PARAM_IS.
8512         * gengtype-lex.l: Add rule for typedef of function pointers.
8513         Add rule for PARAM_IS.
8514         (IWORD): Add size_t.
8515         * except.c (exception_handler_label_map): Use gengtype to mark.
8516         (type_to_runtime_map): Likewise.
8517         (mark_ehl_map_entry): Delete.
8518         (mark_ehl_map): Delete.
8519         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
8520         (t2r_mark_1): Delete.
8521         (t2r_mark): Delete.
8522         * Makefile.in (gtype-desc.o): Correct dependencies.
8523         (GTFILES): Add hashtab.h.
8524         (genautomata.o): Actually uses hashtab.h.
8525
8526         * Makefile.in (stringpool.o): Add $(GGC_H).
8527         (dwarf2asm.o): Likewise.
8528         (GTFILES): Add hashtable.h.
8529         * c-common.h (struct c_common_identifier): Use gengtype.
8530         * c-decl.h (c_mark_tree): Delete.
8531         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
8532         * c-tree.h (struct lang_identifier): Use gengtype.
8533         (union lang_tree_node): New.
8534         (c_mark_tree): Delete prototype.
8535         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
8536         dwarf2_debug_hooks.
8537         * gengtype-lex.l (IWORD): Allow 'bool'.
8538         (ptr_alias): Match.
8539         * gengtype-yacc.y (ALIAS): New token.
8540         (type_option): New rule.
8541         (option): Use type_option.
8542         * gengtype.c (process_gc_options): New.
8543         (set_gc_used_type): Use it.
8544         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
8545         Add new variable 't' to hold the type of the field being processed.
8546         Add more error checking.  Use UNION_P when looking at 'desc' option.
8547         Handle language-specific structures containing other
8548         language-specific structures.
8549         (write_gc_types): Handle 'ptr_alias' option.
8550         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
8551         * ggc-common.c (ggc_pending_trees): Delete.
8552         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
8553         (ggc_mark_trees): Delete.
8554         (gt_ggc_m_tree_node): Delete.
8555         * ggc.h (ggc_pending_trees): Delete.
8556         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
8557         * hashtable.h (ht_identifier): Use gengtype.
8558         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
8559         * langhooks.h (struct lang_hooks): Delete mark_tree.
8560         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
8561         anyway.
8562         * system.h: Poison LANG_HOOKS_MARK_TREE.
8563         * tree.c (tree_node_structure): New.
8564         * tree.h (struct tree_common): Use gengtype.
8565         (struct tree_int_cst): Likewise.
8566         (struct tree_real_cst): Likewise.
8567         (struct tree_string): Likewise.
8568         (struct tree_complex): Likewise.
8569         (struct tree_vector): Likewise.
8570         (struct tree_identifier): Likewise.
8571         (struct tree_list): Likewise.
8572         (struct tree_vec): Likewise.
8573         (struct tree_exp): Likewise.
8574         (struct tree_block): Likewise.
8575         (struct tree_type): Likewise.
8576         (struct tree_decl): Likewise.
8577         (enum tree_structure_enum): New.
8578         (union tree_node): Use gengtype, with an alias.
8579         (tree_node_structure): Prototype.
8580         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
8581
8582         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
8583         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
8584         to LANG_HOOKS_FUNCTION_FINAL.
8585         * Makefile.in (GTFILES): Add bitmap.h.
8586         * except.c (struct eh_region): Mark field 'aka' to be skipped.
8587
8588         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
8589         (alpha_init_machine_status): Give proper type.
8590         * Makefile.in (c-lang.o): Depend on gtype-c.h.
8591         (optabs.o): Depend on gt-optabs.h.
8592         (GTFILES): Add optabs.o.
8593         (gt-optabs.h): Add rule.
8594         * optabs.c: Include gt-optabs.h.
8595
8596         * gengtype.c (set_gc_used_type): Correct some errors in last change.
8597         (write_gc_structure_fields): If a field which should be NULL is
8598         not, abort.
8599         * c-pragma.c: Move struct align_stack and variable alignment_stack
8600         out from the ifdef.
8601
8602         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
8603         * config/xtensa/xtensa.c: Include gt-cris.h.
8604         (struct machine_function): Use gengtype to mark.
8605         * config/mmix/mmix.h (struct machine_function): Use gengtype
8606         to mark.
8607         * config/cris/t-cris: Add dependencies for gt-cris.h.
8608         * config/cris/cris.c: Include gt-cris.h.
8609         (struct machine_function): Use gengtype to mark.
8610         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
8611         to mark.
8612         * doc/tm.texi (Per-Function Data): Delete references to
8613         mark_machine_status.
8614         * config/ia64/ia64.c (ia64_override_options): Don't set
8615         mark_machine_status.
8616         * config/i386/i386.c (override_options): Likewise.
8617         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
8618         * config/arm/arm.c (arm_init_expanders): Likewise.
8619         * config/alpha/alpha.c (override_options): Likewise.
8620         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
8621         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
8622         (write_gc_structure_fields): Don't handle 'really' option.
8623         Handle 'maybe_null' option.
8624         (write_gc_types): Handle 'maybe_null' option.
8625         * function.h (struct function): Don't use "really".
8626         (mark_machine_status): Delete declaration.
8627         (mark_lang_status): Delete declaration.
8628         (gt_ggc_mr_machine_function): Delete prototype.
8629         (gt_ggc_mr_language_function): Delete prototype.
8630         * function.c (mark_machine_status): Delete.
8631         (mark_lang_status): Delete.
8632         (gt_ggc_mr_machine_function): Delete.
8633         (gt_ggc_mr_language_function): Delete.
8634         * c-tree.h (mark_c_function_context): Delete prototype.
8635         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
8636         * c-decl.c (struct language_function): Rename from struct
8637         c_language_function.  Update uses.  Use gengtype to mark.
8638         (mark_c_function_context): Delete.
8639         * c-common.h (struct c_language_function): Rename from struct
8640         language_function.
8641         (mark_stmt_tree): Delete prototype.
8642         (c_mark_lang_decl): Delete prototype.
8643         (mark_c_language_function): Delete prototype.
8644         * c-common.c (mark_stmt_tree): Delete.
8645         (c_mark_lang_decl): Delete.
8646         (mark_c_language_function): Delete.
8647
8648         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
8649         (lang_bitmap): New typedef.  Use where appropriate.
8650         (struct type): Add gc_used field, lang_struct field.
8651         (UNION_P): New macro.
8652         (new_structure): New prototype.
8653         (find_structure): Remove 'pos' parameter.  Change all callers.
8654         * gengtype-lex.l: Update for changes to find_structure.
8655         * gengtype-yacc.y (typedef_struct): Use new_structure.
8656         (yacc_ids): Suppress warning.
8657         (type): Use new_structure.
8658         * gengtype.c (string_type): Update for changes to struct type.
8659         (find_structure): Just find a structure, don't worry about
8660         creating one.
8661         (new_structure): New.
8662         (note_yacc_type): Use new_structure.
8663         (set_gc_used_type): New.
8664         (set_gc_used): New.
8665         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
8666         (write_gc_types): Handle TYPE_LANG_STRUCT.
8667         (write_gc_marker_routine_for_structure): New.
8668         (main): Call set_gc_used.  Add some calls to set_gc_used_type
8669         for places where GCC doesn't use gengtype properly yet.
8670         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
8671         (gt_ggc_m_tree_node): Likewise.
8672
8673         * varasm.c (copy_constant): Call expand_constant if we hit
8674         something we can't recognise.
8675
8676         * ggc-common.c (ggc_mark_rtvec_children): Delete.
8677         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
8678         (lang_mark_false_label_stack): Delete.
8679         * rtl.h (struct rtvec_def): Use gengtype to mark.
8680         * ggc.h (ggc_mark_rtvec): Delete.
8681         (gt_ggc_m_rtvec_def): Delete.
8682         (ggc_mark_nonnull_tree): Delete.
8683         (ggc_mark_rtvec_children): Delete prototype.
8684         (lang_mark_false_label_stack): Delete declaration.
8685
8686         * gengtype.h (note_yacc_type): Add prototype.
8687         * gengtype.c (note_yacc_type): New function.
8688         * gengtype-lex.l: Add lexer support for yacc files.
8689         * gengtype-yacc.y (start): Extract union from yacc files.
8690         (yacc_union): New rule.
8691         (yacc_typematch): New rule.
8692         (yacc_ids): New rule.
8693         (enum_items): Tweak for efficiency.
8694         (optionseq): Likewise.
8695
8696         * c-common.h (struct language_function): Use gengtype.
8697         (struct c_lang_decl): Likewise.
8698         * c-tree.h (struct lang_decl): Likewise.
8699         (struct lang_type): Likewise.
8700         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
8701         tree language substructures.
8702
8703         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
8704         ggc_mark_tree.
8705         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
8706
8707         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
8708
8709         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
8710         mark. Remove 'data.block.cleanup_ptr' field.
8711         (struct stmt_status): Use usual technique to mark struct nesting.
8712         (gt_ggc_mr_nesting_cond): Delete.
8713         (gt_ggc_mr_nesting_loop): Delete.
8714         (gt_ggc_mr_nesting_block): Delete.
8715         (gt_ggc_mr_nesting_case_stmt): Delete.
8716         (expand_start_cond): Set discriminator.
8717         (expand_start_loop): Likewise.
8718         (expand_start_null_loop): Likewise.
8719         (expand_start_bindings_and_block): Set discriminator.  Don't set
8720         deleted fields.
8721         (expand_decl_cleanup): Replace 'cleanup_ptr' with
8722         &thisblock->data.block.cleanups.
8723         (expand_start_case): Set discriminator.
8724         (expand_start_case_dummy): Set discriminator.
8725
8726         * ggc-callbacks.c: Remove.
8727
8728         * gengtype.h (struct type): Add 'u.s.bitmap' field.
8729         (find_structure): Add 'pos' parameter.
8730         * gengtype-lex.l: Update callers to find_structure.
8731         * gengtype-yacc.y: Likewise.
8732         * gengtype.c (find_structure): Allow for structures to be defined
8733         in multiple language backends.
8734         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
8735         (counter): Rename to gc_counter.
8736         (write_gc_structure_fields): Fail when writing out fields for
8737         an incomplete structure.  Ignore arrays of scalars.  Handle
8738         'tree_vec' special.
8739         (write_gc_types): Reset counter for each procedure written.
8740
8741         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
8742         (free_case_nodes): Delete.
8743         (expand_end_case_type): Delete call to free_case_nodes.
8744
8745         * Makefile.in (cselib.o): Include gt-<filename>.h.
8746         (gcse.o): Likewise.
8747         (profile.o): Likewise.
8748         (alias.o): Likewise.
8749         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
8750         alphabetize backend files.
8751         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
8752         * alias.c: Use gengtype for roots.
8753         * c-common.h (struct stmt_tree_s): Use gengtype.
8754         * c-decl.c: Use gengtype for roots.
8755         * cselib.c: Use gengtype for roots.
8756         * expr.c: Use gengtype for roots.
8757         * fold-const.c: Use gengtype for roots.
8758         * gcse.c: Use gengtype for roots.
8759         * gengtype-lex.l: Handle typedefs of function types.
8760         Allow for empty array bounds.
8761         Allow processing to stop on initialisers.
8762         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
8763         (semiequal): New rule.
8764         * gengtype.c (create_file): Tidy output files.
8765         (get_output_file_with_visibility): Fix paren warning.  Fix bug
8766         involving multiple input files mapping to one output file.
8767         (write_gc_structure_fields): Skip arrays of scalars.
8768         (write_gc_types): Tidy output files.
8769         (write_gc_root): New function.
8770         (write_gc_roots): Fix bugs, add support for roots that are
8771         structures.
8772         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
8773         (ggc_mark_tree_ptr): Delete.
8774         (ggc_add_rtx_root): Delete.
8775         (ggc_add_tree_root): Delete.
8776         (ggc_del_root): Delete.
8777         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
8778         allocate struct initial_value_struct.
8779         * profile.c: Use gengtype for roots.
8780         * sdbout.c: Use gengtype for roots.
8781         * varasm.c (mark_weak_decls): Delete unused prototype.
8782         (mark_const_hash_entry): Delete unused function.
8783         * config/darwin-protos.h: Use gengtype for roots.
8784         (machopic_add_gc_roots): Delete.
8785         * config/arm/arm.c: Use gengtype for roots.
8786         * config/arm/arm.h: Use gengtype for roots.
8787         * config/c4x/c4x-protos.h: Use gengtype for roots.
8788         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
8789         * config/d30v/d30v-protos.h: Use gengtype for roots.
8790         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
8791         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
8792         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
8793         * config/ia64/ia64-protos.h: Use gengtype for roots.
8794         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
8795         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
8796         * config/m68hc11/m68hc11.c (z_reg): Make global.
8797         (z_reg_qi): Make global.
8798         (m68hc11_add_gc_roots): Delete.
8799         * config/mcore/mcore-protos.h: Use gengtype for roots.
8800         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
8801         * config/mips/mips.c (mips_add_gc_roots): Delete.
8802         * config/mips/mips.h: Use gengtype for roots.
8803         * config/mmix/mmix.c (override_options): Use gengtype for roots.
8804         * config/mmix/mmix.h: Use gengtype for roots.
8805         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
8806         * config/mn10200/mn10200.h: Use gengtype for roots.
8807         * config/pa/pa.c: Use gengtype for roots, marking.
8808         (struct deferred_plabel): Use GGC, gengtype.
8809         (pa_add_gc_roots): Delete.
8810         (mark_deferred_plabels): Delete.
8811         * config/pj/pj-protos.h: Use gengtype for roots.
8812         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
8813         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
8814         machopic_add_gc_roots.
8815         * config/rs6000/rs6000.h: Use gengtype for roots.
8816         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
8817         (gt-darwin.h): Add rule.
8818         * config/sh/sh.c: Use gengtype for roots.
8819         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
8820         (gt-sh.h): Add rule.
8821         * config/sparc/sparc.c: Use gengtype for roots.
8822         (sparc_add_gc_roots): Delete.
8823         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
8824         (mark_ultrasparc_pipeline_state): Delete.
8825         * config/sparc/sparc.h: Use gengtype for roots.
8826
8827         * Makefile.in (c-parse.o): Update dependencies.
8828         (c-common.o): Likewise.
8829         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
8830         Add dependencies for the files they generate.
8831         * c-common.c: Replace ggc_add_* uses with GTY annotations.
8832         * c-common.h: Likewise.
8833         * c-decl.c: Likewise.
8834         (gt_ggc_mp_binding_level): Delete.
8835         * c-lang.c: Include gtype-c.h.
8836         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
8837         gt-c-parse.h.
8838         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
8839         (gt_ggc_mp_align_stack): Delete.
8840         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
8841         * function.c: Replace ggc_add_* uses with GTY annotations.
8842         (gt_ggc_mp_function): Delete.
8843         * function.h: Replace ggc_add_* uses with GTY annotations.
8844         * gengtype.c (lang_names): New.
8845         (NUM_BASE_FILES): New.
8846         (open_base_files): Create language base files.
8847         (startswith): New.
8848         (get_file_basename): New.
8849         (get_base_file_bitmap): New.
8850         (get_output_file_with_visibility): Rename from get_output_file.
8851         Add more mappings for various C/Objc filenames.
8852         (finish_root_table): New.
8853         (write_gc_roots): Handle dependencies and scoping properly.
8854         * gengtype.h: Add prototypes for new functions.
8855         * ggc-common.c (struct deletable_root): Delete.
8856         (deletables): Delete.
8857         (ggc_add_deletable_root): Delete.
8858         (ggc_mark_roots): No need to deal with deleted functionality.
8859         * ggc.h (ggc_add_deletable_root): Delete prototype.
8860         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
8861         (gtype-objc.h): Add rule to create.
8862         * objc/config-lang.in (gtfiles): New.
8863         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
8864         ggc_add_* with GTY markers.  Include gtype-objc.h.
8865         (ggc_mark_imp_list): Delete.
8866         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
8867         * objc/objc-lang.c: Random Whitespace Change.
8868
8869         * except.h (exception_handler_labels): Delete.
8870         (get_exception_handler_labels): New.
8871         * except.c (exception_handler_labels): Delete.
8872         (struct eh_status): Add exception_handler_labels field.
8873         (doing_eh): Don't add exception_handler_labels as root.
8874         (free_eh_status): Don't need to free exception_handler_labels.
8875         (get_exception_handler_labels): New.
8876         (find_exception_handler_labels): Update for move of
8877         exception_handler_labels.
8878         (remove_exception_handler_label): Likewise.
8879         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
8880         * jump.c (rebuild_jump_labels): Likewise.
8881         * loop.c (find_and_verify_loops): Likewise.
8882         * sched-rgn.c (is_cfg_nonregular): Likewise.
8883
8884         * gengtype.c (write_gc_structure_fields): Handle variable-length
8885         TYPE_ARRAYs.
8886
8887         * varasm.c (struct weak_syms): Use GGC, gengtype.
8888         (mark_weak_decls): Delete.
8889         (weak_decls): Likewise.
8890         (add_weak): Likewise.
8891         (remove_from_pending_weak_list): Likewise.
8892         (init_varasm_once): Likewise.
8893
8894         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
8895         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
8896         stor-layout.c, regclass.c, and lists.c.
8897         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
8898         gt-regclass.h and gt-lists.h on s-gtype.
8899         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
8900         * except.c: Use gengtype for roots.
8901         * explow.c: Use gengtype for roots.  Include gt-explow.h.
8902         * expr.h (init_stor_layout_once): Delete prototype.
8903         * function.c: Use gengtype for roots.
8904         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
8905         * gengtype-yacc.y (start): Can also be an externstatic.
8906         (externstatic): New production.
8907         (struct_fields): Correct array bounds inversion for 2-d arrays.
8908         * gengtype.c (variables): New variable.
8909         (note_variable): New function.
8910         (get_output_file): Include libfuncs.h into gtype-desc.c.
8911         (get_output_file_name): New function.
8912         (write_gc_structure_fields): Suppress warnings.
8913         (write_gc_types): Make static.
8914         (put_mangled_filename): New function.
8915         (write_gc_roots): New function.
8916         (main): Call write_gc_roots.
8917         * gengtype.h (note_variable): Prototype.
8918         (get_output_file_name): Prototype.
8919         (write_gc_types): Delete prototype.
8920         * ggc.h: Clean up unnecessary structure predefinitions.
8921         (struct ggc_root_tab): Define.
8922         (gt_ggc_m_rtx_def): Make function, not macro.
8923         (gt_ggc_m_tree_node): Likewise.
8924         * libfuncs.h: Use gengtype for roots.
8925         * lists.c: Use gengtype for roots.  Include gt-lists.h.
8926         (init_EXPR_INSN_LIST_cache): Delete.
8927         * optabs.c: Use gengtype for roots.
8928         (gt_ggc_mp_optab): Delete.
8929         * optabs.h: Use gengtype for roots.
8930         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
8931         * rtl.h: Use gengtype for roots.
8932         (init_EXPR_INSN_LIST_cache): Delete prototype.
8933         * stor-layout.c: Use gengtype for roots.
8934         Include gt-stor-layout.h.
8935         (init_stor_layout_once): Delete.
8936         * toplev.c: Use gengtype for roots.  Delete calls to deleted
8937         routines.
8938         * tree.c: Use gengtype for roots.
8939         * tree.h: Use gengtype for roots.
8940         * varasm.c: Use gengtype for roots.
8941
8942         * Makefile.in (GTFILES): Add @all_gtfiles@.
8943         * configure: Regenerate.
8944         * configure.in: Construct all_gtfiles from the gtfiles definitions
8945         in config-lang.in.
8946         * gengtype-yacc.y (type): Warn about duplicate structure names.
8947         * gengtype.c (get_output_file): Handle .c files in language
8948         subdirectories.
8949
8950         * Makefile.in (GTFILES): Run gengtype on all the config files
8951         and on the target .c file.
8952         * except.c (mark_eh_region): Delete.
8953         (init_eh_for_function): Use GGC on struct eh_status.
8954         (mark_eh_status): Delete.
8955         (free_eh_status): Use GGC.
8956         (expand_eh_region_start): Use GGC to
8957         (collect_eh_region_array): Allocate last_region_number using GGC.
8958         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
8959         (remove_eh_handler): Let GGC free struct eh_region.
8960         (add_call_site): Use GGC to reallocate call_site_record array.
8961         * function.c (init_machine_status): Update calling sequence.
8962         (mark_machine_status): Likewise.
8963         (mark_lang_status): Likewise.
8964         (prepare_function_start): Update init_machine_status call.
8965         (mark_function_status): Delete.
8966         (maybe_mark_struct_function): Delete.
8967         (ggc_mark_struct_function): Delete.
8968         (gt_ggc_mp_function): New.
8969         (gt_ggc_mr_machine_function): New.
8970         (gt_ggc_mr_language_function): New.
8971         (init_function_once): Use canonical names.
8972         * function.h (struct function): Use gengtype.
8973         (init_machine_status): Return the structure.
8974         (mark_machine_status): Take a 'void *'.
8975         (mark_lang_status): Likewise.
8976         * ggc-common.c (ggc_mark_trees): Use canonical name for
8977         ggc_mark_struct_function.
8978         * tree.h (ggc_mark_struct_function): Delete prototype.
8979         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
8980         (alpha_init_machine_status): Likewise.
8981         (override_options): Use canonical name for alpha_mark_machine_status.
8982         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
8983         * config/arm/arm.h (struct machine_function): Use gengtype.
8984         * config/arm/arm.c (arm_mark_machine_status): Delete.
8985         (arm_init_machine_status): Update calling sequence.
8986         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
8987         * config/cris/cris.c (cris_init_machine_status): Update
8988         calling sequence.
8989         * config/d30v/d30v.h (struct machine_function): Use gengtype.
8990         * config/d30v/d30v.c (d30v_init_machine_status): Update
8991         calling sequence.
8992         (d30v_mark_machine_status): Delete.
8993         * config/i386/i386.c: Include gt-i386.h.
8994         (struct machine_function): Use gengtype.
8995         (ix86_init_machine_status): Update calling sequence.
8996         (ix86_mark_machine_status): Delete.
8997         (override_options): Use canonical namke for ix86_mark_machine_status.
8998         * config/ia64/ia64.h (struct machine_function): Use gengtype.
8999         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
9000         sequence.
9001         (ia64_mark_machine_status): Delete.
9002         (ia64_override_options): Use canonical name for
9003         ia64_mark_machine_status.
9004         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
9005         sequence.
9006         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
9007         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
9008         * gengtype.c (get_output_file): Fix warning.
9009         (main): Add prototype to suppress warning.
9010         * tree.c: Remove tree_hash_mark prototype.
9011
9012         * tree.h (init_stmt): Delete prototype.
9013         * toplev.c (lang_independent_init): Don't call init_stmt.
9014         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
9015         (stmt_obstack): Delete.
9016         (POPSTACK): No need to free 'struct nesting'.
9017         (gt_ggc_mr_nesting_cond): Use canonical names.
9018         (gt_ggc_mr_nesting_loop): Use canonical names.
9019         (gt_ggc_mr_nesting_block): Use canonical names.
9020         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
9021         (mark_stmt_status): Delete.
9022         (init_stmt): Delete.
9023         (clear_last_expr): Clear both last_expr_type and last_expr_value.
9024         Use it everywhere that last_expr_type was cleared.
9025         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
9026         (zap_lists): Delete.
9027         * ggc.h (ggc_add_deletable_root): Prototype.
9028         (mark_stmt_status): Remove prototype.
9029         * ggc-common.c (ggc_add_deletable_root): New.
9030         (ggc_mark_roots): Handle deletable roots.
9031         * function.c (ggc_mark_struct_function): Use canonical name
9032         for mark_stmt_status.
9033         * emit-rtl.c (free_sequence_stack): New.
9034         (start_sequence): Use a freelist for sequences.
9035         (end_sequence): Likewise.
9036         (init_emit_once): Add free_sequence_stack as a deleteable root.
9037         * c-pragma.c Include gt-c-pragma.h.
9038         (struct align_stack): Use gengtype.
9039         (push_alignment): Use GGC for struct align_stack.
9040         (mark_align_stack): Delete.
9041         (gt_ggc_mp_align_stack): New.
9042         (init_pragma): Use canonical name for mark_align_stack.
9043         * c-decl.c: Include gt-c-decl.h.
9044         (struct binding_level): Use gengtype.
9045         (make_binding_level): Use GGC; handle the freelist here.
9046         (pop_binding_level): New.
9047         (pushlevel): Move code into make_binding_level.
9048         (push_label_level): Likewise.
9049         (poplevel): Move code into pop_binding_level.
9050         (pop_label_level): Likewise.
9051         (mark_binding_level): Delete.
9052         (gt_ggc_mp_binding_level): New.
9053         (c_init_decl_processing): Use canonical name for mark_binding_level.
9054         Add free_binding_level as deletable root.
9055         (mark_c_function_context): Use canonical name for mark_binding_level.
9056         * Makefile.in (c-decl.o): Add gt-c-decl.h.
9057         (c-pragma.o): Add gt-c-pragma.h.
9058         (GTFILES): Add c-decl.c and c-pragma.c.
9059         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
9060
9061         * tree.c (struct type_hash): Use gengtype.
9062         (init_obstacks): Use canonical name for type_hash_mark.
9063         (type_hash_mark): Delete.
9064         Include gt-tree.h.
9065         * rtl.h (struct mem_attrs): Use gengtype.
9066         * optabs.h (struct optab): Use gengtype.
9067         * optabs.c (expand_binop): Squish signed/unsigned warning.
9068         (mark_optab): Make local, use canonical name, use autogenerated
9069         marker procedure.
9070         (init_optabs): Use canonical name for mark_optab.
9071         (new_optab): Use GGC to allocate optabs.
9072         * ggc.h: Delete mark_optab prototype.
9073         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
9074         mem_attrs marker procedure.
9075         * gengtype.c (get_output_file): Include headers in gtype-desc.c
9076         explicitly rather than deducing them from file names.
9077         (write_gc_structure_fields): Handle arrays of structures.
9078         (main): Return non-zero exit code if errors occur during output.
9079         * emit-rtl.c (mem_attrs_mark): Delete.
9080         (init_emit_once): Use canonical name for mem_attrs marker procedure.
9081         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
9082         (tree.o): Depend on gt-tree.h.
9083         (GTFILES): Add rtl.h, optabs.h, tree.c.
9084         (gt-tree.h): Add it to s-gtype rule.
9085
9086         * .cvsignore: Ignore gengtype flex/bison generated files.
9087         * Makefile.in (GGC_H): Add gtype-desc.h.
9088         (OBJS): Add gtype-desc.o.
9089         (GEN): Add gengtype.
9090         (STAGESTUFF): Add gengtype.
9091         (varasm.o): Add gt-varasm.h.
9092         (stmt.o): Add gt-stmt.h.
9093         (except.o): Add gt-except.h.
9094         (integrate.o): Add gt-integrate.h.
9095         (GTFILES): New.
9096         Add new rules for new files.
9097         * configure: Regenerate.
9098         * configure.in: Correct defaults.h paths.
9099         * emit-rtl.c (mark_sequence_stack): Delete.
9100         (mark_emit_status): Delete.
9101         (start_sequence): Allocate sequence structures using GGC.
9102         (end_sequence): Allocate sequence structures using GGC.
9103         * except.c: Use gengtype for various structures.  Include
9104         gt-except.h.
9105         * expr.c (mark_expr_status): Delete.
9106         * function.c: Use gengtype for various structures.  Include
9107         gt-function.h.
9108         (mark_function_status): Use standard gt_ggc names for marker functions.
9109         (ggc_mark_struct_function): Likewise.
9110         * function.h: Use gengtype for various structures.
9111         * gengtype-lex.l: New file.
9112         * gengtype-yacc.y: New file.
9113         * gengtype.c: New file.
9114         * gengtype.h: New file.
9115         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
9116         the standard names.  Remove some now-unnecessary prototypes.
9117         * integrate.c: Use gengtype for various structures.  Include
9118         gt-integrate.h.
9119         (mark_hard_reg_initial_vals): Delete.
9120         * integrate.h (mark_hard_reg_initial_vals): Delete.
9121         * stmt.c: Use gengtype for various structures.  Include
9122         gt-stmt.h.
9123         (mark_case_node): Delete.
9124         (mark_goto_fixup): Delete.
9125         (mark_stmt_status): Use standard gt_ggc names for marker functions.
9126         * system.h: Define GTY to empty.   In flex/bison files,
9127         don't poison malloc or realloc, instead just define them to
9128         xmalloc and xrealloc.
9129         * varasm.c: Use gengtype for various structures.  Include
9130         gt-varasm.h.  Use standard gt_ggc names for marker functions.
9131         (mark_pool_constant): Delete.
9132         (mark_varasm_status): Delete.
9133         (decode_rtx_const): #if 0 out non-typesafe hack.
9134
9135         * function.h (free_lang_status): Mark as obsolete.
9136         * function.c (free_lang_status): Mark as obsolete.
9137         * c-decl.c (push_c_function_context): Use GC to allocate and free
9138         struct language_function.
9139         (pop_c_function_context): Likewise.
9140         * c-common.c (mark_c_language_function): Mark struct
9141         language_function.
9142
9143         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
9144         Document that the machine_function structures must be allocated
9145         using GC.  Update mark_machine_status documentation.
9146         * function.h: Don't declare free_machine_status.
9147         * function.c (free_machine_status): Don't define.
9148         (free_after_compilation): Don't call free_machine_status.
9149         (ggc_mark_struct_function): Mark f->machine.  Call
9150         mark_machine_status only on non-NULL pointers.
9151         * system.h: Poison free_machine_status.
9152         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
9153         struct machine_function.
9154         (xtensa_free_machine_status): Delete.
9155         (override_options): Don't set free_machine_status.
9156         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
9157         free_machine_status.
9158         (rs6000_init_machine_status): Use GC on struct machine_function.
9159         (rs6000_free_machine_status): Delete.
9160         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
9161         machine_function.
9162         (ia64_mark_machine_status): Likewise.
9163         (ia64_free_machine_status): Delete.
9164         (ia64_override_options): Don't set free_machine_status.
9165         * config/i386/i386.c (override_options): Don't set
9166         free_machine_status.
9167         (ix86_init_machine_status): Use GC on struct machine_function.
9168         (ix86_mark_machine_status): Likewise.
9169         (ix86_free_machine_status): Delete.
9170         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
9171         machine_function.
9172         (d30v_mark_machine_status): Likewise.
9173         (d30v_free_machine_status): Delete.
9174         (d30v_init_expanders): Don't set free_machine_status.
9175         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
9176         machine_function.
9177         (arm_init_machine_status): Likewise.
9178         (arm_free_machine_status): Delete.
9179         (arm_init_expanders): Don't set free_machine_status.
9180         * config/alpha/alpha.c (override_options): Don't set
9181         free_machine_status.
9182         (alpha_init_machine_status): Use GC on struct machine_function.
9183         (alpha_mark_machine_status): Likewise.
9184         (alpha_free_machine_status): Delete.
9185
9186         * varasm.c (compare_constant): Fix typo.
9187
9188         * varasm.c: Don't include obstack.h.
9189         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
9190         (struct rtx_const): Give substructures names, improve formatting.
9191         (struct constant_descriptor): Delete.
9192         (struct constant_descriptor_tree): New, based on constant_descriptor.
9193         (const_hash_table): Is a hash table of trees.
9194         (mark_const_hash_entry): Is used for hashes of trees.  Mark
9195         constant_descriptor_tree structure.
9196         (mark_const_str_htab_1): Mark deferred_string structure.
9197         (compare_constant): Rewrite to compare trees.
9198         (compare_constant_1): Delete.
9199         (record_constant): Delete.
9200         (record_constant_1): Delete.
9201         (output_constant_def): Use struct constant_descriptor_tree.
9202         Don't duplicate trees twice.
9203         (struct constant_descriptor_rtx): New.
9204         (struct pool_constant): Used for rtx constants.
9205         (init_varasm_status): Update for change to struct varasm_status.
9206         (mark_varasm_status): Likewise.
9207         (free_varasm_status): Delete.
9208         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
9209         (record_constant_rtx): Likewise.
9210         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
9211         (force_const_mem): Likewise.
9212         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
9213         * function.c (free_after_compilation): Don't use free_varasm_status.
9214         * function.h: Don't prototype free_varasm_status.
9215
9216         * ggc-common.c (ggc_realloc): Handle X being NULL.
9217
9218         * ggc-common.c (ggc_realloc): New function.
9219         * ggc.h: Prototype it.
9220         * emit-rtl.c (free_emit_status): Delete.
9221         (init_emit): Allocate emit subarrays using GC.
9222         (gen_reg_rtx): Reallocate subarrays using GC.
9223         (init_emit): Use GC to allocate 'struct emit_status' and its
9224         subarrays.
9225         (mark_emit_status): Mark structure and its subarrays.
9226         * stmt.c (free_stmt_status): Delete.
9227         * expr.c (free_expr_status): Delete.
9228         * function.h: Remove prototypes for deleted functions.
9229         * function.c (free_after_compilation): Don't use deleted functions.
9230         Don't call free() on x_parm_reg_stack_loc.
9231         (free_after_parsing): Don't use free_stmt_status.
9232         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
9233         (mark_function_status): Mark x_parm_reg_stack_loc.
9234
9235         * varasm.c (init_varasm_status): Use GC to allocate
9236         'struct varasm_status' and its fields x_const_rtx_hash_table
9237         and x_const_rtx_sym_hash_table.
9238         (mark_varasm_status): Mark them.
9239         (free_varasm_status): Use GC to free them.
9240         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
9241         (mark_expr_status): Mark the structure itself.
9242         (free_expr_status): Use GC to free the structure.
9243         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
9244         (mark_stmt_status): Mark the 'struct stmt_status' itself.
9245         (init_stmt_for_function): Allocate the structure for GC.
9246
9247         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
9248         (equate_type_number_to_die): Likewise.
9249         * tree.h (TYPE_SYMTAB_DIE): New macro.
9250         (struct die_struct): Predeclare.
9251         (struct tree_type): Add field symtab.die.   Add a tag
9252         to the union type of field symtab.
9253
9254         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
9255         'struct rtvec_def *', not 'struct rtvec_def'.
9256
9257         * function.h (original_arg_vector): Make a real rtvec.
9258         * function.c (ggc_mark_struct_function): Adjust.
9259         * integrate.c (expand_inline_function): Adjust.
9260
9261 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
9262
9263         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
9264         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
9265         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
9266         (TARGET_VERSION_CPU): Define according to the
9267         default target.
9268         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
9269         TARGET_VERSION_CPU.
9270         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
9271         if TARGET_SHMEDIA64.
9272         (LINK_DEFAULT_CPU_EMUL): Define according to the
9273         default target.
9274         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
9275         (SUBTARGET_LINK_SPEC): Define.
9276         (LINK_SPEC): Use SH_LINK_SPEC.
9277         (ASM_SPEC): Remove.
9278         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
9279         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
9280         and TARGET_SHMEDIA64 which abort, for now.
9281         * config/sh/t-netbsd-sh5: New file.
9282         * config/sh/t-netbsd-sh5-32: New file.
9283         * config/sh/t-netbsd-sh5-64: New file.
9284
9285 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9286             Richard Henderson  <rth@redhat.com>
9287
9288         * config/alpha/alpha.c (reg_or_const_int_operand): New.
9289         (some_operand, input_operand): Accept CONST_VECTOR.
9290         (alpha_extra_constraint): Add 'W'.
9291         (alpha_expand_zap_mask): New.
9292         (alpha_expand_builtin_vector_binop): New.
9293         (enum alpha_builtin): New.
9294         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
9295         (alpha_init_builtins, alpha_expand_builtin): New.
9296         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
9297         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
9298         (PREDICATE_CODES): Update.
9299         * config/alpha/alpha-protos.h: Update.
9300         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
9301         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
9302         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
9303         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
9304         (movv2si, movv2si_fix, movv2si_nofix): New.
9305         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
9306         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
9307         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
9308         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
9309         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
9310         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
9311         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
9312         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
9313         builtin_unpkbw, unpkbw): New.
9314         * doc/extend.texi (Alpha Built-in Functions): New.
9315
9316 2002-06-03  Richard Henderson  <rth@redhat.com>
9317
9318         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
9319         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
9320
9321 2002-06-03  Richard Henderson  <rth@redhat.com>
9322
9323         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
9324
9325         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
9326         (const0_operand): New.
9327         (reg_or_fp0_operand, fp0_operand): Remove.
9328         * config/alpha/alpha.h (PREDICATE_CODES): Update.
9329         * config/alpha/alpha-protos.h: Update.
9330         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
9331         and fp0_operand with reg_or_0_operand and const0_operand.
9332
9333 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
9334
9335         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
9336
9337 2002-06-03  Roger Sayle  <roger@eyesopen.com>
9338
9339         * gcse.c (cprop_jump): Use single_set to get the pattern
9340         from the setcc argument.
9341
9342 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
9343
9344         * diagnostic.h (diagnostic_count): Move from output_buffer to
9345         diagnostic_context.
9346         (diagnostic_kind_count): Adjust definition.
9347
9348 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
9349
9350         * except.c (except.c): Do not rebuild CFG.
9351         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
9352         optimization.
9353
9354 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
9355
9356         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
9357         * toplev.c: Include cfglahout.h
9358         * Makefile.in (toplev.c): Add dependnecy.
9359
9360 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9361
9362         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
9363         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
9364         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
9365
9366 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
9367
9368         * config/ns32k/netbsd.h: Update copyright years.
9369         (TARGET_OS_CPP_BUILTINS): Define.
9370         (CPP_PREDEFINES): Remove.
9371         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
9372         (TARGET_CPU_CPP_BUILTINS): Define.
9373
9374 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
9375
9376         * emit-rtl.c: Fix formatting.
9377         * errors.h: Likewise.
9378         * except.c: Likewise.
9379         * explow.c: Likewise.
9380         * expmed.c: Likewise.
9381         * expr.c: Likewise.
9382         * expr.h: Likewise.
9383
9384 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
9385
9386         * config/h8300/elf.h: Fix formatting.
9387         * config/h8300/rtems.h: Likewise.
9388
9389 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
9390
9391         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
9392
9393 2002-06-02  Tom Tromey  <tromey@redhat.com>
9394
9395         * fixinc/fixincl.x: Rebuilt.
9396         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
9397
9398 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9399
9400 config/i370:
9401         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
9402         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
9403         * mvs.h: Similarly.
9404         * oe.h: Similarly.
9405
9406 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
9407
9408         * final.c (final):  Allow notes to not have computed addresses;
9409         kill no longer needed STACK_REGS ifdef.
9410
9411 2002-06-02  Richard Henderson  <rth@redhat.com>
9412
9413         * gcse.c (bypass_conditional_jumps): Fix typo last change.
9414
9415 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
9416
9417         * loop.c (emit_prefetch_instructions): Properly place the address
9418         computation.
9419
9420 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
9421
9422         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
9423         (set_block_for_insn): Turn into macro.
9424         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
9425         * cfglayout.c (insn_scopes): Kill.
9426         (scope_to_insns_initialize): Do not use insn_scopes.
9427         (scope_to_insns_finalize): Likewise.
9428         (duplicate_insn_chain): Likewise.
9429         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
9430         * cfgrtl.c (basic_block_for_insn): Kill.
9431         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
9432         (create_basic_block_structure): Use reorder_insns.
9433         (compute_bb_for_insn): Do not use basic_block_for_insn.
9434         (merge_blocks_nomove): Likewise.
9435         (update_bb_for_insn): Likewise.
9436         (verify_flow_info): Likewise.
9437         (set_block_for_insn): Kill.
9438         * combine.c (try_combine): Update gen_rtx_INSN call.
9439         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
9440         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
9441         scopes and BBs.
9442         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
9443         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
9444         Clear BB.
9445         (emit_insns_after): Simplify.
9446         (emit_copy_of_insn_after): Copy scope.
9447         * final.c (final_start_function): Lower scopes.
9448         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
9449         * integrate.c (copy_insn_list): Cope scopes.
9450         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
9451         * loop.c (loop_optimize): Do not care block notes.
9452         * print-rtl.c (print_rtx): Print BB.
9453         * recog.c (apply_change_group): Simplify.
9454         * rtl.c (copy_rtx): Handle 'B'.
9455         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
9456         * rtl.h (Field accessors): Update indexes.
9457         * sched-ebb.c (schedule_ebbs): Do not lower notes.
9458         * sched-rgn.c (schedule_insns): Likewise.
9459         * toplev.c (rest_of_compilation): Lower notes.
9460         * unroll.c (unroll_loop): Do not care scoping notes.
9461         (copy_loop_body): Copy scopes.
9462
9463 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9464
9465 config/h8300:
9466         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
9467         SUBTARGET_SPEC.
9468         * rtems.h: Similarly.
9469         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
9470         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
9471         (TARGET_CPU_CPP_BUILTINS): Use.
9472
9473 2002-06-02  Richard Henderson  <rth@redhat.com>
9474
9475         * alias.c: Include target.h.
9476         (mark_constant_function): Use targetm.binds_local_p instead
9477         of checking TREE_PUBLIC ourselves.
9478         * Makefile.in (alias.o): Add TARGET_H.
9479
9480 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9481
9482         * c-lex.c: Update copyright and file description.
9483
9484 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9485
9486         * config/fr30/fr30.h: Update to new CPP macros.
9487
9488 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9489
9490         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
9491
9492 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9493             Zack Weinberg <zack@codesourcery.com>
9494
9495         * c-common.c (c_common_init): Override cpplib's default
9496         warn_long_long setting.
9497         * c-lex.c (lex_number): Replace with interpret_integer,
9498         interpret_float, narrowest_unsigned_type and
9499         narrowest_signed_type, taking advantage of the new
9500         cpplib functionality.
9501         * cpperror.c (_cpp_begin_message): If a warning is turned
9502         into an error, avoid printing "warning:".
9503         * cppexp.c (cpp_num_sign_extend): New.
9504         * cppinit.c: Update comment.
9505         * cpplib.h (cpp_num_sign_extend): New.
9506         * tree.h: Update comment.
9507
9508 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
9509
9510         * diagnostic.h (struct diagnostic_context):  Add new member
9511         internal_error.
9512         (internal_error_function): Remove declaration.
9513         * diagnostic.c (internal_error_function): Remove definition..
9514         (internal_error): Adjust use.
9515
9516 2002-06-02  Richard Henderson  <rth@redhat.com>
9517
9518         * rtl.h (CC0_P): New.
9519         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
9520         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
9521         (bypass_block): Save old dest block for dump text.
9522         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
9523         Allow only true SET insns, not single_set.
9524
9525 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
9526
9527         * diagnostic.c (diagnostic_finish): Rename to output_flush.
9528         (clear_disgnostic_info): Rename to output_clear_data.  Use false
9529         instead of 0 for boolean value.
9530         Adjust function call throughout.
9531
9532 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
9533
9534         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
9535         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
9536
9537 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9538
9539         * d30v.h (CPP_PREDEFINES): Replace with
9540         (TARGET_CPU_CPP_BUILTINS): New.
9541
9542 2002-06-02  Roger Sayle  <roger@eyesopen.com>
9543
9544         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
9545
9546 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
9547
9548         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
9549
9550 2002-06-02  Richard Henderson  <rth@redhat.com>
9551
9552         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
9553
9554 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9555
9556         Support for C++ constructors/destructors.
9557         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
9558         instead of looping if main() returns.
9559         (asm_file_start): Output global symbols that cause .data and .bss
9560         initialization code to be linked in, unconditionally for now.
9561         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
9562         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
9563         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
9564         (LIBSTDCXX): New.
9565         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
9566         (__tablejump__): New.
9567         (__do_copy_data, __do_clear_bss): New.
9568         (__do_global_ctors, __do_global_dtors): New.
9569         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
9570         _ctors, _dtors.
9571
9572 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
9573
9574         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
9575         (CPP_SPEC, CPP_PREDEFINES): Kill.
9576         * c4x/rtems.h (CPP_PREDEFINES): Kill.
9577         (TARGET_OS_CPP_BUILTINS): New.
9578
9579 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
9580
9581         * Makefile.in (tracer.o): New.
9582         * params.def (TRACER_*): New options.
9583         * rtl.h (tracer): Declare.
9584         * timevar.def (TV_TRACER): New.
9585         * toplev.c (dump_file_index): Add DFI_tracer.
9586         (dump_file_info): Add tracer.
9587         (flag_tracer): New.
9588         (lang_indepdenent_options): Add tracer.
9589         (rest_of_compilation): Call tracer.
9590         * tracer.c: New file.
9591         * invoke.texi (-ftracer): Document.
9592         (--param tracer-*): Document.
9593
9594 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
9595
9596         * tree-inline.c (expand_call_inline): Make the statement
9597         expression we generate have a COMPOUND_STMT.
9598
9599 2002-06-01  Roger Sayle  <roger@eyesopen.com>
9600
9601         * gcse.c (cprop_cc0_jump): Function deleted.
9602         (cprop_jump): Take an additional argument which is the possibly
9603         NULL cc setting insn immediately before the conditional jump.
9604         When a MODE_CC set is present, substitute it into the JUMP_INSN
9605         before attempting the constant propagation.
9606         (cprop_insn):  Recognize cc setters followed by conditional jumps
9607         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
9608         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
9609         (find_bypass_set): New function based upon find_avail_set used by
9610         cprop, but finds constant expressions available at the end of
9611         basic blocks.
9612         (bypass_block): New function.  Given a basic block that begins
9613         with a conditional jump and multiple incoming edges, perform
9614         the jump bypass optimization.
9615         (bypass_conditional_jumps): New function.  Call bypass_block with
9616         each suitable basic block in the CFG using a simple single pass.
9617
9618 2002-06-01  Roger Sayle  <roger@eyesopen.com>
9619
9620         * tree.c (real_minus_onep): New function to test for -1.0.
9621         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
9622
9623 2002-06-01  Roger Sayle  <roger@eyesopen.com>
9624
9625         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
9626         and "!p && !q" into "(p|q) == 0" under suitable conditions.
9627
9628 2002-06-01  Andreas Jaeger  <aj@suse.de>
9629
9630         * cppexp.c (cpp_classify_number): Cast precission to int for
9631         correct printf format.
9632
9633 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9634
9635         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
9636         expected, but don't really exist: atmega83, atmega85, attiny10.
9637         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
9638         emulations for all devices.
9639         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
9640         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
9641
9642 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
9643
9644         * config/h8300/h8300-protos.h: Add a prototype for
9645         h8300_shift_needs_scratch_p.
9646         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
9647         * config/h8300/h8300.h (OK_FOR_R): New.
9648         (OK_FOR_S): Likewise.
9649         (OK_FOR_T): Likewise.
9650         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
9651         * config/h8300/h8300.md (anonymous shift patterns): Use
9652         constraints R, S, and T.
9653
9654 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9655
9656         * basic-block.h (struct basic_block_def): New field loop_father.
9657         (BB_VISITED): New flag.
9658         (struct loop): New field pred, removed field shared.
9659         (struct loops): New field parray.
9660         (LOOP_EXITS_DOMS): Removed.
9661         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
9662         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
9663         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
9664         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
9665         verify_loop_structure): Declare.
9666         * cfg.c (entry_exit_blocks): Initialize loop_father field.
9667         * cfganal.c (dfs_enumerate_from): New function.
9668         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
9669         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
9670         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
9671         flow_loop_dump, flow_loops_dump, flow_loops_free,
9672         flow_loop_tree_node_add, flow_loop_level_compute,
9673         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
9674         flow_loop_outside_edge_p): Modified for new infrastructure.
9675         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
9676         redirect_edge_with_latch_update, flow_loop_free): New static functions.
9677         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
9678         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
9679         find_common_loop, verify_loop_structure, loop_latch_edge,
9680         loop_preheader_edge): New functions.
9681         (flow_loops_cfg_dump): Do not show dominators, as this information
9682         does not remain up to date long.
9683         (flow_loops_find): Store results in new format.
9684         * predict.c (propagate_freq, estimate_probability,
9685         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
9686         infrastructure.
9687
9688 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
9689
9690         * except.c (nothrow_function_p): Walk epilogue delay list
9691         checking the insn, not the chain for potential throws.
9692
9693 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
9694
9695         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
9696         (install): Refer to install-cpp directly.
9697         (uninstall-cpp): Folded into uninstall rule.
9698         * configure.in: Delete all code relating to --disable-cpp.
9699         * configure: Regenerate.
9700         * config/t-install-cpp: Delete.
9701
9702 2002-05-31  Richard Henderson  <rth@redhat.com>
9703
9704         * configure.in (HAVE_AS_TLS): Add alpha tests.
9705         * configure: Rebuild.
9706         * config/alpha/alpha.c (TARGET_AS_TLS): New.
9707         (alpha_tls_size, alpha_tls_size_string): New.
9708         (overide_options): Set it.  Always install machine_status hooks.
9709         (input_operand): Accept got tls predicates.
9710         (local_symbol_p): Merge into ...
9711         (local_symbolic_operand): ... here.  Reject tls symbols.
9712         (global_symbolic_operand): Likewise.
9713         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
9714         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
9715         (tp16_symbolic_operand, tp32_symbolic_operand): New.
9716         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
9717         (alpha_encode_section_info): Handle TLS symbols.
9718         (alpha_strip_name_encoding): Likewise.
9719         (alpha_legitimate_address_p): Likewise.
9720         (alpha_legitimize_address): Likewise.
9721         (alpha_expand_mov): Early exit to avoid nop moves.
9722         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
9723         (alpha_init_machine_status, alpha_mark_machine_status,
9724         alpha_free_machine_status): Always define.
9725         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
9726         (print_operand, print_operand_address): Add TLS relocs.
9727         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
9728         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
9729         (TARGET_SWITCHES): Add -mtls-kernel.
9730         (alpha_tls_size, alpha_tls_size_string): New.
9731         (TARGET_OPTIONS): Add -mtls-size=.
9732         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
9733         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
9734         (ASM_OUTPUT_LABELREF): Skip %.
9735         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
9736         (PREDICATE_CODES): Update.
9737         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
9738         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
9739         UNSPEC_TP, UNSPECV_SET_TP): New.
9740         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
9741         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
9742         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
9743         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
9744         (call_value_osf_2_er): Accept anything as op4.
9745         * config/alpha/alpha-protos.h: Update.
9746         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
9747
9748 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
9749
9750         * cppinit.c (append_include_chain): Always pay attention to
9751         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
9752         marker on argument.
9753
9754 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
9755
9756         * target.h: Fix formatting.
9757         * timevar.h: Likewise.
9758         * tlink.c: Likewise.
9759         * toplev.c: Likewise.
9760         * toplev.h: Likewise.
9761         * tree.c: Likewise.
9762         * tree-dump.h: Likewise.
9763         * tree.h: Likewise.
9764         * tree-inline.h: Likewise.
9765         * unroll.c: Likewise.
9766         * unwind-dw2.c: Likewise.
9767         * unwind-dw2-fde.c: Likewise.
9768         * unwind-dw2-fde-glibc.c: Likewise.
9769         * unwind-dw2-fde.h: Likewise.
9770         * unwind.h: Likewise.
9771         * unwind-sjlj.c: Likewise.
9772         * varasm.c: Likewise.
9773         * varray.h: Likewise.
9774         * vmsdbg.h: Likewise.
9775         * vmsdbgout.c: Likewise.
9776         * xcoffout.h: Likewise.
9777
9778 2002-05-31  Igor Shevlyakov <igor@microunity.com>
9779
9780         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
9781         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
9782
9783 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
9784
9785         * gcc.c (cpp_unique_options): Remove "-d" options.
9786         (cpp_debug_options): New spec string.
9787         (default_compilers): Use it.
9788         * objc/lang-specs.h: Likewise.
9789
9790 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
9791
9792         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
9793         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
9794         * gcc/mklibgcc.in: Likewise.
9795         * gcc/config/arc/t-arc: Likewise.
9796         * gcc/configure.in: Likewise.
9797         * gcc/configure: Regenerate.
9798
9799 2002-05-31  Stan Shebs  <shebs@apple.com>
9800             Turly O'Connor  <turly@apple.com>
9801
9802         * c-decl.c (struct binding_level): Change int field n_incomplete
9803         to tree list incomplete_list.
9804         (clear_binding_level): Init field with NULL.
9805         (pushdecl): Add incomplete type to list.
9806         (mark_binding_level): Mark the incomplete list.
9807         (finish_struct): Scan the incomplete list for types instead
9808         of all decls in the current binding level.
9809
9810 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9811
9812         * pa.c (output_millicode_call): Add missing '%' characters.
9813         (output_call): Likewise.
9814
9815 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
9816
9817         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
9818         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9819
9820 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
9821
9822         * varasm.c (mark_constant_pool): Walk epilogue delay list
9823         checking the insn, not the chain for potential constants.
9824
9825 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
9826
9827         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
9828
9829 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
9830
9831         * i386.c (classify_argument): Properly handle base types.
9832
9833         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
9834         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
9835         registers.
9836
9837 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
9838
9839         * gcse.c (gcse_emit_move_after): New.
9840         (pre_delete, hoist_store): Use it.
9841
9842         * reload1.c (emit_input_reload_insns): Use constrain_operands
9843         instead of constraint_accepts_reg_p to verify optimization.
9844         (constraint_accepts_reg_p): Kill
9845
9846         * reload1.c (reload_cse_delete_noop_set): Kill.
9847         (reload_cse_simplify): use delte_insn_and_edges.
9848
9849 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9850
9851         * cfgloop.c (flow_loops_find): Initialize first and last fields
9852         correctly.
9853
9854 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9855
9856         * c-common.c (builtin_define_std): Correct logic.
9857
9858 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9859
9860         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
9861         (output_call): Likewise.
9862
9863 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9864
9865         * pa.c: Move output.h include after tree.h include.
9866         (pa_asm_output_mi_thunk): Constify identifier lab.
9867
9868 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
9869
9870         * config/ns32k/ns32k.h: Define named constants for the
9871         bits in target_flags and use them.
9872         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
9873
9874 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9875
9876         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
9877         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
9878         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
9879         default scheduling model.
9880         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
9881         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
9882         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
9883         * doc/install.texi (hppa*-*-*): Document default scheduling.
9884
9885 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9886
9887         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
9888
9889 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
9890
9891         * config.gcc (ns32k-*-netbsd*): Set tm_file to
9892         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
9893         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
9894         netbsd.h, or netbsd-aout.h.
9895
9896 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
9897
9898         * longlong.h (count_trailing_zeros): Add missing \, and clean up
9899         whitespace in __ns32000__ case.
9900
9901 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
9902
9903         * expr.c (expand_expr): Output partially zeroed out vectors with
9904         output_constant_def.
9905
9906 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
9907
9908         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
9909         (sh-*-netbsdelf*)
9910         (shl*-*-netbsdelf*): New targets.
9911         * config/sh/netbsd-elf.h: New file.
9912         * config/sh/t-netbsd: New file.
9913
9914 2002-05-30  Richard Henderson  <rth@redhat.com>
9915             Eric Botcazou  <ebotcazou@multimania.com>
9916
9917         PR optimization/6822
9918         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
9919         to unsigned int for op1 comparisons.  Use gen_int_mode.
9920
9921 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
9922
9923         * expmed.c (const_mult_add_overflow_p): New.
9924         * expr.h: Declare it.
9925         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
9926         Don't eliminate the biv if the giv has a constant multiplier and
9927         the rhs argument of the comparison does satisfy the predicate.
9928         Use expand_mult_add to compute the replacement constant.
9929
9930 2002-05-30  Osku Salerma  <osku@iki.fi>
9931
9932         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
9933         (c_common_get_alias_set): Handle it.
9934         * doc/extend.texi: Document it.
9935
9936 2002-05-30  Richard Henderson  <rth@redhat.com>
9937
9938         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
9939         * toplev.c (process_options): Don't check it.
9940         * doc/tm.texi: Don't document it.
9941         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
9942         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
9943         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
9944         frame pointer optimization if current_function_profile.
9945
9946 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
9947
9948         * langhooks.c: Fix formatting.
9949         * langhooks.h: Likewise.
9950         * lcm.c: Likewise.
9951         * libgcc2.c: Likewise.
9952         * lists.c: Likewise.
9953         * local-alloc.c: Likewise.
9954         * loop.c: Likewise.
9955         * loop.h: Likewise.
9956
9957 2002-05-30  Marc Espie <espie@openbsd.org>
9958
9959         * config.gcc (sparc64-*-openbsd*): New.
9960         * config/sparc/openbsd1-64.h: New.
9961         * config/sparc/openbsd64.h: New.
9962
9963 2002-05-30  Jeff Law <law@redhat.com>
9964
9965         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
9966         a dead insn with a REG_RETVAL note when the entire libcall is not
9967         dead and remove the associated REG_LIBCALL note at the same time.
9968
9969 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
9970
9971         * lcm.c (output.h): #include.
9972         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
9973         as an ordinary block.
9974         (optimize_mode_switching): Don't pretend that the exit block is
9975         an ordinary block, or handle sucessors of entry block specially.
9976         Instead, split edges from entry block and to exit block, and
9977         put a computing definition on the thus gained post-entry-block,
9978         and a need on the pre-exit-block.
9979
9980 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
9981
9982         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
9983         * rtl.texi: Document 'B'
9984
9985 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
9986
9987         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
9988         at run-time.
9989         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
9990
9991 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
9992
9993         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
9994         const0_rtx instead of NULL_RTX when in error.
9995         (altivec_expand_abs_builtin): Same.
9996         (rs6000_expand_binop_builtin): Same.
9997         (altivec_expand_predicate_builtin): Same.
9998         (altivec_expand_stv_builtin): Same.
9999         (rs6000_expand_ternop_builtin): Same.
10000         (altivec_expand_builtin): Same.
10001
10002 2002-05-29  David S. Miller  <davem@redhat.com>
10003
10004         * rtl.h (clear_emit_caches): Delete.
10005         * integrate.c (output_inline_function): Don't call it.
10006         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
10007         (clear_emit_caches): Delete definition.
10008         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
10009
10010 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
10011
10012         * config/mmix/mmix.c: Include real.h.
10013         (mmix_constant_address_p): Remove redundant test before switch.
10014
10015 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10016
10017         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
10018         only if not already defined.
10019
10020 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
10021
10022         * config/h8300/h8300-protos.h: Remove prototypes for
10023         ok_for_bclr and small_power_of_two.
10024         * config/h8300/h8300.c (small_power_of_two): Remove.
10025         (ok_for_blcr): Likewise.
10026         (fix_bit_operand): Make WHAT deal with an integer instead of a
10027         constraint character.
10028         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
10029         (CONST_OK_FOR_P): Likewise.
10030         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
10031         CONST_OK_FOR_P any more.
10032         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
10033         of fix_bit_operand.
10034         (iorqi3): Likewise.
10035         (xorqi3): Likewise.
10036
10037 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10038
10039         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
10040         (CPP_PREDEFINES): Make sure this is undefined.
10041         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
10042         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
10043         or -U__MIPSEB__ before defining one or the other.  Instead,
10044         use %(subtarget_endian_default) if neither -EB nor -EL are
10045         specified.
10046         (SUBTARGET_EXTRA_SPECS): Define.
10047         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
10048         %(netbsd_cpp_spec).
10049
10050 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
10051
10052         * doc/md.texi (Patterns): Note pattern condition pitfall
10053         for unnamed insn.
10054
10055 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
10056
10057         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
10058         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
10059         ternary operations from here...
10060         (rs6000_expand_builtin): ...to here.
10061         New argument expandedp.
10062         Change all instances of altivec_expand_binop_builtin to
10063         rs6000_expand_binop_builtin.
10064         (altivec_expand_unop_builtin): Rename to
10065         rs6000_expand_unop_builtin.
10066         (altivec_expand_binop_builtin): Rename to
10067         rs6000_expand_binop_builtin.
10068         (altivec_expand_ternop_builtin): Rename to
10069         rs6000_expand_ternop_builtin.
10070
10071 2002-05-29  Richard Henderson  <rth@redhat.com>
10072
10073         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
10074         (TARGET_BI_ARCH): Likewise.
10075         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
10076         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
10077         (TARGET_64BIT_DEFAULT): Default to 0.
10078         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
10079
10080 2002-05-29  Richard Henderson  <rth@redhat.com>
10081
10082         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
10083         (get_pc_thunk_name): New.
10084         (output_set_got): Use it.
10085         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
10086         into linkonce sections.
10087
10088 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10089
10090         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
10091         (CPP_PREDEFINES): Make sure this is undefined.
10092         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
10093         (CPP_SUBTARGET_SPEC): Don't provide different versions for
10094         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
10095         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
10096         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
10097         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
10098         (CPP_PREDEFINES): Make sure this is undefined.
10099         (SUBTARGET_EXTRA_SPECS): Define.
10100         (CPP_SPEC): Use %(netbsd_cpp_spec).
10101
10102 2002-05-29  Jeff Law <law@redhat.com>
10103
10104         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
10105
10106         * flow.c (propagate_one_insn): Do not remove a dead insn if it
10107         contains a REG_RETVAL note.
10108
10109         * haifa-sched (sched_analyze): Remove another useless clearing
10110         of SCHED_GROUP_P I missed yesterday.
10111
10112         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
10113         * pa.c (pa_asm_output_mi_thunk): New function.
10114         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
10115
10116 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10117             Marek Michalkiewicz  <marekm@amelek.gda.pl>
10118
10119         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
10120         (avr_asm_only_p): Make non-static.
10121         (enum avr_arch): Remove.
10122         (avr_arch_types): New.
10123         (avr_mcu_types): Update.
10124         (avr_override_options): Use avr_arch_types table instead of switch.
10125         * avr.h (CPP_PREDEFINES): Die.
10126         (avr_base_arch_macro, avr_extra_arch_macro): New.
10127         (TARGET_CPU_CPP_BUILTINS): New.
10128         (CPP_SPEC, EXTRA_SPECS): Simplify.
10129         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
10130         CPP_AVR5_SPEC): Die.
10131
10132 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10133
10134         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
10135         NETBSD_OS_CPP_BUILTINS_AOUT.
10136         (SUBTARGET_EXTRA_SPECS): Define.
10137         (CPP_SPEC): Use %(netbsd_cpp_spec).
10138
10139 2002-05-29  Richard Henderson  <rth@redhat.com>
10140
10141         * config/i386/i386.c (ix86_output_function_epilogue): New.
10142         (TARGET_ASM_FUNCTION_EPILOGUE): New.
10143         (pic_label_name): Remove.
10144         (pic_labels_used): New.
10145         (ix86_asm_file_end): Emit one pc load stub for each register used.
10146         (output_set_got): Generate deep pc load to any register.
10147         (ix86_select_alt_pic_regnum): New.
10148         (ix86_save_reg): Don't save pic register if we can find a valid
10149         call-clobbered replacement.
10150         (ix86_expand_prologue): If we found a valid replacement, renumber
10151         pic_offset_table_rtx.
10152         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
10153         pic_offset_table_rtx after reload.
10154         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
10155         * config/i386/i386.md (set_got): Make insn, not expander.
10156         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
10157
10158 2002-05-29  Richard Henderson  <rth@redhat.com>
10159
10160         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
10161         alignment for alloca.
10162
10163 2002-05-29  Richard Henderson  <rth@redhat.com>
10164
10165         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
10166         (print_operand_address): Only add rip for symbolic addresses
10167         for which we do not have another relocation type.
10168
10169 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10170
10171         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
10172         (EXTRA_SPECS): Add netbsd_cpp_spec.
10173         (CPP_SPEC): Use %(netbsd_cpp_spec).
10174         (CPP_PREDEFINES): Remove.
10175         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
10176         (EXTRA_SPECS): Define.
10177         (CPP_SPEC): Use %(netbsd_cpp_spec).
10178         (CPP_PREDEFINES): Remove.
10179
10180 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10181
10182         PR preprocessor/6844
10183         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
10184         NUL.
10185
10186 2002-05-29  Eric Christopher  <echristo@redhat.com>
10187
10188         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
10189         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
10190
10191 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
10192
10193         * config/fr30/fr30.md: Remove previous restriction on splits.
10194         Enforce conformance through gen_lowpart and cont_int_operand.
10195         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
10196         as the assembler does not support ".bss".
10197
10198 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10199
10200         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
10201         (CPP_PREDEFINES): Remove.
10202         (SUBTARGET_EXTRA_SPECS): Define.
10203         (CPP_SPEC): Use %(netbsd_cpp_spec).
10204         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
10205         (CPP_PREDEFINES): Remove.
10206         (SUBTARGET_EXTRA_SPECS): Define.
10207         (CPP_SPEC): Use %(netbsd_cpp_spec).
10208         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
10209         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
10210         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
10211         Add netbsd_cpp_spec.
10212         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
10213
10214 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
10215             Zack Weinberg <zack@codesourcery.com>
10216
10217         * cppexp.c (cpp_num): Move to cpplib.h.
10218         (CPP_ERROR): Remove.
10219         (interpret_float_suffix, interpret_int_suffix): New.
10220         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
10221         (cpp_classify_number, cpp_interpret_integer): New.
10222         (interpret_number): Remove.
10223         (eval_token): Update to use new routines.
10224         * cpphash.h (cpp_num_part): Move to cpplib.h.
10225         * cppinit.c (cpp_post_options): Set warn_long_long.
10226         * cpplib.h (struct cpp_options): Add warn_long_long.
10227         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
10228         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
10229         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
10230         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
10231         cpp_interpret_integer): New.
10232
10233 2002-05-29  Joel Sherrill <joel@OARcorp.com>
10234
10235         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
10236
10237 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
10238
10239         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
10240         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
10241         (CPP_SUBTARGET_SPEC): Define.
10242         (SUBTARGET_EXTRA_SPECS): Define.
10243         (CPP_SPEC): Remove.
10244
10245 2002-05-29  Chris Lattner  <sabre@nondot.org>
10246
10247         * ssa.c (rename_insn_1): Rename uses of undefined registers to
10248         prevent confusion if/when the register is defined.
10249
10250 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
10251
10252         PR target/6838
10253         * config/cris/cris.md: Fix typos and thinkos in comments.
10254         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
10255         second alternative.
10256         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
10257         ("*mov_sideqi_mem"): Similar, but for operand 3.
10258         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
10259         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
10260         Remove spurious mode specifier on operand 2.
10261
10262 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
10263
10264         * config/h8300/h8300-protos.h: Remove the prototype for
10265         o_operand.
10266         Add prototypes for single_one_operand and single_zero_operand.
10267         * config/h8300/h8300.c (o_operand): Remove.
10268         (single_one_operand): New.
10269         (single_zero_operand): Likewise.
10270         (print_operand): For 'V' operand, and the operand with 0xff.
10271         For 'V' and 'W' operands, do not and the bit position with 7.
10272         * config/h8300/h8300.md (various anonymous patterns): Replace
10273         use of exact_log2 with single_one_operand/single_zero_operand.
10274
10275 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
10276
10277         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
10278
10279 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
10280
10281         * config/s390/s390.c (legitimate_pic_operand_p): Do not
10282         accept symbolic LARL operands.
10283         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
10284         epilogue insns.
10285
10286 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
10287
10288         * config/s390/s390.md (cmpstr_64/31): Mark whole
10289         input registers as used.
10290
10291 2002-05-28  Richard Henderson  <rth@redhat.com>
10292
10293         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
10294         not current_function_uses_pic_offset_table and
10295         current_function_uses_const_pool; examine current_function_profile.
10296         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
10297         input to blockage if needed.
10298         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
10299         (legitimize_pic_address): Likewise.  Set regs_ever_live for
10300         pic_offset_table_rtx when invoked during reload.
10301         * config/i386/i386.h (FINALIZE_PIC): Remove.
10302         * config/i386/i386.md (tablejump): Reformat.  Do not set
10303         current_function_uses_pic_offset_table.
10304         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
10305         (blockage): Accept anything as operand 0.
10306
10307 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
10308
10309         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
10310         common CPP built-ins for all NetBSD a.out targets.
10311         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
10312         common CPP built-ins for all NetBSD ELF targets.
10313         * config/netbsd.h: Add missing notice.
10314         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
10315         for all NetBSD targets.
10316         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
10317         for all NetBSD targets using an LP64 code model.
10318         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
10319         NetBSD targets.
10320
10321 2002-05-28  Richard Henderson  <rth@redhat.com>
10322
10323         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
10324         update if UPDATE_LIFE_LOCAL.
10325
10326 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
10327
10328         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
10329
10330 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
10331                           Jason R. Thorpe <thorpej@wasabisystems.com>
10332
10333         config/sh reorganization to factor out endianness and coff:
10334
10335         * config/sh/little.h: New file.
10336         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
10337         defined, define to 0 to select big-endian.
10338         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
10339         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
10340         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
10341         * config/sh/t-be: New file.
10342         * config/sh/t-le: New file.
10343
10344         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
10345         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
10346         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
10347         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
10348         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
10349         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
10350         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
10351         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
10352         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
10353         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
10354         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
10355         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
10356         (LINK_SPEC): Define to SH_LINK_SPEC.
10357         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
10358         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
10359         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
10360         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
10361         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
10362         * config/sh/coff.h: New file.
10363         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
10364         (TARGET_OBJFMT_CPP_BUILTINS): Define.
10365         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
10366         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
10367         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
10368         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
10369         (PTRDIFF_TYPE): Likewise.
10370         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
10371         (CPP_PREDEFINES): Don't define.
10372         (TARGET_OBJFMT_CPP_BUILTINS): Define.
10373         (LINK_SPEC): Define to SH_LINK_SPEC.
10374         (LINK_EMUL_PREFIX): Redefine.
10375         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
10376         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
10377         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
10378         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
10379         (TARGET_OS_CPP_BUILTINS): Define.
10380         (TARGET_DEFAULT): Redefine.
10381         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
10382         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
10383         (LINK_SPEC): Don't redefine.
10384         (LINK_DEFAULT_CPU_EMUL): Redefine.
10385         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
10386         * sh.c (sh_asm_named_section): Don't declare / define.
10387         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
10388         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
10389         (sh64-*-elf* tm_file): Likewise.
10390         (sh-*-rtemself* tm_file): Likewise.
10391         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
10392         (sh-*-linux* tmake_file): Add sh/t-le.
10393         (sh-*-rtems* tm_file): Add sh/coff.h
10394         (sh-*-* tm_file): Likewise.
10395
10396 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
10397
10398         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
10399         CONSTANT_POOL_ADDRESS_P.
10400
10401         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
10402
10403 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
10404             Jeff Law <law@redhat.com>
10405
10406         * optabs.c (expand_binop): Fix nwords sign warnings.
10407         generate pseudo for add_optab.
10408
10409         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
10410         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
10411
10412 2002-05-28      Marc Espie <espie@openbsd.org>
10413
10414         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
10415         inherited from gas.h.
10416         (ASM_QUAD):  Undef.  OpenBSD does not support it.
10417
10418 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
10419
10420         * doc/install.texi (binaries): Change mingw binaries
10421         link to www.mingw.org.
10422
10423 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10424
10425         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
10426
10427 2002-05-28  Richard Henderson  <rth@redhat.com>
10428
10429         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
10430         bottom alignment for leaf functions.
10431
10432 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
10433
10434         * config/pa/milli32.S, config/pa/lib1funcs.asm,
10435         config/sparc/sol2-g1.asm: Delete unused files.
10436
10437 2002-05-28  Richard Henderson  <rth@redhat.com>
10438
10439         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
10440
10441         * flow.c (calculate_global_regs_live): Rename call_used to
10442         invalidated_by_call.  Initialize from regs_invalidated_by_call
10443         instead of call_used_regs.
10444
10445         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
10446         DECL_EXTERNAL.
10447
10448 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
10449
10450         * tree.h: Don't include real.h.
10451         Forward-declare struct realvaluetype.
10452         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
10453         contain it.
10454         (TREE_REAL_CST_PTR): New accessor.
10455         (TREE_REAL_CST): Update.
10456         * real.h: Include machmode.h.
10457         (realvaluetype): Make it struct realvaluetype, not a typedef.
10458         (build_real): Prototype here.
10459
10460         * tree.c: Include real.h.
10461         (build_real): Allocate the REAL_VALUE_TYPE as a separate
10462         object in GC memory, set TREE_REAL_CST_PTR to point to it.
10463         (build_real_from_int_cst): Use build_real.
10464         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
10465         REAL_CST.
10466
10467         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
10468         fold-const.c, print-tree.c, real.c: Include real.h.
10469         * Makefile.in: Update dependency lists.
10470
10471 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10472
10473         * basic-block.h (last_basic_block): Declare.
10474         (expunge_block_nocompact): Declaration removed.
10475         (compact_blocks): Declare.
10476         * cfg.c (last_basic_block): New variable.
10477         (expunge_block_nocompact): Removed.
10478         (expunge_block): Do not compact basic blocks.
10479         (compact_blocks): New.
10480         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
10481         longer change.
10482         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
10483         last_basic_block.
10484         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
10485         real positions of blocks.
10486         (delete_unreachable_blocks): Simplified -- quadratic behavior now
10487         cannot occur.
10488         (cleanup_cfg): Compact blocks.
10489         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
10490         basic_block_info varray.
10491         (flow_delete_block): Comment update.
10492         (back_edge_of_syntactic_loop_p): Modify position check code.
10493         (verify_flow_info): Update checking.
10494         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
10495         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
10496         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
10497         indices no longer change.
10498         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
10499         last_basic_block.
10500         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
10501         * profile.c (branch_prob): Compact blocks.
10502         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
10503         last_basic_block.
10504
10505 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
10506
10507         * config/h8300/h8300.md (two anonymous patterns): New.
10508
10509 2002-05-28  David S. Miller  <davem@redhat.com>
10510
10511         * config/sparc/sparc.md (cpu): Tidy.
10512         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
10513         'trap'.
10514         (in_call_delay): Delete reference to 'return' type.
10515         (eligible_for_return_delay, in_return_delay, define_delay
10516         referencing those): Delete.
10517         (rest of file): Use new type attributes as appropriate.
10518         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
10519         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
10520         * config/sparc/ultra1_2.md (us1_single): New reservation.
10521         (us1_ialuX): Likewise.
10522         * config/sparc/ultra3.md (us3_single): Likewise.
10523         (us3_ialuX): Likewise.
10524         (us3_imul, us3_idiv): Tweak.
10525
10526 2002-05-28  Richard Henderson  <rth@redhat.com>
10527
10528         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
10529         STRING_CST.
10530
10531 2002-05-28  Richard Henderson  <rth@redhat.com>
10532
10533         * config.gcc: Obsolete mn10200.
10534
10535 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10536
10537         * cppexp.c (interpret_number): Optimize for single-digit
10538         and less-than-half-precision cases.
10539         (num_trim, num_positive, num_div_op): Cast constants.
10540
10541 2002-05-27  Bo Thorsen  <bo@suse.de>
10542
10543         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
10544         3.1 branch. The file was made by Jakub Jelinek.
10545         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
10546         support so multilib doesn't break. And don't define this at all
10547         when -Dinhibit_libc is used.
10548         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
10549         * config/i386/t-linux64: Implement full multilib support. Patch
10550         originally done by Andreas Jaeger and Jakub Jelinek.
10551
10552 2002-05-27  Roger Sayle  <roger@eyesopen.com>
10553
10554         * c-common.c: Add support for __attribute__((nothrow)) to specify
10555         that a function cannot throw an exception (using TREE_NOTHROW).
10556         (handle_nothrow_attribute): New function to process this attribute.
10557
10558         * doc/extend.texi: Document the new nothrow function attribute.
10559
10560 2002-05-27  H.J. Lu  (hjl@gnu.org)
10561
10562         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
10563         (num_positive): Likewise.
10564         (num_div_op): Likewise.
10565
10566 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10567
10568         * c-common.c (c_common_init): Always use intmax_t.
10569
10570 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10571
10572         * c-common.c (c_common_init): Use intmax_t for now.
10573
10574 2002-05-24  Andrew Haley  <aph@redhat.com>
10575
10576         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
10577         if T is a boolean type.
10578
10579 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10580
10581         * basic-block.h (last_basic_block): Defined as synonym for
10582         n_basic_blocks.
10583         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
10584         flow_depth_first_order_compute, flow_preorder_transversal_compute,
10585         flow_dfs_compute_reverse_init): Replaced relevant occurences of
10586         n_basic_blocks with last_basic_block.
10587         * cfgbuild.c (make_edges): Likewise.
10588         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
10589         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
10590         * combine.c (combine_instructions): Likewise.
10591         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
10592         iterative_dataflow_bitmap): Likewise.
10593         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
10594         calc_idoms, idoms_to_doms): Likewise.
10595         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
10596         Likewise.
10597         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
10598         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
10599         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
10600         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
10601         delete_null_pointer_checks, compute_code_hoist_vbeinout,
10602         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
10603         compute_store_table, build_store_vectors): Likewise.
10604         * haifa-sched.c (sched_init): Likewise.
10605         * ifcvt.c (if_convert): Likewise.
10606         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
10607         pre_edge_lcm, compute_available, compute_nearerout,
10608         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
10609         Likewise.
10610         * predict.c (estimate_probability, process_note_prediction,
10611         note_prediction_to_br_prob): Likewise.
10612         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
10613         * recog.c (split_all_insns, peephole2_optimize): Likewise.
10614         * regrename.c (copyprop_hardreg_forward): Likewise.
10615         * resource.c (init_resource_info): Likewise.
10616         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
10617         init_regions, schedule_insns): Likewise.
10618         * ssa-ccp.c (ssa_const_prop): Likewise.
10619         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
10620         * ssa.c (compute_dominance_frontiers,
10621         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
10622
10623         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
10624         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
10625         sizes consistently.
10626
10627 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
10628
10629         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
10630         new.
10631         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
10632         hoist_insn_after, hoist_insn_to_edge): New.
10633
10634 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
10635
10636         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
10637         (PROP_FINAL): Include.
10638         * flow.c (life_analysis, update_life_info,
10639         init_propagate_block_info, mark_set_1, mark_used_rgs):
10640         Support SCAN_DEAD_STORE.
10641
10642 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10643
10644         * c-common.c (c_common_init): Set CPP arithmetic precision.
10645         * cppexp.c (cpp_num_part): Move typedef ...
10646         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
10647         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
10648         (sanity_checks): Update.
10649
10650 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
10651
10652         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
10653         (mkheaders): New rule.
10654         (install-mkheaders): New rule.
10655         * configure.in (all_outputs): Add mkheaders.
10656         * configure: Regenerate.
10657         * mkheaders.in: New file.
10658
10659 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
10660
10661         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
10662
10663 2002-05-26  Andreas Jaeger  <aj@suse.de>
10664
10665         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
10666
10667 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10668
10669         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
10670         right_shift): Remove.
10671         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
10672         HIGH_PART): New.
10673         (struct op): Use cpp_num.
10674         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
10675         num_part_mul, num_unary_op, num_binary_op, num_negate,
10676         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
10677         num_div_op, num_lshift, num_rshift, append_digit): New.
10678         (interpret_number, parse_defined, eval_token, reduce): Update
10679         for two-integer arithmetic.
10680         (binary_handler): New typedef.
10681         (optab): Update.
10682         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
10683         (_cpp_parse_expr, reduce): Update to handle two-integers.
10684         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
10685
10686 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10687
10688         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
10689         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
10690         branch insn into account, do not assume 1.
10691         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
10692         over single word insn.  Handle upper half of I/O space too.
10693         * config/avr/avr.md (*sbrx_branch): Use it.
10694         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
10695         (*sbix_branch, *sbix_branch_bit7): Likewise.
10696         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
10697         Use RTL peepholes to optimize register operand sign tests.
10698
10699 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10700
10701         * config/avr/avr.c (avr_asm_only_p): New variable.
10702         (avr_override_options): Set it here if AVR1.
10703         (asm_file_start): Test it here, report an error if set.
10704
10705 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
10706
10707         * alias.c: Fix formatting.
10708         * attribs.c: Likewise.
10709         * bb-reorder.c: Likewise.
10710         * bitmap.c: Likewise.
10711         * bitmap.h: Likewise.
10712         * builtins.c: Likewise.
10713
10714 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
10715
10716         * reload.c (find_valid_class): Accept new argument DEST,
10717         choose class accordingly.
10718         (push_reload): Update callers.
10719
10720 2002-05-26  Andreas Jaeger  <aj@suse.de>
10721
10722         * combine.c (combine_instructions): Do not indent #if for
10723         traditional C.
10724
10725 2002-05-25  Richard Henderson  <rth@redhat.com>
10726
10727         * c-pragma.c (apply_pragma_weak): Convert value identifier to
10728         string for decl_attributes.
10729         (handle_pragma_weak): Call assemble_alias if we're modifying
10730         an existing decl.
10731
10732 2002-05-25  Richard Henderson  <rth@redhat.com>
10733
10734         PR target/6788
10735         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
10736         using rtl instead of fprintf.
10737         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
10738         * config/sparc/sparc-protos.h: Update.
10739
10740 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10741
10742         * Makefile.in (C_COMMON_H): Fix.
10743         Update other targets.
10744         * c-common.c: Don't include c-lex.h.
10745         (builtin_define_with_value): Make static and prototype.
10746         (builtin_define_std): Move from c-lex.h.
10747         * c-common.h (init_c_lex): Move from c-lex.h.
10748         * c-decl.c: Don't include c-lex.h.
10749         (make_pointer_declarator): Move from c-parse.in.
10750         * c-lex.c: Don't include c-lex.h.
10751         * c-lex.h: Remove.
10752         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
10753         (make_pointer_declarator): Move to c-decl.c.
10754         * c-pragma.c: Don't include c-lex.h.
10755         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
10756         * c-tree.h (make_pointer_declarator): New.
10757 doc:
10758         * passes.texi, tm.texi: Update.
10759 objc:
10760         * Make-lang.in: Update and correct.
10761         * objc-act.c: Don't include c-lex.h or cpplib.h.
10762 treelang:
10763         * treetree.c: Don't include c-lex.h.
10764 config:
10765         * darwin-c.c: Don't include c-lex.h.
10766         * c4x/c4x-c.c: Don't include c-lex.h.
10767         * c4x/t-c4x: Update.
10768         * i370/i370-c.c: Don't include c-lex.h.
10769         * i370/t-i370: Update.
10770         * i960/i960-c.c: Don't include c-lex.h.
10771         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
10772         * i960/t-960bare: Update.
10773         * i960/t-vxworks: Update.
10774         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
10775         * rs6000/t-darwin: Update.
10776         * rs6000/t-rs6000-c-rule: Update.
10777         * v850/v850-c.c: Don't include c-lex.h.
10778         * v850/v850.c: Don't include c-lex.h or cpplib.h.
10779
10780
10781 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
10782
10783         * tree.def: Fix typos.
10784         * doc/install.texi: Likewise.
10785
10786 2002-05-25  Richard Henderson  <rth@redhat.com>
10787
10788         * configure.in (HAVE_AS_TLS): Add ia64 test.
10789         * configure: Rebuild.
10790         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
10791         (override_options): Set it.
10792         (TARGET_HAVE_TLS): New.
10793         (sdata_symbolic_operand): Look for 's'.
10794         (tls_symbolic_operand): New.
10795         (ia64_expand_load_address): Abort for tls symbols.
10796         (gen_tls_get_addr): New.
10797         (gen_thread_pointer): New.
10798         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
10799         (rtx_needs_barrier): Add new unspecs.
10800         (ia64_encode_section_info): Handle tls symbols.
10801         (ia64_strip_name_encoding): Strip two encoding chars.
10802         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
10803         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
10804         (TARGET_OPTIONS): Add tls-size.
10805         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
10806         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
10807         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
10808         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
10809         (movsf, movdf): Likewise.
10810         (movdi_symbolic): Use match_scratch.  Don't split if we won't
10811         have a scratch availiable.
10812         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
10813         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
10814         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
10815         * config/ia64/ia64-protos.h: Update.
10816         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
10817         sdata_symbolic_operand.
10818         (ASM_OUTPUT_LABELREF): Strip two characters.
10819
10820 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
10821
10822         * combine.c (simplify_set): Remove an unnecessary subreg.
10823
10824 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10825
10826         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
10827
10828         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
10829
10830 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
10831
10832         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
10833
10834 2002-05-25  Roger Sayle  <roger@eyesopen.com>
10835
10836         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
10837         (cond (compare x y) 0) into the equivalent (cond x y).
10838
10839 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
10840
10841         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
10842
10843 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
10844
10845         * config.gcc: Remove all stanzas for previously obsoleted
10846         systems.  Where necessary, add explicit error stanzas to
10847         prevent removed systems from being misidentified as something
10848         else.  Begin a fresh obsoletions list, with the systems that
10849         were reprieved last round.
10850         * doc/install.texi: Remove all mention of dead targets.
10851         * fixinc/mkfixinc.sh: Likewise.
10852
10853         * config/arm/arm.h: Bit 31 of target_flags is no longer
10854         reserved.
10855
10856         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
10857         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
10858         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
10859         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
10860         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
10861         config/alpha/osf12.h, config/alpha/osf2or3.h,
10862         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
10863         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
10864         config/clipper/clipper-protos.h, config/clipper/clipper.c,
10865         config/clipper/clipper.h, config/clipper/clipper.md,
10866         config/clipper/clix.h, config/convex/convex-protos.h,
10867         config/convex/convex.c, config/convex/convex.h,
10868         config/convex/convex.md, config/convex/fixinc.convex,
10869         config/convex/proto.h, config/elxsi/elxsi-protos.h,
10870         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
10871         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
10872         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
10873         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
10874         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
10875         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
10876         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
10877         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
10878         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
10879         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
10880         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
10881         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
10882         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
10883         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
10884         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
10885         config/m68k/altos3068.h, config/m68k/apollo68.h,
10886         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
10887         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
10888         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
10889         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
10890         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
10891         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
10892         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
10893         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
10894         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
10895         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
10896         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
10897         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
10898         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
10899         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
10900         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
10901         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
10902         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
10903         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
10904         config/mips/dec-osf1.h, config/mips/elflorion.h,
10905         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
10906         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
10907         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
10908         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
10909         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
10910         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
10911         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
10912         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
10913         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
10914         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
10915         config/ns32k/sequent.h, config/ns32k/tek6000.h,
10916         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
10917         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
10918         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
10919         config/sparc/rtems.h, config/we32k/we32k-protos.h,
10920         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
10921         Delete file.
10922
10923 2002-05-24  Richard Henderson  <rth@redhat.com>
10924
10925         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
10926         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
10927         * config/i386/i386.c (tls_model_chars): Add leading space.
10928         (tls_symbolic_operand): Don't bias by 1.
10929         (legitimize_address): Don't unbias by 1.
10930
10931 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
10932
10933         * lcm.c (optimize_mode_switching): Change bb used as indices
10934         to bb->index.
10935
10936 2002-05-24  Richard Henderson  <rth@redhat.com>
10937
10938         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
10939         of update_life_info_in_dirty_blocks.
10940
10941 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
10942
10943         PR other/6782
10944         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
10945
10946 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10947
10948         PR preprocessor/6780
10949         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
10950
10951 2002-05-24  Jim Blandy  <jimb@redhat.com>
10952
10953         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
10954         entry with a type code of zero, marking the end of the compilation
10955         unit's macro info.
10956
10957 2002-05-24  Richard Henderson  <rth@redhat.com>
10958
10959         * varasm.c (asm_output_bss): Always output one byte.
10960         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
10961
10962 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10963
10964         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
10965         namespace.
10966
10967 2002-05-24  Andreas Jaeger  <aj@suse.de>
10968
10969         * ggc-page.c (alloc_page): Cast variables of type size_t to
10970         unsigned long, adjust printf format string.
10971         (ggc_alloc): Likewise.
10972         (ggc_print_statistics): Likewise.
10973         (ggc_print_statistics): Correct printf format string for SCALE to
10974         use unsigned long.
10975
10976 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
10977
10978         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
10979
10980 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
10981             Zack Weinberg     <zack@codesourcery.com>
10982
10983         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
10984         quoted strings.
10985         * dwarf2out.c (lookup_filename): Properly quote filename in .file
10986         directive in assembly file.
10987         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
10988         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
10989         * config/pj/pj.h (ASM_FILE_START): Likewise.
10990         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
10991         * config/avr/avr.c (asm_file_end): Likewise.
10992         * toplev.c (output_quoted_string): Handle possibly signed plain
10993         char.
10994         * toplev.h (output_clean_symbol_name): Declare
10995         * toplev.c (output_clean_symbol_name): Define.
10996         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
10997         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
10998
10999 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
11000
11001         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
11002
11003 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
11004
11005         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
11006         of size of unsigned.
11007
11008 2002-05-23  Richard Henderson  <rth@redhat.com>
11009
11010         * configure.in (HAVE_AS_TLS): New test.
11011         * config.in, configure: Rebuild.
11012         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
11013         (ix86_tls_dialect_string, ix86_tls_dialect): New.
11014         (override_options): Set it.
11015         (tls_model_chars, tls_symbolic_operand): New.
11016         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
11017         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
11018         (local_exec_symbolic_operand): New.
11019         (get_pic_label_name): Merge into output_set_got.
11020         (ix86_asm_file_end): Emit pic_label_name if defined.
11021         (legitimate_constant_p, constant_address_p): New.
11022         (legitimate_pic_operand_p): New.
11023         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
11024         (legitimate_address_p): Likewise.
11025         (ix86_encode_section_info): Rename from i386_; handle tls decls.
11026         (ix86_strip_name_encoding): New.
11027         (get_thread_pointer): New.
11028         (legitimize_address): Handle tls symbols.
11029         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
11030         Remove UNSPEC_PLT.
11031         (struct machine_function): Add some_ld_name.
11032         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
11033         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
11034         (output_addr_const_extra): New.
11035         (maybe_get_pool_constant): New.
11036         (ix86_split_to_parts): Use it.
11037         (ix86_expand_move): Handle tls symbols.
11038         (ix86_tls_get_addr): New.
11039         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
11040         (TARGET_OPTIONS): Add tls-dialect.
11041         (CONSTANT_ADDRESS_P): Use new out-of-line function.
11042         (LEGITIMATE_CONSTANT_P): Likewise.
11043         (LEGITIMATE_PIC_OPERAND_P): Likewise.
11044         (TARGET_STRIP_NAME_ENCODING): New.
11045         (ASM_OUTPUT_LABELREF): New.
11046         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
11047         (OUTPUT_ADDR_CONST_EXTRA): New.
11048         (PREDICATE_CODES): Update.
11049         (ix86_tls_dialect, ix86_tls_dialect_string): New.
11050         * config/i386/i386.md: Regroup and renumber unspec constants.
11051         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
11052         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
11053         (tls_global_dynamic, tls_local_dynamic_base): New.
11054         (tls_local_dynamic_once): New.
11055         * config/i386/i386-protos.h: Update.
11056
11057 2002-05-23  Richard Henderson  <rth@redhat.com>
11058
11059         * genemit.c (gen_insn): Print file:lineno comment before function.
11060         (main): likewise.
11061         * gensupport.c (struct queue_elem): Add filename member.
11062         (queue_pattern): Initialize it; update all callers.
11063         (process_include): Don't free filename.
11064         (read_md_rtx): Set read_rtx_filename.
11065
11066 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
11067
11068         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
11069
11070 2002-05-23  Richard Henderson  <rth@redhat.com>
11071
11072         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
11073
11074 2002-05-23  Richard Henderson  <rth@redhat.com>
11075
11076         * doc/extend.texi (C++98 Thread-Local Edits): Update with
11077         commentary from Mark.
11078
11079 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11080
11081         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
11082         Use FOR_EACH_BB macros to iterate over basic block chain.
11083         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
11084         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
11085         Likewise.
11086         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
11087         find_unreachable_blocks, create_edge_list, verify_edge_list,
11088         remove_fake_edges, add_noreturn_fake_exit_edges,
11089         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
11090         Likewise.
11091         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
11092         find_sub_basic_blocks): Likewise.
11093         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
11094         Likewise.
11095         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
11096         Likewise.
11097         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
11098         Likewise.
11099         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
11100         commit_edge_insertions, commit_edge_insertions_watch_calls,
11101         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
11102         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
11103         * conflict.c (conflict_graph_compute): Likewise.
11104         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
11105         df_modified_p, df_refs_unlink, df_dump): Likewise.
11106         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
11107         * final.c (compute_alignments): Likewise.
11108         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
11109         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
11110         count_or_remove_death_notes): Likewise.
11111         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
11112         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
11113         classic_gcse, compute_transp, cprop, compute_pre_data,
11114         compute_transpout, invalidate_nonnull_info,
11115         delete_null_pointer_checks_1, delete_null_pointer_checks,
11116         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
11117         compute_store_table, build_store_vectors, store_motion): Likewise.
11118         * global.c (global_conflicts, mark_elimination): Likewise.
11119         * graph.c (print_rtl_graph_with_bb): Likewise.
11120         * haifa-sched.c (sched_init): Likewise.
11121         * ifcvt.c (if_convert): Likewise.
11122         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
11123         compute_available, compute_nearerout, compute_rev_insert_delete,
11124         optimize_mode_switching): Likewise.
11125         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
11126         * predict.c (estimate_probability, note_prediction_to_br_prob,
11127         propagate_freq, counts_to_freqs, expensive_function_p,
11128         estimate_bb_frequencies): Likewise.
11129         * profile.c (instrument_edges, get_exec_counts,
11130         compute_branch_probabilities, compute_checksum, branch_prob,
11131         find_spanning_tree): Likewise.
11132         * recog.c (split_all_insns, peephole2_optimize): Likewise.
11133         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
11134         Likewise.
11135         * regclass.c (scan_one_insn, regclass): Likewise.
11136         * regmove.c (mark_flags_life_zones, regmove_optimize,
11137         record_stack_memrefs): Likewise.
11138         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
11139         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
11140         * resource.c (find_basic_block): Likewise.
11141         * sched-ebb.c (schedule_ebbs): Likewise.
11142         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
11143         find_single_block_region, find_rgns, schedule_insns)
11144         * sibcall.c (optimize_sibling_and_tail_recursive_call)
11145         * ssa-ccp.c (optimize_unexecutable_edges,
11146         ssa_ccp_df_delete_unreachable_insns): Likewise.
11147         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
11148         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
11149         rename_block, convert_to_ssa, compute_conservative_reg_partition,
11150         compute_coalesced_reg_partition, rename_equivalent_regs,
11151         convert_from_ssa): Likewise.
11152         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
11153         process_for_unwind_directive): Likewise.
11154
11155         * df.c (FOR_ALL_BBS): Removed.
11156         * gcse.c (struct null_pointer_info): Type of current_block field
11157         changed.
11158         (struct reg_avail_info): Type of last_bb field changed.
11159         * config/ia64/ia64.c (block_num): Removed.
11160         (need_copy_state): Type changed.
11161         (last_block): New.
11162
11163 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11164
11165         * cppinit.c (mark_named_operators): Split out from init_builtins.
11166         (cpp_finish_options): Call it from here instead.
11167
11168 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
11169
11170         * builtin-attrs.def: Update copyright years.
11171         (ATTR_NONNULL): New attribute identifier.
11172         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
11173         attribute tree lists.
11174         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
11175         format operand.
11176         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
11177         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
11178         attribute lists.  Chain the appropriate nonnull attribute.
11179         * c-format.c (check_format_arg): Remove null format string
11180         warning.
11181         * testsuite/gcc.dg/format/null-1.c: New test.
11182
11183 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11184
11185         * Makefile.in (ADAC): Define.
11186         (SYSLIBS): Define.
11187         (.SUFFIXES): Move before language makefile fragments.
11188         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
11189
11190 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
11191
11192         * varasm.c (make_decl_rtl): Don't allow weak variables to be
11193         placed in common.
11194
11195 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
11196
11197         * cfg.c (dump_flow_info): Print results of
11198         maybe_hot/probably_never_executed predicates.
11199         * toplev.c (open_dump_file): Print function frequency.
11200
11201 2002-05-23  David S. Miller  <davem@redhat.com>
11202
11203         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
11204         regsets.
11205
11206 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
11207
11208         * c-common.c (warn_nonnull): Declare.
11209         (c_common_attribute_table): Add "nonnull" attribute.
11210         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
11211         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
11212         check_function_arguments_recurse): New functions.
11213         * c-common.h (warn_nonnull): Declare extern.
11214         (check_function_arguments, check_function_arguments_recurse): New
11215         prototypes.
11216         * c-decl.c (c_decode_option): Add -Wnonnull option.
11217         * c-format.c (set_Wformat): Set warn_nonnull if enabling
11218         format checking.
11219         (format_check_context): New structure.
11220         (check_format_info_recurse): Remove recursion and rename to...
11221         (check_format_arg): ...this.  Update comment.
11222         (check_format_info): Use check_function_arguments_recurse.
11223         * c-typeck.c (build_function_call): Call check_function_arguments
11224         instead of check_function_format.
11225         * doc/extend.texi: Document "nonnull" attribute.
11226         * doc/invoke.texi: Docuemnt -Wnonnull option.
11227         * testsuite/gcc.dg/nonnull-1.c: New test.
11228         * testsuite/gcc.dg/nonnull-2.c: New test.
11229
11230 2002-05-23  David S. Miller  <davem@redhat.com>
11231
11232         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
11233         * cfgcleanup.c (cleanup_cfg): If it is set do not
11234         attempt to delete trivially dead insns.
11235         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
11236         * toplev.c (rest_of_compilation): Document non-trivial aspect
11237         the RTL before optimize_save_area_alloca is run.
11238
11239 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11240
11241         * c-lex.c (indent_level): Remove.
11242         (cb_file_change, c_lex): Remove indent level handling.
11243         * c-lex.h (indent_level): Remove.
11244         * input.h (struct file_stack): Remove indent_level.
11245         * toplev.c (push_srcloc): Remove indent_level handling.
11246
11247 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
11248
11249         PR target/6753
11250         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
11251         of x in constraints for clarity.
11252         (sse_mov?fcc split): abort if op2 == op3.
11253         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
11254         sse_movsfcc_const0_4): Add earlyclobber.
11255         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
11256         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
11257         Use Y instead of x in constraints.
11258
11259 2002-05-23  Richard Henderson  <rth@redhat.com>
11260
11261         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
11262         (C++98 Thread-Local Edits): New subsection.
11263
11264         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
11265         (ix86_arch): Set type to enum processor_type.
11266
11267         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
11268         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
11269
11270 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
11271
11272         * configure.in: Fix as version test for binutils 2.12.1 releases
11273         (without dates).
11274         * configure: Rebuilt.
11275
11276 2002-05-23  Richard Henderson  <rth@redhat.com>
11277
11278         * config/i386/i386.c (get_pic_label_name): New.
11279         (load_pic_register): Remove.
11280         (output_set_got): New.
11281         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
11282         * config/i386/i386.md (UNSPEC_SET_GOT): New.
11283         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
11284         (prologue_set_got, prologue_get_pc): Remove.
11285         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
11286         (builtin_setjmp_receiver): Use gen_set_got.
11287         * config/i386/i386-protos.h: Update.
11288
11289 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
11290
11291         * gcse.c (hash_expr): Do not use alias set for hashing.
11292
11293 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
11294
11295         * dbxout.c (dbxout_class_name_qualifiers): New function.
11296         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
11297
11298 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11299
11300         * cpperror.c (_cpp_begin_message): No special casing
11301         of CPP_FATAL_LIMIT.
11302         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
11303         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
11304         * cpplib.c (do_include_common): Use DL_ERROR.
11305         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
11306         (DL_ICE): Renumber.
11307         * fix-header.c (read_scan_file): Update.
11308
11309 2002-05-22  Richard Henderson  <rth@redhat.com>
11310
11311         * config/i386/i386.c (ix86_expand_call): New function, extracted
11312         from md call patterns.  Add pic_offset_table_rtx to
11313         CALL_INSN_FUNCTION_USAGE when needed.
11314         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
11315         (call_value_pop, call_value, untyped_call): Likewise.
11316         (call_exp, call_value_exp): Remove.
11317         * config/i386/i386-protos.h: Update.
11318
11319 2002-05-22  Richard Henderson  <rth@redhat.com>
11320
11321         * varasm.c (default_section_type_flags): Check for VAR_DECL
11322         before using DECL_THREAD_LOCAL.
11323
11324 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
11325
11326         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
11327         (STARTFILE_SPEC): Delete PE crt0.o.
11328         * config/rs6000/aix51.h: Same.
11329         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
11330         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
11331         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
11332         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
11333         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
11334
11335 2002-05-22  Richard Henderson  <rth@redhat.com>
11336
11337         * varasm.c (default_section_type_flags): Handle tls data and
11338         default sections.
11339         (default_unique_section): Handle tls sections.
11340
11341 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
11342
11343         * configure.in (CROSS): Define NATIVE_CROSS.
11344         * configure: Regenerate.
11345         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
11346         (startfile_prefix_spec): New var.
11347         (static_specs): Add startfile_prefix_spec.
11348         (do_spec_2): Split out from..
11349         (do_spec): ..here.
11350         (main): Process startfile_prefix_spec.
11351         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
11352         dynamic linker.
11353         (STARTFILE_PREFIX_SPEC): Define.
11354         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
11355         absolute paths.
11356
11357 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
11358
11359         * cpperror.c: Fix formatting.
11360         * cppexp.c: Likewise.
11361         * cppfiles.c: Likewise.
11362         * cpphash.c: Likewise.
11363         * cpphash.h: Likewise.
11364         * cppinit.c: Likewise.
11365         * cpplex.c: Likewise.
11366         * cpplib.c: Likewise.
11367         * cppmacro.c: Likewise.
11368         * cppmain.c: Likewise.
11369         * cppspec.c: Likewise.
11370
11371 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
11372
11373         * combine.c (force_to_mode): Use gen_int_mode.
11374         Don't clear CONST_INT bits outside of mode.
11375
11376 2002-05-22  Richard Henderson  <rth@redhat.com>
11377
11378         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
11379         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
11380
11381 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
11382
11383         PR c/6643
11384         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
11385         if DECL_SIZE_UNIT is INTEGER_CST.
11386
11387 2002-05-22  Richard Henderson  <rth@redhat.com>
11388
11389         * flow.c (life_analysis): Delete broken reg_label check.
11390
11391 2002-05-22  Richard Henderson  <rth@redhat.com>
11392
11393         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
11394         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
11395
11396 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
11397
11398         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
11399         (embed-bb.c): New rule.
11400         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
11401         * config/sh/embed_bb.c: Delete.
11402
11403 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
11404
11405         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
11406
11407 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
11408
11409         * config/h8300/h8300.md (*andorqi3): New.
11410
11411 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
11412
11413         PR preprocessor/6517
11414         * Makefile.in: Update.
11415         * c-common.c (c_common_post_options): Add preprocessor
11416         errors to the error count.
11417         * c-lang.c (c_post_options): Kill.
11418         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
11419         * hooks.h: Add header guards.
11420         * langhooks-def.h: Include hooks.h.
11421         (LANG_HOOKS_POST_OPTIONS): Update.
11422         * langhooks.h (struct lang_hooks): Update post_options.
11423         * toplev.c (parse_options_and_default_flags): Update.
11424 objc:
11425         * objc-lang.c (objc_post_options): Kill.
11426         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
11427
11428 2002-05-21  Bruce Korb  <bkorb@gnu.org>
11429
11430         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
11431         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
11432         * fixinc/fixincl.x: regen.
11433
11434 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
11435
11436         * cfgbuild.c: Fix formatting.
11437         * cfg.c: Likewise.
11438         * cfgcleanup.c: Likewise.
11439         * cfglayout.c: Likewise.
11440         * cfgloop.c: Likewise.
11441         * cfgrtl.c: Likewise.
11442
11443 2002-05-21  Richard Henderson  <rth@redhat.com>
11444
11445         * c-common.h (enum rid): Add RID_THREAD.
11446         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
11447         (grokdeclarator): Grok __thread.
11448         * c-parse.in (reswords): Add __thread.
11449         (rid_to_yy): Add RID_THREAD.
11450
11451         * tree.h (DECL_THREAD_LOCAL): New.
11452         (struct tree_decl): Add thread_local_flag.
11453         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
11454         * tree.c (staticp): TLS variables are not static.
11455
11456         * target-def.h (TARGET_HAVE_TLS): New.
11457         * target.h (have_tls): New.
11458         * output.h (SECTION_TLS): New.
11459         * varasm.c (assemble_variable): TLS variables can't be common for now.
11460         (default_section_type_flags): Handle .tdata and .tbss.
11461         (default_elf_asm_named_section): Handle SECTION_TLS.
11462         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
11463
11464         * flags.h (flag_tls_default): Declare.
11465         * toplev.c (flag_tls_default): Define.
11466         (display_help): Display help for it.
11467         (decode_f_option): Set it.
11468
11469         * doc/extend.texi (Thread-Local): New node describing language-level
11470         thread-local storage.
11471         * doc/invoke.texi (-ftls-model): Document.
11472
11473         * fixinc/inclhack.def (thread_keyword): New.
11474         * fixinc/fixincl.x: Rebuild.
11475
11476 2002-05-21  Jeffrey A Law  <law@redhat.com>
11477
11478         * optabs.c (expand_binop): For double-word integer multiplies,
11479         do not compute intermediate results into something that is
11480         not a register (such as a SUBREG or MEM).
11481
11482         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
11483         (ix86_sched_reorder): Make sure to initialize scheduling
11484         data even when there's only one insn in the ready queue.
11485
11486 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
11487
11488         * genautomata.c (reserv_sets_hash_value): Fix a typo.
11489
11490 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
11491
11492         * genautomata.c (reserv_sets_hash_value): Define hash_value as
11493         set_el_t.  Transform the hash value into unsigned.
11494         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
11495         (transform_3): Add code to process `(A,B)+(D,E)'.
11496
11497 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
11498
11499         * reload1.c (do_output_reload): Run delete_output_reload
11500         only if optimizing.
11501
11502 2002-05-21  Roger Sayle  <roger@eyesopen.com>
11503
11504         PR middle-end/6600
11505         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
11506         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
11507         (can_store_by_pieces): ... and here to limit the largest mode used.
11508         Add a comment to document this function.
11509
11510 2002-05-21  Richard Henderson  <rth@redhat.com>
11511
11512         * flow.c (life_analysis): Fix test for deleted label.
11513
11514 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
11515
11516         * doc/tm.texi: Fix typo.
11517
11518 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
11519
11520         * c-common.c (c_common_init): Set options->unsigned_char from
11521         flag_signed_char.
11522         (cb_register_builtins): Define __STRICT_ANSI__ and
11523         __CHAR_UNSIGNED__ here...
11524         * cppinit.c (init_builtins): Not here.
11525         (cpp_create_reader): unsigned_char option defaults to 0, not
11526         !DEFAULT_SIGNED_CHAR.
11527         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
11528         and -funsigned-char.
11529
11530         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
11531         * cpphash.c (_cpp_init_hashtable): Don't set it.
11532         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
11533         directly.  Clarify comment.
11534
11535 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11536
11537         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
11538         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
11539         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
11540         BASIC_BLOCK (n_basic_blocks - 1).
11541         * cfganal.c (can_fallthru, flow_call_edges_add,
11542         flow_preorder_transversal_compute): Too.
11543         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
11544         find_sub_basic_blocks): Too.
11545         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
11546         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
11547         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
11548         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
11549         * combine.c (this_basic_block): Type changed to basic_block.
11550         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
11551         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
11552         get_last_value, distribute_notes, distribute_links): Too.
11553         * final.c (compute_alignments): Too.
11554         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
11555         * function.c (thread_prologue_and_epilogue_insns): Too.
11556         * gcse.c (compute_code_hoist_vbeinout): Too.
11557         * global.c (build_insn_chain): Too.
11558         * ifcvt.c (find_if_block, find_cond_trap): Too.
11559         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
11560         * regmove.c (regmove_optimize): Too.
11561         * resource.c (find_basic_block): Too.
11562         * sched-ebb.c (schedule_ebbs): Too.
11563         * ssa-dce.c (find_control_dependence, find_pdom): Too.
11564
11565 2002-05-21  Andreas Jaeger  <aj@suse.de>
11566
11567         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
11568
11569 2002-05-21  Richard Henderson  <rth@redhat.com>
11570
11571         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
11572         unspec names, not numbers.
11573
11574 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
11575
11576         * doc/sourcebuild.texi: Mention snapshot-README and
11577         snapshot-index.html as needing updating for new front ends.
11578
11579 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11580
11581         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
11582         disabling checking, and avoid multiple evaluation of RTX.
11583
11584 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
11585
11586         * bitmap.c (bitmap_find_bit): Return early if we have the correct
11587         element cached.
11588
11589 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
11590
11591         * profile.c (gen_edge_profiler):  Set alias set before the memory is
11592         used.
11593
11594 2002-05-20  David S. Miller  <davem@redhat.com>
11595
11596         * cselib.c (max_value_regs): New.
11597         (cselib_lookup, cselib_invalidate_regno): Initialize it when
11598         adding new entries to the REG_VALUES table and we are dealing with
11599         a hard register.
11600         (clear_table): Initialize it.
11601         (cselib_invalidate_regno): Use it to determine which hard
11602         registers to scan when mode is not VOIDmode.
11603
11604 2002-05-20  Duraid Madina   <duraid@fl.net.au>
11605
11606         * tradcpp.c (fixup_newlines): Use old-style function header.
11607
11608 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
11609
11610         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
11611
11612 2002-05-20  H.J. Lu  (hjl@gnu.org)
11613
11614         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
11615
11616         * config/mips/mips.h (DFMODE_NAN): Defined.
11617         (SFMODE_NAN): Likewise.
11618
11619 2002-05-20  Dale Johannesen  <dalej@apple.com>
11620
11621         * combine.c (cant_combine_insn_p):  Back out my
11622         previous patch.
11623
11624 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
11625
11626         * params.c: Fix formatting.
11627         * params.h: Likewise.
11628         * predict.c: Likewise.
11629         * prefix.c: Likewise.
11630         * print-rtl.c: Likewise.
11631         * print-tree.c: Likewise.
11632         * profile.c: Likewise.
11633
11634 2002-05-20  H.J. Lu  (hjl@gnu.org)
11635
11636         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
11637
11638 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
11639
11640         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
11641         switches straight on to the assembler, do not abbreviate them.
11642         * config/arm/elf.h (ASM_SPEC): As above.
11643         * config/arm/semi.h (ASM_SPEC): As above.
11644         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
11645         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
11646         -mcpu=xscale on to the assembler by default.
11647         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
11648
11649 2002-05-20  Richard Henderson  <rth@redhat.com>
11650
11651         * cse.c (canon_hash): Reorder do_not_record test.  Always
11652         allow pic_offset_table_rtx.
11653
11654 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
11655
11656         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
11657         (expand_binop): Ditto (3 times).
11658
11659 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
11660
11661         * Makefile.in (distclean): Remove QMTest stuff.
11662         (QMTEST_PATH): New variable.
11663         (QMTESTFLAGS): Likewise.
11664         (QMTESTRUNFLAGS): Likewise.
11665         (QMTEST): Likewise.
11666         (QMTEST_GPP_TESTS): Likewise.
11667         (QMTEST_DIR): Likewise.
11668         (QMTEST_DIR/context): New target.
11669         (qmtest-g++): Likeise.
11670         (qmtest-gui): Likewise.
11671         (QMTEST_DIR/gpp-expected.qmr): Likewise.
11672
11673 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
11674
11675         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
11676         an altivec register if TARGET_ALTIVEC.
11677
11678         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
11679         to ALTIVEC_VECTOR_MODE.
11680         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
11681         (rs6000_va_arg): Vectors may go in registers if they are not
11682         altivec vectors.
11683
11684 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
11685
11686         * protoize.c: Fix formatting.
11687
11688 2002-05-19  Richard Henderson  <rth@redhat.com>
11689
11690         * gensupport.c (init_include_reader): Merge into ...
11691         (process_include): ... here.  Simplify composite path creation.
11692         Plug memory leaks.  Fix file/line number tracking.  Do not
11693         process_define_cond_exec.  Return void.
11694         (process_rtx): Don't check process_include return value.
11695
11696 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11697
11698         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
11699         fields.
11700         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
11701         traversing basic block chain.
11702         (create_basic_block_structure, create_basic_block): Declaration changed.
11703         (link_block, unlink_block): Declare.
11704         * cfg.c (entry_exit_blocks): Initialize new fields.
11705         (link_block, unlink_block): New.
11706         (expunge_block_nocompact): Unlink basic block.
11707         (dump_flow_info): Print prev_bb/next_bb fields.
11708         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
11709         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
11710         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
11711         * cfgrtl.c (create_basic_block_structure, create_basic_block,
11712         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
11713         (verify_flow_info): Check that list agrees with numbering.
11714
11715 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11716
11717         * c-common.c (preprocessing_asm): New macro.
11718         * c-lex.h (builtin_define, builtin_assert): Use pfile.
11719 doc:
11720         * tm.texi: Update.
11721 config/alpha:
11722         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
11723         (CPP_SPEC): Simplify.
11724         (TARGET_CPU_CPP_BUILTINS): Update.
11725         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
11726         (CPP_SPEC): Simplify.
11727         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
11728         (TARGET_OS_CPP_BUILTINS): Update.
11729         * osf.h (CPP_XFLOAT_SPEC): Kill.
11730         (TARGET_OS_CPP_BUILTINS): Update.
11731         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
11732         * osf5.h (CPP_XFLOAT_SPEC): Kill.
11733         * vms.h (CPP_SUBTARGET_SPEC): Kill.
11734         (TARGET_OS_CPP_BUILTINS): Update.
11735
11736 2002-05-19  Richard Henderson  <rth@redhat.com>
11737
11738         * varasm.c (default_binds_local_p): Fix typo.
11739
11740 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
11741
11742         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
11743         CONST_INT operand to the correct mode after adding 1 to it.
11744
11745 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
11746
11747         * config.gcc (powerpc-wrs-windiss*): New target.
11748
11749 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11750
11751         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
11752         (ashrdi3): Use it.
11753
11754 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
11755
11756         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
11757         alphasort.
11758         * config.in: Regenerated.
11759         * configure: Regenerated.
11760
11761 2002-05-19  Richard Henderson  <rth@redhat.com>
11762
11763         * target-def.h (TARGET_BINDS_LOCAL_P): New.
11764         * target.h (struct gcc_target): Move boolean fields to the end.
11765         Add binds_local_p.
11766         * varasm.c (default_binds_local_p): New.
11767         * output.h: Declare it.
11768
11769         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
11770         * config/cris/cris.c (cris_encode_section_info): Likewise.
11771         * config/i386/i386.c (i386_encode_section_info): Likewise.
11772         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
11773         * config/sh/sh.c (sh_encode_section_info): Likewise.
11774
11775         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
11776         (TARGET_BINDS_LOCAL_P): New.
11777
11778 2002-05-19  Richard Henderson  <rth@redhat.com>
11779
11780         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
11781         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
11782         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
11783
11784         * toplev.c (display_help): Kill -a -ax help.
11785
11786         * config/1750a/1750a.h, config/alpha/alpha.h,
11787         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
11788         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
11789         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
11790         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
11791
11792         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
11793         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
11794
11795         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
11796         (ix86_output_function_block_profiler): Kill.
11797         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
11798         (m68hc11_function_block_profiler): Kill.
11799         * config/m68hc11/m68hc11-protos.h: Update.
11800         * config/m88k/m88k.c (output_block_profiler): Kill.
11801         (output_function_block_profiler): Kill.
11802         * config/m88k/m88k-protos.h: Update.
11803
11804 2002-05-19  Richard Henderson  <rth@redhat.com>
11805
11806         * system.h (STRIP_NAME_ENCODING): Poison it.
11807         * output.h (STRIP_NAME_ENCODING): Remove.
11808         (default_strip_name_encoding): Declare.
11809         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
11810         * target.h (strip_name_encoding): New.
11811         * varasm.c (default_strip_name_encoding): New.
11812
11813         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
11814         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
11815         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
11816         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
11817         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
11818         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
11819         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
11820         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
11821         config/v850/v850.h: Use the hook, not the macro.
11822
11823         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
11824         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
11825         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
11826         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
11827         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
11828         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
11829         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
11830         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
11831         config/v850/v850.c, config/v850/v850.h:
11832         Move STRIP_NAME_ENCODING to out-of-line function and add
11833         TARGET_STRIP_NAME_ENCODING.
11834
11835         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
11836         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
11837         with TARGET_STRIP_NAME_ENCODING referencing existing function;
11838         make function static.
11839
11840         * xcoffout.c: Include target.h
11841         * Makefile.in (xcoffout.o): Update.
11842
11843         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
11844         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
11845         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
11846         reloc argument unused.
11847         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
11848
11849         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
11850         STRIP_NAME_ENCODING docs.
11851
11852 2002-05-19  Andreas Jaeger  <aj@suse.de>
11853
11854         * gengenrtl.c: Add prototype for excluded_rtx.
11855
11856         * real.h: Add prototype for exact_real_truncate.
11857
11858 2002-05-18  Richard Henderson  <rth@redhat.com>
11859
11860         * system.h (ENCODE_SECTION_INFO): Poison it.
11861         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
11862         * target.h (encode_section_info): New.
11863         * varasm.c (make_decl_rtl, output_constant_def): Use it.
11864         * hooks.c (hook_tree_int_void): New.
11865         * hooks.h: Declare it.
11866
11867         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
11868         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
11869         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
11870         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
11871         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
11872         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
11873         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
11874         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
11875         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
11876         config/mcore/mcore-protos.h, config/mcore/mcore.c,
11877         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
11878         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
11879         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
11880         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
11881         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
11882         referencing existing function.  Make function static.
11883
11884         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
11885         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
11886         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
11887         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
11888         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
11889         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
11890         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
11891         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
11892         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
11893         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
11894         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
11895         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
11896         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
11897         Move ENCODE_SECTION_INFO to out-of-line function and add
11898         TARGET_ENCODE_SECTION_INFO.
11899
11900         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
11901         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
11902
11903         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
11904         from SUBTARGET_*
11905         (switch_to_section): Replace in_rdata case with in_readonly_data.
11906
11907         * config/h8300/h8300.c (h8300_encode_label): Make static.
11908         * config/h8300/h8300-protos.h: Update.
11909
11910         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
11911         from rs6000_encode_section_info; make static.
11912         (rs6000_xcoff_encode_section_info): New.
11913
11914         * config/v850/v850.c (v850_encode_data_area): Make static.
11915         * config/v850/v850-protos.h: Update.
11916
11917         * config/vax/vax.c: Include flags.h.
11918         (vms_select_section): Fix typo.
11919
11920         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
11921         ENCODE_SECTION_INFO docs.
11922
11923 2002-05-18  Richard Henderson  <rth@redhat.com>
11924
11925         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
11926         REGISTER_TARGET_PRAGMAS.
11927         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
11928
11929         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
11930
11931 2002-05-18  Richard Henderson  <rth@redhat.com>
11932
11933         * system.h (SELECT_RTX_SECTION): Poison.
11934         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
11935         * target.h (select_rtx_section): New.
11936         * varasm.c (output_constant_pool): Use it.
11937         (default_select_rtx_section, default_elf_select_rtx_section): New.
11938         * output.h: Declare them.
11939
11940         * config/darwin.h (SELECT_RTX_SECTION): Move ...
11941         * config/darwin.c (machopic_select_rtx_section): ... here.
11942         * config/darwin-protos.h: Update.
11943
11944         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
11945         * config/nextstep.c (machopic_select_rtx_section): ... here.
11946         (nextstep_select_section): Rename variable to avoid macro clash.
11947         * config/nextstep-protos.h: Update.
11948
11949         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
11950         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
11951         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
11952         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
11953         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
11954         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
11955         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
11956         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
11957         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
11958         (SELECT_RTX_SECTION): Remove.
11959
11960         * config/darwin.h, config/elfos.h, config/nextstep.h,
11961         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
11962         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
11963         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
11964         config/sparc/lynx.h, config/xtensa/xtensa.c
11965         (TARGET_ASM_SELECT_RTX_SECTION): New.
11966
11967         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
11968         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
11969         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
11970         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
11971         (ia64_aix_select_rtx_section): New.
11972         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
11973         redefining.
11974         * config/mips/mips.c (mips_select_rtx_section): Make static.
11975         Support ELF SHF_MERGE features.
11976         * config/mips/mips-protos.h: Update.
11977         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
11978         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
11979         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
11980         make static, fall back to default_elf_select_rtx_section.
11981         * config/rs6000/rs6000-protos.h: Update.
11982         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
11983         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
11984         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
11985         * config/romp/romp.c (romp_select_rtx_section): New.
11986         * config/s390/s390.c (s390_select_rtx_section): New.
11987         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
11988         declarations before target macro definition.
11989         (xtensa_emit_call): Use static buffer.
11990         (xtensa_select_rtx_section): New.
11991         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
11992         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
11993         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
11994
11995         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
11996         SELECT_RTX_SECTION docs.
11997
11998 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
11999
12000         * i386.md (movsi/movdi): Fix template.
12001         (sse2 patterns): Set attributes consistently.
12002
12003         * i386.md (pushqi2, ashrqi_*): Fix constraint.
12004
12005 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12006
12007         * optabs.c (complex_part_zero_p): New.
12008         * (expand_cmplxdiv_straight): Use it.
12009         * (expand_cmplxdiv_wide): Ditto.
12010         * (expand_binop): Ditto.
12011
12012 2002-05-18  Richard Henderson  <rth@redhat.com>
12013
12014         * final.c (HAVE_READONLY_DATA_SECTION): New.
12015         (shorten_branches): Use it instead of ifdefs.
12016         * varasm.c (enum in_section): Add in_readonly_data.
12017         (text_section, data_section): Tidy.
12018         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
12019
12020         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
12021         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
12022         (READONLY_DATA_SECTION): Don't undef.
12023
12024         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
12025         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
12026         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
12027
12028         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
12029         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
12030         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
12031         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
12032
12033         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
12034         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
12035         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
12036         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
12037         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
12038         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
12039         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
12040         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
12041         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
12042
12043         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
12044         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
12045         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
12046         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
12047         config/pa/pa64-hpux.h, config/sparc/litecoff.h
12048         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
12049
12050         * config/elfos.h, config/netware.h, config/svr3.h,
12051         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
12052         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
12053         config/h8300/h8300.h, config/i386/i386-interix.h,
12054         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
12055         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
12056
12057         * config/elfos.h, config/netware.h, config/svr3.h,
12058         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
12059         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
12060         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
12061         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
12062
12063         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
12064         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
12065         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
12066         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
12067         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
12068         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
12069         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
12070         config/rs6000/sysv4.h, config/v850/v850.h
12071         (EXTRA_SECTIONS): Remove in_const/in_rdata.
12072         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
12073
12074         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
12075         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
12076         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
12077         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
12078         * config/alpha/alpha.c (alpha_start_function): Likewise.
12079         (alpha_write_linkage): Likewise.
12080         * config/m32r/m32r.c (m32r_select_section): Likewise.
12081         * config/m88k/m88k.c (m88k_select_section): Likewise.
12082         * config/mips/mips.c (mips_select_rtx_section): Likewise.
12083         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
12084         (rs6000_elf_select_section): Likewise.
12085         * config/v850/v850.c (v850_select_section): Likewise.
12086
12087         * config/1750a/1750a.h, config/i860/sysv3.h
12088         (READONLY_DATA_SECTION_ASM_OP): New.
12089         READONLY_DATA_SECTION_ASM_OP.
12090         * config/i386/interix.c, config/i386/winnt.c
12091         (i386_pe_unique_section): Always use .rdata prefix.
12092         * config/pa/som.h (readonly_data): Always switch to read-only section.
12093         (READONLY_DATA_SECTION): Predicate on flag_pic.
12094         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
12095         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
12096         (READONLY_DATA_SECTION): Update.
12097
12098 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
12099
12100         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
12101         is used without -Wformat.
12102         * c-common.h (warn_format_zero_length): Declare extern.
12103         * c-decl.c (warn_options): Add "format-zero-length".
12104         * c-format.c (warn_format_zero_length): Declare.
12105         (set_Wformat): Set warn_format_zero_length for -Wformat.
12106         (check_format_info): Only warn about zero-length formats if
12107         warn_format_zero_length is true.  Include the format type
12108         name in the warning message.
12109         * doc/invoke.texi: Document -Wformat-zero-length.
12110         * testsuite/gcc.dg/format/zero-length-1.c: New test.
12111
12112 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
12113
12114         * timevar.c: Fix formatting.
12115         * tlink.c: Likewise.
12116         * toplev.c: Likewise.
12117         * tree-dump.c: Likewise.
12118         * tree-inline.c: Likewise.
12119
12120 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
12121
12122         * cppinit.c (cpp_post_options): If preprocessed, turn off
12123         traditional.  If traditional, turn off column numbers.
12124         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
12125         * cpptrad.c (handle_newline): Update line_base.
12126         (skip_comment): Handle -Wcomment.
12127
12128 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
12129
12130         * cppinit.c (struct builtin): Remove unused fields.
12131         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
12132         (operator_array): New - was second half of builtin_array.
12133         (init_builtins): Simplify loop over builtin_array/operator_array.
12134
12135 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
12136
12137         * defaults.h (UNIQUE_SECTION): Remove.
12138         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
12139
12140 2002-05-17  Richard Henderson  <rth@redhat.com>
12141
12142         * expr.c (init_expr_once): Don't use start/end_sequence.
12143         Use rtx_alloc instead of emit_insn.
12144         * toplev.c (lang_dependent_init): Run init_expr_once here ...
12145         (lang_independent_init): ... not here.
12146
12147 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
12148
12149         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
12150
12151 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12152
12153         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
12154         for fixed registers, possibly used for global register variables.
12155         (initial_elimination_offset, avr_output_function_prologue,
12156         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
12157
12158 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12159
12160         * Makefile.in: Update for cpptrad.c.
12161         * cpphash.h (struct cpp_buffer): New members for buffer
12162         overlays.
12163         (struct cpp_reader): New members for traditional output.
12164         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
12165         * cppinit.c (cpp_create_reader): Set trad_line.
12166         (cpp_destroy): Free trad_out_base if used.
12167         (cpp_read_main_file): Overlay an empty buffer if traditional.
12168         (cpp_finish_options): Don't do builtins.
12169         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
12170         (cpp_handle_option): Handle it.
12171         * cpplex.c (continue_after_nul): New.
12172         (_cpp_lex_direct): Use handle_nul.
12173         * cpplib.h (struct cpp_options): New traditional option.
12174         * cpptrad.c: New file.
12175
12176 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
12177
12178         * c-common.c (c_common_init_options): Use C89 for Objective-C,
12179         and set the options flag.
12180         * cppinit.c (lang_flags): Remove objc.
12181         (lang_defaults): Remove OBJC and OBJCXX.
12182         (set_lang): Update.
12183         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
12184         (cpp_handle_option): Remove -+ and -lang-objc++.
12185         For ObjC, just set a flag.
12186         (print_help): Update.
12187         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
12188
12189 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12190
12191         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
12192         bootstrap with -mips3.
12193
12194 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
12195
12196         * final.c: Fix formatting.
12197         * fix-header.c: Likewise.
12198         * flow.c: Likewise.
12199         * fold-const.c: Likewise.
12200         * function.c: Likewise.
12201
12202 2002-05-17  David S. Miller  <davem@redhat.com>
12203
12204         PR c/6689, PR optimization/6615
12205         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
12206         and make it a pointer to rtx.  Update comments.
12207         (update_equiv_regs): When scanning for equivalences, record
12208         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
12209         it while making the equiv replacements.
12210
12211 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12212
12213         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
12214
12215 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
12216
12217         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
12218         when encoding visibility into SYMBOL_REF_FLAG.
12219
12220 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
12221
12222         * expr.c (force_operand): Fix reversed move.
12223
12224 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
12225
12226         * doc/install.texi (Testing): Mention two common DejaGnu warnings
12227         that can be ignored.
12228
12229 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12230
12231         * doc/install.texi (Final install): Recommend to install into a
12232         "clean" target directory.
12233
12234 2002-05-17  Richard Henderson  <rth@redhat.com>
12235
12236         * config/ia64/ia64.md: Use braced strings instead of quoted strings
12237         for code blocks.  Tidy whitespace.
12238
12239 2002-05-17  Richard Henderson  <rth@redhat.com>
12240
12241         * hooks.c (hook_tree_bool_false): New.
12242         * hooks.h: Declare it.
12243         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
12244         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
12245         * target.h (select_section, unique_section): New.
12246         (in_small_data_p): New.
12247         * varasm.c (resolve_unique_section): Use hooks instead of macros.
12248         (variable_section, output_constant_def_contents): Likewise.
12249         (default_select_section, default_unique_section): New.
12250         (categorize_decl_for_section, default_elf_select_section): New.
12251         * output.h: Declare them.
12252
12253         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
12254         (TARGET_ASM_SELECT_SECTION): New.
12255         (SELECT_SECTION): Move ...
12256         * config/darwin.c (machopic_select_section): ... here.
12257         * config/darwin-protos.h: Update.
12258
12259         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
12260         (SELECT_SECTION): Move ...
12261         * config/nextstep.c (nextstep_select_section): ... here.
12262         * config/nextstep-protos.h: Update.
12263
12264         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
12265         (TARGET_ASM_SELECT_SECTION): New.
12266         * config/svr3.h (SELECT_SECTION): Remove.
12267
12268         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
12269         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
12270         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
12271         (alpha_encode_section_info): Use it.
12272         * config/alpha/alpha-protos.h: Update.
12273         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
12274         (SELECT_SECTION, UNIQUE_SECTION): Remove.
12275         (TARGET_ASM_SELECT_SECTION): New.
12276         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
12277
12278         * config/arm/pe.h (UNIQUE_SECTION): Remove.
12279         (TARGET_ASM_UNIQUE_SECTION): New.
12280
12281         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
12282         (avr_unique_section): Rename from unique_section; make static.
12283         * config/avr/avr-protos.h: Update.
12284         * config/avr/avr.h (UNIQUE_SECTION): Remove.
12285
12286         * config/c4x/c4x.h (SELECT_SECTION): Remove.
12287
12288         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
12289         (TARGET_ASM_UNIQUE_SECTION): New.
12290         * config/i386/i386-interix.h: Likewise.
12291         * config/i386/win32.h: Likewise.
12292         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
12293         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
12294         * config/i386/sco5.h (SELECT_SECTION): Remove.
12295         (TARGET_ASM_SELECT_SECTION): New.
12296         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
12297
12298         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
12299         instead of SELECT_SECTION.
12300         * config/m68k/dpx2.h: Likewise.
12301         * config/rs6000/lynx.h: Likewise.
12302
12303         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
12304         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
12305         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
12306         (ia64_in_small_data_p): New.
12307         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
12308         (ia64_aix_select_section, ia64_aix_unique_section): New.
12309         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
12310         (SELECT_SECTION, UNIQUE_SECTION): Remove.
12311
12312         * config/m32r/m32r.h (SELECT_SECTION): Remove.
12313         (TARGET_ASM_SELECT_SECTION): New.
12314         * config/m32r/m32r.c (m32r_select_section): Take align argument.
12315         * config/m32r/m32r-protos.h: Update.
12316
12317         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
12318         (SELECT_SECTION): Move ...
12319         * config/m88k/m88k.c (m88k_select_section): ... here.
12320
12321         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
12322         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
12323         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
12324         (mcore_unique_section): Make static.
12325         * config/mcore/mcore-protos.h: Update.
12326
12327         * config/mips/elf.h (UNIQUE_SECTION): Remove.
12328         (TARGET_ASM_UNIQUE_SECTION): New.
12329         * config/mips/elf64.h: Likewise.
12330         * config/mips/iris6gld.h: Likewise.
12331         * config/mips/linux.h: Likewise.
12332         * config/mips/mips-protos.h: Update.
12333         * config/mips/mips.c (mips_select_section): Add align argument.
12334         * config/mips/mips.h (SELECT_SECTION): Remove.
12335         (TARGET_ASM_SELECT_SECTION): New.
12336
12337         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
12338         * config/mmix/mmix.c (mmix_select_section): Remove.
12339         (mmix_unique_section): Remove.
12340         * config/mmix/mmix-protos.h: Update.
12341
12342         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
12343         (SELECT_SECTION): Move ...
12344         * config/pa/pa.c (pa_select_section): ... here.
12345         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
12346
12347         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
12348         from rs6000_select_section and make static.
12349         (rs6000_elf_unique_section): Similarly.
12350         (rs6000_xcoff_select_section): From xcoff.h.
12351         (rs6000_xcoff_unique_section): Likewise.
12352         * config/rs6000/rs6000-protos.h: Update.
12353         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
12354         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
12355         * config/rs6000/xcoff.h: Likewise.
12356
12357         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
12358         (SELECT_SECTION): Move ...
12359         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
12360
12361         * config/v850/v850.h (SELECT_SECTION): Move ...
12362         * config/v850/v850.c (v850_select_section): ... here.
12363         (TARGET_ASM_SELECT_SECTION): New.
12364
12365         * config/vax/vms.h (SELECT_SECTION): Move ...
12366         * config/vax/vax.c (vms_select_section): ... here.
12367         (TARGET_ASM_SELECT_SECTION): New.
12368
12369         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
12370         for the target hooks.
12371
12372 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
12373
12374         * config/arm/arm.c (emit_multi_reg_push): Do not set
12375         RTX_FRAME_RELATED_P on the SEQUENCE.
12376
12377 2002-05-16  Richard Henderson  <rth@redhat.com>
12378
12379         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
12380         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
12381
12382 2002-05-16  Richard Henderson  <rth@redhat.com>
12383
12384         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
12385
12386         * config/ia64/ia64.c (saveable_obstack): Do not declare.
12387
12388 2002-05-16  Richard Henderson  <rth@redhat.com>
12389
12390         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
12391         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
12392         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
12393         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
12394         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
12395         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
12396         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
12397         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
12398         Revert "Basic block renumbering removal", and two followup patches.
12399
12400 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
12401
12402         * lcm.c (optimize_mode_switching): Revert previous change.
12403
12404 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12405
12406         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
12407         with only extant block numbers.
12408
12409 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
12410
12411         * lcm.c (optimize_mode_switching): Fix typo.
12412
12413 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12414
12415         * flow.c (calculate_global_regs_live): Queue blocks in program order.
12416
12417 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12418
12419         * doc/install.texi (Configuration): Document PWDCMD.
12420
12421 2002-05-16  Dale Johannesen  <dalej@apple.com>
12422
12423         * combine.c (cant_combine_insn_p):  Reenable combinations
12424         involving hard regs unless CLASS_LIKELY_SPILLED_P.
12425
12426 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12427
12428         * c-common.c (cb_register_builtins): Handle more built-ins
12429         here rather than in gcc.c specs.
12430         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
12431         (cpp_options): Pass -O flags even when only preprocessing.
12432         * toplev.c (set_fast_math_flags): New prototype.
12433         (fast_math_flags_set_p): New.
12434         (set_no_fast_math_flags): Remove.
12435         (decode_f_option): Update.
12436         * toplev.h (set_fast_math_flags): Update.
12437         (fast_math_flags_set_p): New.
12438         (set_no_fast_math_flags): Remove.
12439 config:
12440         * c4x/c4x.c (c4x_override_options): Update.
12441
12442 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
12443
12444         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
12445         Default-define here.
12446         (builtin_define_with_value): Can now wrap the expansion in
12447         quotation marks if such is wanted.
12448         (cb_register_builtins): Update calls to builtin_define_with_value.
12449         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
12450         here.
12451         (c_common_init): Set options->stdc_0_in_system_headers.
12452         * c-lex.h: Update prototype of builtin_define_with_value.
12453         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
12454         and REGISTER_PREFIX.
12455
12456         * cppinit.c (VERS, ULP, C, X): Kill.
12457         (builtin_array): Remove entries for __VERSION__,
12458         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
12459         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
12460         a constant.
12461         (init_builtins): Kill off a bunch of now-dead code.
12462         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
12463         -fno-leading-underscore.
12464         (cpp_handle_option): Remove code to set user_label_prefix.
12465         (cpp_post_options): Likewise.
12466
12467         * cpplib.h (struct cpp_options): Remove user_label_prefix.
12468         (stdc_0_in_system_headers): New.
12469         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
12470         stdc_0_in_system_headers) too to decide the value of __STDC__.
12471
12472         * tradcpp.c (user_label_prefix): Kill.
12473         (main): Remove code handling -f(no-)leading-underscore.
12474         (initialize_builtins): Don't define __REGISTER_PREFIX__
12475         or __USER_LABEL_PREFIX__.
12476         (install_value): Wrap compound statement in dummy loop so the
12477         macro works properly in an if statement.
12478
12479
12480 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
12481
12482         * loop.h (struct loop_info): Add member has_prefetch.
12483         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
12484         (prescan_loop): Initialize has_prefetch.
12485         (struct prefetch_info): Change prefetch_in_loop and
12486         prefetch_before_loop from bit fields to ints.
12487         (emit_prefetch_instructions): Several small fixes.
12488         (check_dbra_loop): Don't reverse loop that uses prefetch.
12489
12490 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12491
12492         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
12493         * configure.in: Likewise.
12494         * fixinc/check.tpl: Likewise.
12495         * fixinc/fixinc.dgux: Likewise.
12496         * fixinc/fixinc.svr4: Likewise.
12497         * fixinc/fixinc.winnt: Likewise.
12498         * fixinc/fixincl.sh: Likewise.
12499         * fixproto: Likewise.
12500         * configure: Regenerate.
12501
12502 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12503
12504         Basic block renumbering removal:
12505         * basic_block.h (struct basic_block_def): Renamed index to sindex,
12506         added prev_bb and next_bb fields.
12507         (n_basic_blocks): Renamed to num_basic_blocks.
12508         (last_basic_block): New, index of last basic block.
12509         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
12510         traversing basic block chain.
12511         (BLOCK_NUM): index -> sindex.
12512         (create_basic_block_structure, create_basic_block): Declaration changed.
12513         (debug_num2bb): Declare.
12514         (expunge_block_nocompact): Declaration removed.
12515         (link_block, unlink_block, compact_blocks): Declare.
12516         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
12517         * cfg.c (entry_exit_blocks): Initialize new fields.
12518         (clear_edges, alloc_block, expunge_block, cached_make_edge,
12519         redirect_edge_pred, dump_flow_info, dump_edge_info,
12520         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
12521         free_aux_for_edges): Modified.
12522         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
12523         (expunge_block_nocompact): Removed.
12524         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
12525         find_unreachable_blocks, create_edge_list, print_edge_list,
12526         verify_edge_list, flow_edge_list_print, remove_fake_successors,
12527         remove_fake_edges, flow_reverse_top_sort_order_compute,
12528         flow_depth_first_order_compute, flow_preorder_transversal_compute,
12529         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
12530         flow_dfs_compute_reverse_execute): Modified.
12531         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
12532         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
12533         Modified.
12534         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
12535         merge_blocks_move_predecessor_nojumps,
12536         merge_blocks_move_successor_nojumps, merge_blocks,
12537         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
12538         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
12539         * cfglayout.c (skip_insns_after_block, label_for_bb,
12540         record_effective_endpoints, scope_to_insns_finalize,
12541         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
12542         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
12543         cfg_layout_duplicate_bb): Modified.
12544         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
12545         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
12546         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
12547         flow_loops_find, flow_loop_outside_edge_p): Modified.
12548         * cfgrtl.c (create_basic_block_structure, create_basic_block,
12549         flow_delete_block, compute_bb_for_insn, split_block,
12550         try_redirect_by_replacing_jump, redirect_edge_and_branch,
12551         force_nonfallthru_and_redirect, tidy_fallthru_edge,
12552         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
12553         commit_edge_insertions, commit_edge_insertions_watch_calls,
12554         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
12555         purge_all_dead_edges): Modified.
12556         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
12557         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
12558         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
12559         Modified.
12560         * conflict.c (conflict_graph_compute): Modified.
12561         * df.c (FOR_ALL_BBS): Removed.
12562         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
12563         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
12564         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
12565         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
12566         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
12567         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
12568         * final.c (compute_alignments, final_scan_insn): Modified.
12569         * flow.c (verify_local_live_at_start, update_life_info,
12570         update_life_info_in_dirty_blocks, free_basic_block_vars,
12571         delete_noop_moves, calculate_global_regs_live,
12572         initialize_uninitialized_subregs, allocate_bb_life_data,
12573         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
12574         mark_used_reg, count_or_remove_death_notes): Modified.
12575         * function.c (thread_prologue_and_epilogue_insns): Modified.
12576         * gcse.c (struct null_pointer_info): Change typo of current_block
12577         to basic_block.
12578         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
12579         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
12580         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
12581         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
12582         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
12583         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
12584         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
12585         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
12586         pre_delete, one_pre_gcse_pass, compute_transpout,
12587         invalidate_nonnull_info, delete_null_pointer_checks_1,
12588         free_code_hoist_mem, compute_code_hoist_vbeinout,
12589         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
12590         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
12591         compute_store_table, build_store_vectors, insert_insn_start_bb,
12592         insert_store, replace_store_insn, free_store_memory, store_motion):
12593         Modified.
12594         * global.c (global_alloc, global_conflicts, mark_elimination,
12595         build_insn_chain): Modified.
12596         * graph.c (print_rtl_graph_with_bb): Modified.
12597         * haifa-sched.c (sched_init): Modified.
12598         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
12599         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
12600         if_convert): Modified.
12601         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
12602         compute_insert_delete, pre_edge_lcm, compute_available,
12603         compute_farthest, compute_nearerout, compute_rev_insert_delete,
12604         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
12605         Modified.
12606         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
12607         * loop.c (loop_dump_aux): Modified.
12608         * predict.c (combine_predictions_for_insn, estimate_probability,
12609         last_basic_block_p, process_note_prediction, process_note_predictions,
12610         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
12611         expensive_function_p, estimate_bb_frequencies,
12612         compute_function_frequency): Modified.
12613         * print-rtl.c (print_rtx): Modified.
12614         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
12615         get_exec_counts, compute_branch_probabilities, compute_checksum,
12616         branch_prob, find_spanning_tree): Modified.
12617         * recog.c (split_all_insns, peephole2_optimize): Modified.
12618         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
12619         convert_regs_1, convert_regs_2, convert_regs): Modified.
12620         * regclass.c (scan_one_insn, regclass): Modified.
12621         * regmove.c (mark_flags_life_zones, regmove_optimize,
12622         combine_stack_adjustments): Modified.
12623         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
12624         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
12625         * reorg.c (dbr_schedule): Modified.
12626         * resource.c (find_basic_block, init_resource_info): Modified.
12627         * sbitmap.c (sbitmap_intersection_of_succs,
12628         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
12629         sbitmap_union_of_preds): Modified.
12630         * sched-deps.c (init_dependency_caches): Modified.
12631         * sched-ebb.c (schedule_ebbs): Modified.
12632         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
12633         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
12634         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
12635         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
12636         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
12637         ssa_const_prop): Modified.
12638         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
12639         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
12640         * ssa.c (remove_phi_alternative, find_evaluations,
12641         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
12642         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
12643         make_regs_equivalent_over_bad_edges,
12644         make_equivalent_phi_alternatives_equival,
12645         compute_conservative_reg_partition,
12646         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
12647         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
12648         Modified.
12649
12650 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
12651
12652         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
12653
12654 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
12655
12656         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
12657         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
12658         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
12659         calling CONSTANT_POOL_ADDRESS_P.
12660         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
12661         to decide whether to define __arm__ or __thumb.
12662         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
12663         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
12664
12665 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12666
12667         * config/arc/arc.h (CPP_PREDEFINES): Remove.
12668         (CPP_SPEC): Update.
12669         (TARGET_CPU_CPP_BUILTINS): New.
12670
12671 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
12672
12673         * cpphash.h (cpp_macro): Move here, and make expansion a union.
12674         * cppmacro.c (cpp_macro): Remove.
12675         (enter_macro_context, replace_args, warn_of_redefinition,
12676         _cpp_create_definition, cpp_macro_definition): Update.
12677
12678 2002-05-16  Jason Merrill  <jason@redhat.com>
12679
12680         * config/mips/mips.c (mips_output_external): Don't do sdata
12681         optimization for a variable with DECL_COMDAT set.
12682
12683 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
12684
12685         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
12686         Cleanups for accepting modifiers on pointers.
12687         Fix predicate typos.
12688         Allow long pointers as well as int pointers.
12689
12690 2002-05-15  Richard Henderson  <rth@redhat.com>
12691
12692         * varasm.c (merge_weak): Remove special case for extern and common.
12693
12694 2002-05-15  Matt Hiller  <hiller@redhat.com>
12695
12696         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
12697         XFAILing.
12698         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
12699         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
12700         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
12701         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
12702         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
12703         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
12704
12705 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
12706
12707         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
12708
12709 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
12710
12711         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
12712         ("altivec_mfvscr"): Read from VSCR.
12713
12714         Add vscr sets for the following insns: altivec_vctuxs,
12715         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
12716         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
12717         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
12718         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
12719         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
12720         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
12721         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
12722         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
12723         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
12724         altivec_vsum2sws, altivec_vsumsws.
12725
12726         * config/rs6000/rs6000.h: Add VSCR fixed register.
12727         (CALL_REALLY_USED_REGISTERS): Add vscr.
12728         (CALL_USED_REGISTERS): Same.
12729         (FIXED_REGISTERS): Same.
12730         (REG_ALLOC_ORDER): Same.
12731         (reg_class): Add VSCR_REGS.
12732         (REG_CLASS_NAMES): Same.
12733         (REG_CLASS_CONTENTS): Same.
12734         (VSCR_REGNO): New.
12735         (REGISTER_NAMES): Add vscr.
12736         (DEBUG_REGISTER_NAMES): Same.
12737         (ADDITIONAL_REGISTER_NAMES): Same.
12738         (FIRST_PSEUDO_REGISTER): Increment.
12739         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
12740
12741 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
12742
12743         * fold-const.c (fold): Fix a typo.
12744
12745 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
12746
12747         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
12748         comparison against the highest or lowest integer value before
12749         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
12750         transformation and that of an unsigned comparison against 0
12751         right after.
12752
12753 2002-05-15  Richard Henderson  <rth@redhat.com>
12754
12755         * varasm.c (merge_weak): Error for any weakening after definition.
12756         Adjust weakening after use warning to catch more cases.
12757         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
12758         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
12759
12760 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
12761
12762         * invoke.texi (-malign-double): Re-add lost warning.
12763
12764         * i386-protos.h (x86_output_mi_thunk): Declare.
12765         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
12766         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
12767
12768         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
12769         when flag_asynchronous_unwind_tables is set.
12770
12771         * flags.h (flag_reorder_functions): Declare.
12772         * function.c (prepare_function_start): Initialize frequnecy.
12773         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
12774         * Makefile.in (predict.o): Add dependency on target.h and params.h
12775         * defaults.h (HOT_TEXT_SECTION_NAME,
12776         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
12777         * predict.c (choose_function_section): New function.
12778         (estimate_bb_frequencies): Use it.
12779         * toplev.c (flag_reorder_functions): New global variable.
12780         (lang_independent_options): New.
12781         (parse_options_and_default_flags): Set.
12782         * varasm.c (assemble_start_function): Bypass functdion alignment
12783         for never executed functions.
12784         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
12785         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
12786         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
12787         Document.
12788
12789         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
12790
12791         * predict.c: Inlude profile.h
12792         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
12793         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
12794         Use the information about maximal counter in the program.
12795
12796         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
12797
12798         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
12799         probably_never_executed_bb_p): New functions.
12800         * cfgcleanup.c (outgoing_edges_match): Use them.
12801         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
12802         (maybe_hot_bb_p, probably_cold_bb_p,
12803         probably_never_executed_bb_p): New functions.
12804
12805         * function.h (function): Add new field function_frequency.
12806         * predict.c (compute_function_frequency): New function.
12807         (estimate_probability): Call it.
12808
12809 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
12810
12811         PR optimization/5172, optimization/5200
12812         * gcse.c (gcse_main): Disable store_motion.
12813
12814 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
12815
12816         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
12817         (c_common_nodes_and_builtins): Use it.
12818         (builtin_define_with_value): New function.
12819         (cb_register_builtins): Define __SIZE_TYPE__,
12820         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
12821         using builtin_define_with_value.  Use consistent notation when
12822         defining __GXX_WEAK__.
12823         (WCHAR_TYPE_SIZE): Don't redefine.
12824         (combine_strings): Don't use WCHAR_TYPE_SIZE.
12825
12826         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
12827         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
12828         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
12829         * tradcpp.c (initialize_builtins): Likewise.
12830         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
12831
12832         * c-lex.h (builtin_define_with_value): Prototype.
12833         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
12834         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
12835         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
12836
12837         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12838         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
12839         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
12840         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
12841         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
12842         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
12843         config/sparc/sol2-bi.h, config/sparc/sparc.h:
12844         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
12845         to __SIZE_TYPE__ etc from all spec strings. When this makes
12846         extra specs empty, delete them.
12847
12848 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12849
12850         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
12851         for PA8000 or generating dwarf2 call frame information.
12852         (output_call): Remove DO_FRAME_NOTES check from return pointer
12853         optimization.
12854         (following_call): Return 0 when scheduling for PA8000 or generating
12855         dwarf2 call frame information.  Revise comment.
12856
12857 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
12858
12859 config/alpha:
12860         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
12861         and __IEEE_FP_INEXACT as appropriate.
12862         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
12863         (CPP_SPEC): Remove ieee defines.
12864         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
12865
12866 2002-05-14  Richard Henderson  <rth@redhat.com>
12867
12868         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
12869         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
12870
12871 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
12872
12873         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
12874         (CPP_SPEC): Update.
12875         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
12876         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
12877         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
12878         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
12879         (EXTRA_SPECS): Update.
12880         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
12881         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
12882         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
12883         define TARGET_OS_CPP_BUILTINS if necessary.
12884
12885 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
12886
12887         * gcc.c (cpp_options): Must pass -m* and -f* options
12888         to the front end even when only preprocessing.
12889         (cc1_options): Remove redundant -lang-c.
12890         * tradcpp.c (main): Ignore -m options.
12891 objc:
12892         * lang-specs.h: Similarly.
12893
12894 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
12895
12896         * genautomata.c (transform_3): Add code for transformation
12897         `(A,B,...)+C -> A+C,B,...'.
12898
12899 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
12900
12901         * final.c (end_final): Do not output profile_arcs constructor, when
12902         no functions are instrumented.
12903
12904 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
12905
12906         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
12907
12908 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12909
12910         * doc/install.texi: Remove special markup originally required for
12911         HTML generation with texi2html.
12912
12913 2002-05-14  Andreas Schwab  <schwab@suse.de>
12914
12915         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
12916         SELECT_SECTION.
12917         (UNIQUE_SECTION): Define to get small data correctly.
12918
12919         * varasm.c (resolve_unique_section): Add third parameter
12920         flag_function_or_data_sections and use it instead of
12921         flag_function_sections.
12922         (assemble_start_function): Pass flag_function_sections.
12923         (asm_emit_uninitialised): Pass flag_data_sections.
12924         (assemble_variable): Likewise.
12925
12926 2002-05-14  Richard Henderson  <rth@redhat.com>
12927
12928         * config/i386/i386.md: Use define_constants for unspec numbers.
12929         * config/i386/i386.c: Likewise.
12930
12931 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
12932
12933         * doc/contrib.texi: Update my entry.
12934
12935 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
12936
12937         * fixinc/inclhack.def (winidss_valist): Limit applicability.
12938         * fixinc/fixincl.x: Regenerated.
12939         * fixinc/tests/base/math.h: Update.
12940         * fixinc/tests/base/testing.h: Likewise.
12941
12942 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
12943
12944         * genattr.c (gen_attr): Don't emit a comma after the last
12945         enumerator.
12946
12947 2002-05-13  Richard Henderson  <rth@redhat.com>
12948
12949         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
12950         by non-local gotos.
12951         * recog.c (peephole2_optimize): Likewise.
12952
12953 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
12954
12955         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
12956         input to O_BINARY.
12957
12958 2002-05-13  Jeffrey A Law  (law@redhat.com)
12959
12960         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
12961         Update prototype and callers.
12962         (propagate_one_insn): Stack pointer adjustments kill MEMs on
12963         the mem_set_list which reference the stack pointer, as do
12964         calls to constant functions as they may clobber outgoing
12965         argument space.
12966
12967         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
12968
12969         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
12970         (ia32_multipass_dfa_lookahead): New function.
12971
12972 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
12973
12974         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
12975         (translate_options): Remove 'V'.
12976         (process_command): Similarly.
12977 doc:
12978         * invoke.texi: Remove documentation of 'V'.
12979
12980 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
12981
12982         * config/s390/linux.h: Revert 2002-04-22 changes.
12983
12984 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
12985
12986         * config/fr30/fr30.md: Only allow splits of immediate loads
12987         if the destination is a register.
12988
12989 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
12990
12991         * Makefile.in (c-common.o, cppinit.o): Update.
12992         * c-common.c: Include except.h.
12993         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
12994         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
12995         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
12996         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
12997         CPP_PREDEFINES): Handle here.
12998 config:
12999         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
13000         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
13001         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
13002         TARGET_OS_CPP_BUILTINS.
13003         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
13004         (CPP_SPEC, EXTRA_SPECS): Update.
13005         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
13006         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
13007         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
13008         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
13009         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
13010 doc:
13011         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
13012         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
13013
13014 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
13015
13016         * emit-rtl.c (global_rtl): Update comment.
13017         (const_double_htab, const_double_htab_hash,
13018         const_double_htab_hash, lookup_const_double): New.
13019         (const_int_htab_hash, const_int_htab_eq): Remove const
13020         qualifiers, which cause tons of warnings with RTL checking on.
13021         (gen_rtx_CONST_DOUBLE): Deleted.
13022         (const_double_from_real_value): New function - bears some
13023         resemblance to the former immed_real_const_1.
13024         (immed_double_const): Moved here from varasm.c and
13025         simplified.
13026         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
13027         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
13028         (gen_rtx): Use immed_double_const.
13029         (init_emit_once): Initialize the const_double_htab.  Use
13030         REAL_VALUE_FROM_INT where possible.  Can now use
13031         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
13032         * varasm.c (struct varasm_status): Remove x_const_double_chain.
13033         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
13034         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
13035         (init_varasm_status, mark_varasm_status): Don't touch
13036         x_const_double_chain.
13037
13038         * output.h: Delete prototype for clear_const_double_mem.
13039         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
13040         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
13041         const_double_from_real_value, not immed_real_const_1, and use
13042         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
13043         CONST_DOUBLE_ATOF.
13044         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
13045         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
13046         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
13047         (gen_rtx_REG): Second arg is unsigned.
13048
13049         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
13050         (excluded_rtx): New, return true for CONST_DOUBLE.
13051         (genmacro): Write nothing for excluded codes.
13052         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
13053         * expr.c (expand_expr): Likewise.
13054         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
13055         CONST_DOUBLE_CHAIN.
13056         * toplev.c (rest_of_compilation): Don't call
13057         clear_const_double_mem.
13058
13059         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
13060         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
13061         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
13062         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
13063         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
13064         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
13065         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
13066         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
13067
13068 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13069
13070         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
13071
13072 2002-05-12  Tom Tromey  <tromey@redhat.com>
13073
13074         * tree.h (copy_node): Don't mention TREE_PERMANENT.
13075
13076 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
13077
13078         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
13079         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
13080         * gensupport.h: Prototype new routines.
13081         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
13082         use of printf.
13083         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
13084         (next_comma_elt): Use scan_comma_elt.
13085
13086         * config/i386/i386.md: Use new attribute notation to break up
13087         long lines in define_attr forms.
13088
13089 2002-05-12  Richard Henderson  <rth@redhat.com>
13090
13091         * expr.c (compress_float_constant): New.
13092         (emit_move_insn): Use it.
13093         (float_extend_from_mem): New.
13094         (init_expr_once): Initialize it.
13095         * real.c (exact_real_truncate): New.
13096
13097         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
13098         dropped into memory; penalize for size.
13099         (RTX_COSTS): FLOAT_EXTEND is free.
13100         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
13101         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
13102
13103 2002-05-12  Richard Henderson  <rth@redhat.com>
13104
13105         * profile.h (profile_info): Add missing extern to declaration.
13106         * profile.c (profile_info): Define it.
13107
13108 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13109
13110         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
13111         used for DImode and TImode.
13112
13113 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
13114
13115         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
13116         fake a newline.
13117
13118 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
13119
13120         * config/rs6000/rs6000.c (rs6000_default_long_calls,
13121         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
13122         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
13123         (rs6000_override_options): Handle -m(no-)longcall.
13124         (init_cumulative_args, output_mi_thunk): Check for both
13125         longcall and shortcall attributes on the function.
13126         (rs6000_attribute_table): Add "shortcall".
13127         (rs6000_handle_longcall_attribute): Update comment.
13128         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
13129         altivec_expand_ternop_builtin): Add default clauses to switches
13130         to silence warnings.
13131
13132         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
13133         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
13134         (TARGET_OPTIONS): Add longcall and no-longcall.
13135
13136         * config/rs6000/rs6000.md (call_nonlocal_sysv,
13137         call_value_nonlocal_sysv): Split by alternatives.  One pair
13138         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
13139         the call cookie.  The other pair accepts only LR/CTR and has
13140         no restriction.
13141
13142         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
13143         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
13144         tmake_file.
13145         * config/rs6000/rs6000-c.c: New file.
13146         * config/rs6000/t-rs6000-c-rule: New file.
13147         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
13148         Prototype rs6000_pragma_longcall.
13149
13150         * doc/extend.texi: Document shortcall attribute.
13151         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
13152
13153 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13154
13155         * reorg.c (dbr_schedule): Remove unnecessary test.
13156
13157 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
13158
13159         * i386.md (testsi to testqi spliters): New.
13160
13161         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
13162
13163         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
13164
13165         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
13166
13167         * basic-block.h: New flag EDGE_CAN_FALLTHRU
13168         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
13169         that can be made fallthru.
13170
13171         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
13172
13173         * cfglayout.c (cleanup_unconditional_jumps): New static function.
13174         (cfg_layout_initialize): Use it.
13175
13176 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13177
13178         * config/avr/avr.c (avr_mcu_types): Update supported devices.
13179         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13180         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13181
13182 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
13183
13184         * dbxout.c: Fix formatting.
13185         * dependence.c: Likewise.
13186         * df.c: Likewise.
13187         * diagnostic.c: Likewise.
13188         * doloop.c: Likewise.
13189         * dominance.c: Likewise.
13190         * doschk.c: Likewise.
13191         * dwarf2asm.c: Likewise.
13192         * dwarf2out.c: Likewise.
13193         * dwarfout.c: Likewise.
13194
13195 2002-05-10  Richard Henderson  <rth@redhat.com>
13196
13197         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
13198         Convert integers constants as needed.  Replace "nwords" field with
13199         "sizeof_bb".
13200         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
13201         * function.h: Fix typo in comment.
13202         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
13203
13204 2002-05-10  Roger Sayle  <roger@eyesopen.com>
13205
13206         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
13207         into the equivalent (signed char)c > 0.
13208
13209 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
13210
13211         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
13212         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
13213         (struct prefetch_info): Fix spelling of member bytes_accessed.
13214         (emit_prefetch_instructions): Make dump messages more regular;
13215         restructure code to add more dump messages; use new macros for
13216         heuristics. (There are no code generation changes in any of this).
13217
13218 2002-05-10  David S. Miller  <davem@redhat.com>
13219
13220         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
13221         (struct rtx_def): Update unchanging flag comment.
13222         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
13223         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
13224         to be handled to INSN too.
13225         (dbr_schedule): Likewise.
13226         * resource.c (next_insn_no_annul): Likewise.
13227
13228         * cse.c (rtx_cost): Remove multiplication by power of 2 special
13229         casing.
13230
13231 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13232
13233         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
13234         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
13235         (possibly) work around broken /bin/sh.
13236
13237 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13238
13239         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
13240         . as N64/N32 libgcc_s.so subdirs.
13241
13242 2002-05-10  David S. Miller  <davem@redhat.com>
13243
13244         * config/sparc/sparc.md: Use define_constants for unspec numbers.
13245
13246         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
13247         more accurately.
13248         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
13249         comment.
13250         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
13251         * doc/rtl.texi: Document these macros more accurately.
13252         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
13253         JUMP_INSNs and CALL_INSNs.
13254         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
13255         or INSN_FROM_TARGET_P if the code is appropriate.
13256
13257 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13258
13259         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
13260         before using SYMBOL_REF_FLAG (addr).
13261
13262         * config/avr/avr-protos.h (avr_io_address_p): Declare.
13263         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
13264         Make non-static.  Update all callers.
13265         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
13266         New insns to clear/set/test a single bit in I/O address space.
13267
13268 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13269
13270         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
13271
13272 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
13273
13274         * Makefile.in: Update.
13275         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
13276         builtin_define_std): New.
13277         (c_common_init): Register CPP builtins callback.
13278         * c-common.h (flag_iso, flag_undef): New.
13279         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
13280         * c-lex.c: Don't include target.h.
13281         (cb_register_builtins): Move to c-common.c.
13282         (init_c_lex): Don't register hook here.
13283         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
13284         (cpp_define, cpp_assert): Remove.
13285         * gcc.c (cc1_options): Pass -undef to front end.
13286         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
13287         (TARGET_INITIALIZER): Update.
13288         * target.h (struct cpp_reader): Don't predeclare.
13289         (struct gcc_target): Remove cpp builtin hook.
13290         * tree.c (default_register_cpp_builtins): Remove.
13291 doc:
13292         * tm.texi: Update.
13293
13294 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
13295
13296         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
13297
13298 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13299
13300         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
13301         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
13302
13303 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
13304
13305         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
13306         * config/sparc/libgcc-sparc-glibc.ver: New file.
13307         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
13308         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
13309
13310 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
13311
13312         PR target/6429
13313         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
13314         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
13315         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
13316         base multilibs.
13317         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
13318         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
13319         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
13320         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
13321
13322 2002-05-09  Richard Henderson  <rth@redhat.com>
13323
13324         * config/ia64/ia64.md: Use define_constants for unspec numbers.
13325         * config/ia64/ia64.c: Likewise.
13326
13327 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
13328
13329         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
13330         (save_restore_insns): Likewise.
13331         (mips_expand_prologue, mips_expand_epilogue): Update callers.
13332         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
13333
13334 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
13335
13336         * athlon.md, k6.md, pentium.md, ppro.md): New files.
13337         * i386.md: Move scheduling information into new files.
13338
13339         * i386.md (type attribute): Add "rotate" for rotate insns.
13340         (rotate insns): Set type to "rotate".
13341         (various attributes and function units): Treat rotate like shift.
13342         (pent_pair attribute): Only rotates by one bit position are
13343         pairable.
13344         (sbb insns): Explicitly set pent_pair attribute on a couple
13345         that were missing it.
13346
13347 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
13348
13349         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
13350         make sure that buffer starts on odd word address.
13351         (sh_va_arg): Skip odd fp registers when reading a double precision
13352         value.
13353
13354 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
13355
13356         * tree.h (preserve_data, object_permanent_p, type_precision):
13357         Remove.
13358
13359 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
13360
13361         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
13362         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
13363 doc:
13364         * cpp.texi: Update for removal of obsolete features.
13365
13366 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
13367                           Jeffrey A Law  (law@redhat.com)
13368
13369         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
13370         the DFA interface for Pentium processors.
13371         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
13372         (attr_pent_pair, ix86_pent_find_pair): Remove.
13373         (ix86_sched_reorder_pentium): Remove.
13374         (ix86_sched_reorder): Remove reordering for Pentium.
13375         * i386.md (Pentium scheduling): Rewrite using DFA description.
13376
13377 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
13378
13379         * cfganal.c (can_fallthru): Fix fast path.
13380         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
13381         with edges to the next block.
13382
13383 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
13384                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
13385
13386         * final.c (end_final): Use C trees to output data structures for profiling.
13387
13388         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
13389         (profile.o): New dependency profile.h
13390         (final.o): New dependency profile.h
13391         * profile.h: New file. New global structure profile_info.
13392         * final.h (count_edges_instrumented_now): Declare.
13393         (current_function_cfg_checksum): Declare.
13394         (function_list): New structure.
13395         (functions_head, functions_tail): New static variables.
13396         (end_final): Emits more data, removed some -ax stuff.
13397         (final): Stores function names and chcksums.
13398         * gcov-io.h (__write_gcov_string): New function.
13399         (__read_gcov_string): New function.
13400         * gcov.c (read_profile): New function.
13401         (create_program_flow_graph): Uses read_profile instead of reading
13402         da_file.
13403         (read_files): Removed da_file checking, it's done by read_profile now.
13404         * libgcc2.c (bb_function_info): New structure.
13405         (bb): New field in structure, removed some -ax stuff.
13406         (__bb_exit_func): Changed structure of da_file.
13407         * profile.c (count_edges_instrumented_now): New global variable.
13408         (current_function_cfg_checksum): New global variable.
13409         (max_counter_in_program): New global variable.
13410         (get_exec_counts): New function.
13411         (compute_checksum): New function.
13412         (instrument_edges): Sets count_edges_instrumented_now.
13413         (compute_branch_probabilities): Uses get_exec_counts instead of
13414         reading da_file.
13415         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
13416         (init_branch_prob): Removed da_file checking, done in get_exec_counts
13417         now.
13418         (end_branch_prob): Removed da_file checking, done in get_exec_counts
13419         now.
13420         * gcov.texi: Updated information about gcov file format.
13421
13422 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
13423
13424         * sbitmap.c: Fix formatting.
13425         * scan.c: Likewise.
13426         * scan-decls.c: Likewise.
13427         * sched-deps.c: Likewise.
13428         * sched-ebb.c: Likewise.
13429         * sched-rgn.c: Likewise.
13430         * sched-vis.c: Likewise.
13431         * sdbout.c: Likewise.
13432         * sibcall.c: Likewise.
13433         * simplify-rtx.c: Likewise.
13434         * ssa.c: Likewise.
13435         * ssa-ccp.c: Likewise.
13436         * ssa-dce.c: Likewise.
13437         * stmt.c: Likewise.
13438         * stor-layout.c: Likewise.
13439         * stringpool.c: Likewise.
13440
13441 2002-05-09  David S. Miller  <davem@redhat.com>
13442
13443         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
13444
13445 2002-05-07  David S. Miller  <davem@redhat.com>
13446
13447         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
13448         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
13449         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
13450         library implementation clobbers the output before the inputs
13451         are fully consumed, use stack temporary for the output.
13452
13453 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
13454
13455         * config/netbsd.h (CPP_SPEC): Remove.
13456         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
13457         * config/i386/netbsd.h (CPP_SPEC): Define.
13458         * config/ns32k/netbsd.h (CPP_SPEC): Define.
13459         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
13460         * config/sparc/netbsd.h (CPP_SPEC): Define.
13461         * config/vax/netbsd.h (CPP_SPEC): Define.
13462
13463 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
13464
13465         * read-rtl.c: Fix formatting.
13466         * real.c: Likewise.
13467         * recog.c: Likewise.
13468         * regclass.c: Likewise.
13469         * regmove.c: Likewise.
13470         * reg-stack.c: Likewise.
13471         * reload1.c: Likewise.
13472         * reload.c: Likewise.
13473         * resource.c: Likewise.
13474         * rtlanal.c: Likewise.
13475         * rtl.c: Likewise.
13476         * rtl-error.c: Likewise.
13477
13478 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13479
13480         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
13481         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
13482
13483 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
13484
13485         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
13486         use __SSE2__ macro instead.
13487         * config/i386/xmmintrin.h: Likewise.
13488
13489 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
13490
13491         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
13492         and use it in all invocations of these macros.  Clean up comments.
13493         * rtl.c (rtl_check_failed_flag): Add an argument for the name
13494         of the flag access macro whose check failed.
13495         * doc/rtl.texi (Flags): Document additional flag uses.
13496
13497 2002-05-08  Robert Spier <rspier@pobox.com>
13498             Neil Booth  <neil@daikokuya.demon.co.uk>
13499
13500         PR preprocessor/6521
13501         * cppfiles.c (handle_missing_header): Don't do anything
13502         different for <> includes.
13503 doc:
13504         * cppopts.texi: Update documentation for -MG.
13505
13506 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
13507
13508         * cpplex.c (cpp_interpret_charconst): Truncate as well as
13509         sign-extend.
13510 doc:
13511         * cpp.texi: Clarify multichar charconst valuation.
13512
13513 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
13514
13515         * doc/invoke.texi: Document -mwindiss option.
13516
13517 2002-05-08  Jason Merrill  <jason@redhat.com>
13518
13519         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
13520
13521         * dwarf2out.c (gen_type_die): Abort on broken recursion.
13522
13523         PR c++/6381
13524         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
13525         REAL_CST.
13526
13527 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
13528
13529         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
13530         little-endian multilibs to override arm/thumb multilibs.
13531         Do not build hardware floating point multilibs, nor apcs-26
13532         multilibs for the Thumb.
13533
13534 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
13535
13536         PR c/6569.
13537         * varasm.c (mark_weak): New function.
13538         (merge_weak): Use it.  Do not call declare_weak.
13539         (declare_weak): Use merge_weak.
13540
13541 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
13542
13543         * cse.c (dead_libcall_p): Update counts.
13544         (delete_trivially_dead_insns): Update call of dead_libcall_p.
13545
13546 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
13547
13548         * cfglayout.c (function_tail_eff_head): Rename to ...
13549         (function_footer): ... this one.
13550         (unlink_insn_chain): New functions.
13551         (label_for_bb): Only call block_label and emit debug message.
13552         (record_effective_endpoints): Actually unlink the headers and footers.
13553         (fixup_reorder_cahin): Re-insert the unlinked sequences.
13554         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
13555         * cfglayout.h (struct reorder_block_def): New fields footer/header;
13556         remove eff_head/eff_end.
13557         * rtl.h (set_first_insn): Declare.
13558         * emit-rtl.c (set_first_insn): New function.
13559
13560         * cfglayout.c (fixup_reorder_chain): Dump duplicated
13561         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
13562         cfg_layout_duplicate_bb): New global function.
13563         (duplicate_insn_chain): New static function.
13564         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
13565         cfg_layout_duplicate_bb): Declare.
13566         (struct reorder_block_def): Add "original" field.
13567         * emit-rtl.c (emit_copy_of_insn_after): New function.
13568         * rtl.h (emit_copy_of_insn_after): Declare.
13569
13570         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
13571         (fixup_reorder_chain): properly handle edges to exit block.
13572
13573 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13574                                Jan Hubicka  <jh@suse.cz>
13575
13576         * basic-block.h (note_prediction_to_br_prob): declare.
13577         * c-semantics.c: Inlucde predit.h
13578         (expand_stmt): predict GOTO_STMT as not taken.
13579         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
13580         (cleanup_cfg): Do not free tail_recursion_list.
13581         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
13582         (flow_delete_block): Kill predictions past end of basic block.
13583         * output.h (delete_unreachable_blocks): Declare.
13584         * predict.c (predicted_by_p, process_note_predictions,
13585         process_note_prediction, last_block_p): New function.
13586         (estimate_probability): Bypass loop on PRED_CONTINUE;
13587         do not handle noreturn heuristics; kill PRED_RETURN; add
13588         PRED_EARLY_RETURN.
13589         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
13590         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
13591         * predict.h (IS_TAKEN): New constant.
13592         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
13593         * rtl.c (NOTE_INSN_PREDICTION): New.
13594         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
13595         New macro.
13596         (insn_note): add NOTE_INSN_PREDICTION.
13597         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
13598         CFG; free tail_recursion_label_list.
13599         * stmt.c: Include predict.h;
13600         (return_prediction): New.
13601         (expand_value_return): Use it.
13602         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
13603
13604 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
13605
13606         * config/mips/mips.md: Name the unspecs with define_constant.
13607         (*HILO_delay): Rename to 'hilo_delay' (no star).
13608         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
13609         (reload_outdi, reload_outsi): Likewise.
13610
13611 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
13612
13613         * toplev.c: Fix formatting.
13614
13615 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
13616
13617         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
13618         * configure.in (ac_rtlflag_checking): New.
13619         * doc/install.texi (--enable-checking): Document RTL flag checking.
13620
13621 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
13622
13623         * c-common.c (c_common_init): Set options->unsigned_wchar.
13624         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
13625         group target dependencies.
13626         (init_builtins, cpp_handle_option): Update.
13627         * cpplex.c (cpp_interpret_charconst): Update.
13628         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
13629         signed_char to unsigned_char, group target dependencies.
13630         * defaults.h (WCHAR_UNSIGNED): Remove.
13631         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
13632 config:
13633         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
13634         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
13635         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
13636         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
13637         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
13638 doc:
13639         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
13640
13641 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
13642
13643         * fixinc/inclhack.def (windiss_math1): New fix.
13644         (windiss_math2): Likewise.
13645         (windiss_valist): Likewise.
13646         * fixinc/fixincl.x: Regenerated.
13647
13648 2002-05-07  Andreas Jaeger  <aj@suse.de>
13649
13650         * genautomata.c (output_internal_min_issue_delay_func): Add
13651         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
13652         (output_internal_trans_func): Likewise.
13653
13654 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
13655
13656         * pa.c (hppa_profile_hook): Use force_reg to get the address
13657         of the profile hook into an appropriate pseudo register.
13658
13659 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
13660
13661         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
13662         (LINK_START_SPEC): Handle it.
13663         (LINK_OS_SPEC): Likewise.
13664         (CPP_SPEC): Likewise.
13665         (STARTFILE_SPEC): Likewise.
13666         (LIB_SPEC): Likewise.
13667         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
13668         all platforms.
13669         (CRTSAVRES_DEFAULT_SPEC): New macro.
13670         (LIB_WINDISS_SPEC): New macro.
13671         (CPP_OS_WINDISS_SPEC): Likewise.
13672         (STARTFILE_WINDISS_SPEC): Likewise.
13673         (ENDFILE_WINDISS_SPEC): Likewise.
13674         (LINK_START_WINDISS_SPEC): Likewise.
13675         (LINK_OS_WINDISS_SPEC): Likewise.
13676         * config/rs6000/windiss.h: New file.
13677
13678 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
13679
13680         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
13681
13682 2002-05-06  David S. Miller  <davem@redhat.com>
13683
13684         * config/sparc/sparc.md (shift insns): Do not mask off
13685         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
13686         take care of it.
13687
13688 2002-05-06  Richard Henderson  <rth@redhat.com>
13689
13690         PR c++/6212
13691         * expr.c (highest_pow2_factor_for_type): New.
13692         (expand_assignment): Use it.
13693
13694 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
13695
13696         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
13697         unspec_volatile.
13698         ("altivec_mfvscr"): Same.
13699
13700 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
13701
13702         * rtl.h (struct rtx_def): Update comments.
13703         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
13704         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
13705         RTL_FLAG_CHECK macros with list of expected RTL codes.
13706         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
13707         (rtl_check_failed_flag): New.
13708         * reload1.c (reload): Use REG macro before changing rtx to MEM.
13709         (reload_cse_noop_set_p): Check rtx code before using access macro.
13710         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
13711         before using access macro.
13712
13713 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
13714
13715         * doc/rtl.texi (Flags): Update to reflect current usage.
13716
13717 2002-05-06  Roger Sayle  <roger@eyesopen.com>
13718
13719         PR opt/3995
13720         * fold-const.c (sign_bit_p): New function.
13721         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
13722         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
13723         Reapply fold when converting (A & C) == C into (A & C) != 0.
13724         (fold_binary_op_with_conditional_arg): Fix typo in comment.
13725
13726 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
13727
13728         * c-common.c (warn_multichar): New.
13729         (c_common_init): Set CPP's warn_multichar.
13730         * c-common.h (warn_multichar): New.
13731         * c-decl.c (warn_multichar): Remove.
13732         * c-lex.c (lex_charconst): Update.
13733         * c-tree.h (warn_multichar): Remove.
13734         * cppexp.c (eval_token): Sign-extend charconst value.
13735         * cppinit.c (cpp_create_reader): Set warn_multichar.
13736         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
13737         each character.  Update prototype.  Sign-extend the result.
13738         * cpplib.h: Fix conditions.
13739         (struct cpp_options): Add new warning flag.
13740         (cpp_interpret_charconst): Update prototype.
13741 doc:
13742         * cpp.texi: Update documentation.
13743
13744 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
13745
13746         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
13747         Fix typo in usage of allof instead of unit.
13748
13749 2002-05-06  Richard Henderson  <rth@redhat.com>
13750
13751         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
13752         and any jump or call for IN.
13753
13754 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
13755
13756         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
13757         -msse2.
13758         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
13759
13760 2002-05-06  Roger Sayle  <roger@eyesopen.com>
13761
13762         * fold-const.c (lshift-double): Cast the high word to an unsigned
13763         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
13764         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
13765         avoid compiler warning.  (fold): Remove redundant code from
13766         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
13767
13768 2002-05-06  Jeff Law  <law@redhat.com>
13769
13770         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
13771         * pa.c (pa_adjust_cost): Remove all true dependency cost
13772         adjustments.  Also remove support for non-DFA scheduling.
13773         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
13774         to adjust true dependency costs.  Update various comments.
13775         (7100lc, 7200, 7300 scheduling): Simplify by combining the
13776         FP ALU & MPY units into a single unit.
13777
13778 2002-05-06  Catherine Moore  <clm@redhat.com>
13779
13780         * config/v850/v850.c (compute_register_save_size): Make sure
13781         to count all of the registers that will be saved.
13782
13783 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
13784
13785         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
13786
13787 2002-05-06  David S. Miller  <davem@redhat.com>
13788
13789         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
13790         allow result to overlap input operands in memory.
13791
13792 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
13793
13794 doc:
13795         * cpp.texi: Update multichar charconst docs.
13796
13797 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
13798
13799         * cpplex.c (cpp_interpret_charconst): Sign-extend each
13800         character.  Don't ignore excess characters.  Treat
13801         multicharacter character constants as signed.
13802         (cpp_parse_escape): Clarify diagnostic.
13803
13804 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
13805
13806         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
13807         use add instead of shift.
13808         (ashldi3_sp64): Likewise.
13809         (ashlsi3_const1, ashldi3_const1): Remove.
13810         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
13811         * config/sparc/sparc.c (const1_operand): New.
13812
13813 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
13814
13815         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
13816
13817 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
13818
13819         PR target/6561
13820         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
13821
13822 2002-05-05  Richard Henderson  <rth@redhat.com>
13823
13824         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
13825         memory latency adjustments.
13826         (alpha_variable_issue): Remove.
13827         (alpha_use_dfa_pipeline_interface): New.
13828         (alpha_multipass_dfa_lookahead): New.
13829         * config/alpha/alpha.md: Remove define_function_unit scheduling;
13830         include new dfa scheduling.
13831         (attr type): Add none.
13832         (blockage): Use it.
13833         * config/alpha/ev4.md: New.
13834         * config/alpha/ev5.md: New.
13835         * config/alpha/ev6.md: New.
13836
13837 2002-05-05  David S. Miller  <davem@redhat.com>
13838
13839         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
13840
13841 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
13842
13843         * cse.c: Fix formatting.
13844         * emit-rtl.c: Likewise.
13845
13846 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
13847
13848         * genautomata.c (initiate_states): Add additional guard to
13849         initialize `units_array'.
13850
13851 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
13852
13853         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
13854         process_unit_to_form_the_same_automaton_unit_lists,
13855         form_the_same_automaton_unit_lists
13856         check_unit_distributions_to_automata): New prototypes and
13857         functions.
13858         (check_automata): Rename it into `check_automata_insn_issues'.
13859         (unit_decl): New fields `the_same_automaton_unit' and
13860         `the_same_automaton_message_reported_p'.
13861         (unit_decl_t): New typedef.
13862         (the_same_automaton_lists): New gloval variable.
13863         (unit_regexp, unit_set_el, units_array, units_cmp,
13864         output_get_cpu_unit_code_func): Use the typedef.
13865         (evaluate_max_reserv_cycles): Increment
13866         `description->max_insn_reserv_cycles'.
13867         (initiate_states): Don't increment `max_cycles_num'.
13868         (transform_insn_regexps): Move code around transformation of
13869         regexps from `generate'.
13870         (generate): Remove call of `transform_insn_regexps'.
13871         (expand_automata): Call `transform_insn_regexps' and
13872         `check_unit_distributions_to_automata'.  Check errors before
13873         `generate'.
13874
13875         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
13876         automaton `ultrasparc3_1'.
13877
13878 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
13879
13880         * c-common.c (c_common_init): Set up CPP arithmetic.
13881         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
13882         something reasonable for the host.
13883         (sanity_checks): Add checks.
13884         (cpp_read_main_file): Call sanity_checks() from here...
13885         (cpp_post_options): ... not here.
13886         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
13887         * cpplib.h (struct cpp_options): New member int_precision.
13888
13889 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13890
13891         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
13892
13893 2002-05-04  David S. Miller  <davem@redhat.com>
13894
13895         * config/sparc/linux.h, config/sparc/linux64.h
13896         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
13897
13898         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
13899         more RTX codes.
13900         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
13901
13902         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
13903         of SETs.
13904
13905 2002-05-05  Tim Josling  <tej@melbpc.org.au>
13906
13907         * treelang; New directory for new sample language treelang.
13908
13909 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
13910
13911         * Makefile.in (c-lex.o): Update.
13912         * c-lex.c: Include target.h.
13913         (cb_register_builtins): New.
13914         (init_c_lex): Set builtins callback.
13915         * c-lex.h (cpp_define, cpp_assert): New prototypes.
13916         * cppinit.c (init_builtins): Use callback, including for
13917         GXX_WEAK.
13918         * cpplib.h (struct cpp_callbacks): New member.
13919         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
13920         (TARGET_INITIALIZER): Update.
13921         * target.h (struct gcc_target): New hook.
13922         * tree.c (default_register_cpp_builtins): New.
13923         * tree.h (default_register_cpp_builtins): New.
13924 doc:
13925         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
13926
13927 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
13928
13929         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
13930         (cpp_post_options): Move sanity checks to...
13931         (sanity_checks): New.
13932         * cpplex.c (maybe_read_ucs): Fix prototype.
13933         (parse_string, cpp_parse_escape): Cast for %c format specifier.
13934         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
13935         if necessary.
13936
13937 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
13938
13939         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
13940         builtins.  Use V2DI patterns instead of TI for logical operations.
13941         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
13942         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
13943         (ix86_expand_builtins): Change the pattern used for movntdq.
13944         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
13945         sse2_nandv2di3): New patterns.
13946         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
13947         on operands.
13948         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
13949         (cvtdq2pd): Correct mode on operand 1.
13950         (sse2_umulsidi3): Describe without unspec.
13951         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
13952         machine modes.
13953         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
13954         (ashlv2di3): Likewise, from sse2_ashlv2di3.
13955         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
13956         ashlv4si3, ashlv2di3): Use SImode for shift count.
13957         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
13958         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
13959         New patterns.
13960         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
13961         New typedefs.
13962         (__m128i, __m128d): New macros.
13963         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
13964         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
13965         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
13966         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
13967         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
13968         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
13969         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
13970         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
13971         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
13972         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
13973         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
13974         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
13975         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
13976         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
13977         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
13978         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
13979         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
13980         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
13981         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
13982         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
13983         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
13984         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
13985         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
13986         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
13987         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
13988         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
13989         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
13990         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
13991         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
13992         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
13993         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
13994         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
13995         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
13996         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
13997         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
13998         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
13999         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
14000         functions.
14001         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
14002         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
14003
14004 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
14005
14006         * dwarf2out.c: Fix formatting.
14007         * varasm.c: Likewise.
14008
14009 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
14010
14011         PR c/6543
14012         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
14013         clobber and use result as temporary value.
14014
14015 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
14016
14017         * expr.c (force_operand): Use expand_simple_* to handle more
14018         cases.
14019
14020 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
14021
14022         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
14023         and sign-extension.
14024         (lex_charconst): Update for change in prototype of
14025         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
14026         appropriately.
14027         * cpphash.h (BITS_PER_CPPCHAR_T): New.
14028         * cppinit.c (cpp_create_reader): Initialize them for no
14029         change in semantics.
14030         (cpp_post_options): Add sanity checks.
14031         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
14032         and truncation issues.  Calculate in type cppchar_t.
14033         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
14034         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
14035         run-time dependent precision correctly.  Return whether the
14036         result is signed or not.
14037         * cpplib.c (dequote_string): Use cppchar_t; update.
14038         * cpplib.h (cppchar_signed_t): New.
14039         struct cpp_options): New precision members.
14040         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
14041         * cppexp.c (eval_token): Update.
14042
14043 2002-05-03  David S. Miller  <davem@redhat.com>
14044
14045         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
14046         * config/sparc/sparc.c (sparc_rtx_costs): New function
14047         implementing RTX_COSTS and CONST_COSTS.
14048         * config/sparc/sparc.h (CONST_COSTS): Delete.
14049         (RTX_COSTS_CASES): Define.
14050         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
14051         the work.
14052
14053         * config/sparc/sparc.md (DFA schedulers): Split out...
14054         * config/sparc/cypress.md, config/sparc/hypersparc.md,
14055         config/sparc/sparclet.md, config/sparc/supersparc.md,
14056         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
14057
14058         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
14059         checks on it, always defined for Sparc.
14060
14061         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
14062         Tweak, and add more detailed comments.
14063
14064 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
14065
14066         * Re-apply patch accidentally reverted with
14067         DFA scheduler merge: remove all rules and variables to slurp
14068         source files out of libiberty and rebuild them with HOST_CC.
14069         ($(HOST_PREFIX_1)varray.o): New rule.
14070         (genattrtab rule): Word wrap.
14071
14072 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
14073
14074         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
14075         (CPP_SUBTARGET_SPEC): Define.
14076         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
14077         cpp_subtarget specs.
14078         (CPP_SPEC): Redefine to include %(cpp_subtarget).
14079
14080 2002-05-03  David S. Miller  <davem@redhat.com>
14081
14082         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
14083         * target.h (struct gcc_target): Delete cycle_display member.
14084
14085         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
14086         (rtx_needs_barrier): Delete reference to cycle_display unspec.
14087         (ia64_sched_reorder2): Mention need for cycle display handling
14088         once such notes exist.
14089
14090 2002-05-03  Richard Henderson  <rth@redhat.com>
14091
14092         * real.c (etoasc): Strip most trailing zeros for clarity.
14093         * sched-vis.c: Include real.h.
14094         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
14095         * Makefile.in (sched-vis.o): Add real.h.
14096
14097 2002-05-03  David S. Miller  <davem@redhat.com>
14098
14099         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
14100         no longer needed.
14101
14102 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
14103
14104         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
14105         when we get an out of range literal.
14106         (altivec_expand_ternop_builtin): Same.
14107         (altivec_expand_unop_builtin): Same.
14108         (altivec_expand_builtin): Same, for dss.
14109         (altivec_expand_builtin): Use trees instead of rtl when
14110         determining literal argument validity.
14111
14112 2002-05-03  David S. Miller  <davem@redhat.com>
14113
14114         Delete cycle display scheduling hook.
14115         * config/ia64/ia64.c (ia64_cycle_display,
14116         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
14117         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
14118         and use emit_insn_before instead of ia64_emit_insn_before.
14119         * config/ia64/ia64.md (unspec usage): Delete cycle display.
14120         (cycle_display): Delete insn pattern.
14121         * config/sparc/sparc.md (unspec usage): Delete cycle display.
14122         (cycle_display): Delete insn pattern.
14123         * config/sparc/sparc.c (sparc_cycle_display,
14124         TARGET_SCHED_CYCLE_DISPLAY): Delete.
14125         * doc/md.texi (cycle_display): Don't mention.
14126         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
14127
14128 2002-05-03  Richard Henderson  <rth@redhat.com>
14129
14130         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
14131         * recog.h: Declare them.
14132
14133         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
14134         * config/sparc/sparc.md: Use store_data_bypass_p instead.
14135         * config/sparc/sparc-protos.h: Update.
14136
14137 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
14138
14139         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
14140         -D__arch64__.  Add -D_LP64.
14141         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
14142         from sparc.h.
14143         (CPP_ARCH64_SPEC): Likewise.
14144         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
14145         (NO_BUILTIN_SIZE_TYPE): Undef.
14146
14147 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
14148
14149         * genautomata.c (min_issue_delay_pass_states): Change return type
14150         in the prototype.
14151         (min_issue_delay_pass_states): Change the algorithm.
14152         (min_issue_delay): Set up min_insn_issue_delay for the state.
14153         (output_min_issue_delay_table): Interchange the nested loops and
14154         and initiate min_insn_issue_delay for states.
14155
14156 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
14157
14158         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
14159         jump is simplejump.
14160
14161 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
14162
14163         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
14164         sequence.
14165
14166 2002-05-03  Richard Henderson  <rth@redhat.com>
14167
14168         PR opt/6534
14169         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
14170         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
14171         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
14172         code before JUMP, not EARLIEST.
14173
14174 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
14175
14176         * c-format.c (check_format_info_main): Don't check for presence of
14177         parameter for * width until after operand number has been read,
14178         and only check for it if format parameters are available.
14179         Fixes PR c/6547.
14180
14181 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
14182
14183         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
14184         (LINK_SPEC): Undef before defining.
14185
14186 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
14187
14188         PR preprocessor/6489
14189         * tradcpp.c (fixup_newlines): New.
14190         (main, finclude): Use it.
14191
14192 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
14193
14194         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
14195         * config/mips/mips.c (mips_unique_section): Strip encoding from
14196         decl name.
14197
14198 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
14199
14200         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
14201         mode.
14202
14203 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14204
14205         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
14206         (Specific): Removed buildstats references.
14207         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
14208         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
14209         Accomodate Solaris versions beyond 8.
14210         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
14211         (Specific, *-*-solaris2.8): Removed, obsolete.
14212
14213 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
14214
14215         PR target/6542
14216         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
14217         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
14218         fill leaf_reg_remap with identity.
14219         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
14220
14221 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
14222
14223         * config/h8300/crti.asm: Remove trailing spaces.
14224         * config/h8300/h8300.c: Likewise.
14225         * config/h8300/lib1funcs.asm: Likewise.
14226
14227 2002-05-02  Jason Merrill  <jason@redhat.com>
14228
14229         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
14230         * c-decl.c (c_init_decl_processing): Use it.
14231         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
14232         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
14233         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
14234
14235 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
14236
14237         * regrename.c: Fix formatting.
14238         * tree.c: Likewise.
14239
14240 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
14241
14242         * i386.md (attribute memory): Handle compares properly.
14243
14244 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
14245
14246         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
14247         to none.
14248
14249 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
14250
14251         * function.c: Fix formatting.
14252
14253 2002-05-02  Jan Hubicka  <jh@suse.cz>
14254
14255         * haifa-sched.c (schedule_insn): Print table of instructions and
14256         reservations.
14257         (sched_block): Do not print ready list at verbosity level 1.
14258         * sched-vis.c (print_insn): Make global.
14259         * sched-ebb.c (ebb_print_insn): Rename from...
14260         (print_insn): ... this one.
14261         * sched-int.h (print_insn): Declare
14262
14263 2002-05-02  Richard Henderson  <rth@redhat.com>
14264
14265         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
14266         emitted by cycle_display.
14267
14268 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
14269
14270         * doc/install.texi (*-*-freebsd*): Update to latest status.
14271
14272 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
14273
14274         PR target/6540
14275         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
14276         * config/float-sparc.h: Assume 128-bit long double if
14277         __LONG_DOUBLE_128__ is defined.
14278
14279 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
14280
14281         * genattrtab.c (write_function_unit_info): Add a dummy element
14282         when num_units == 0.
14283
14284 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14285
14286         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
14287         TYPE_MODE (double_type_node) instead of DFmode.
14288
14289 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
14290
14291         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
14292         jumps post reload.
14293         * toplev.c (rest_of_compilation): Revert Richard's patch.
14294
14295 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14296
14297         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
14298
14299 2002-05-02  Catherine Moore  <clm@redhat.com>
14300
14301         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
14302
14303 2002-05-02  Kazu Hirata  <kazu@hxi.com>
14304
14305         * combine.c: Fix comment typos.
14306         * expr.c: Likewise.
14307         * genautomata.c: Likewise.
14308         * stmt.c: Likewise.
14309         * tree.h: Likewise.
14310
14311 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
14312
14313         * doc/install.texi: State GNAT version requirements.
14314
14315 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
14316
14317         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
14318         of the frame pointer or arg pointer register which strict register
14319         checking is not enabled.
14320
14321 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
14322
14323         * gcc.dg/altivec-8.c: New.
14324
14325         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
14326         PRE_INC and PRE_DEC for altivec modes.
14327
14328 2002-05-01  Bruce Korb  <bkorb@gnu.org>
14329
14330         * fixinc/check.tpl(set-writable): make sure the function exists first
14331         * fixinc/inclhack.def(alpha_assert): fix test_text
14332         * fixinc/tests/base/assert.h: add in missing result
14333
14334 2002-05-01  Jeff Law  <law@redhat.com>
14335
14336         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
14337         'T' constraint.
14338
14339 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
14340
14341         * dbxout.c (dbxout_type): Emit size information for range types,
14342         as well, but only when using GDB extensions.
14343
14344 2002-05-01  Richard Henderson  <rth@redhat.com>
14345
14346         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
14347         target-independent gnu binutils date test.
14348
14349 2002-05-01  Richard Henderson  <rth@redhat.com>
14350
14351         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
14352         info before expunging the block.
14353
14354 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
14355
14356         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
14357         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
14358         -M -or -MM is in effect.
14359
14360 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
14361
14362         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
14363         A29k configurations.
14364         * doc/install.texi: Update to match.
14365
14366 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14367
14368         PR bootstrap/6514
14369         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
14370         for duplicates. Always loop over whole list.
14371
14372 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14373
14374         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
14375
14376 2002-05-01      Joel Sherrill <joel@OARcorp.com>
14377
14378         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
14379         support routines.
14380
14381 2002-05-01      Joel Sherrill <joel@OARcorp.com>
14382
14383         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
14384
14385 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
14386
14387         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
14388         (nabs_nopower): Same.
14389         (floatdisf2): New pattern.
14390         (absdi2): Convert to define_insn_and_split.
14391         (nabsdi2): Same.
14392         (trunctfsf2): Same.
14393         (floatditf2): Same.
14394         (floatsitf2): Same.
14395         (fix_trunctfdi2): Same.
14396         (fix_trunctfsi2): Same.
14397
14398 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
14399
14400         * doc/install.texi: Update Texinfo version requirement
14401         documentation.
14402
14403 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
14404
14405         PR target/6512, PR target/5628
14406         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
14407         when memory is not aligned.
14408         (movdf_insn_v9only_vis): Likewise.
14409         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
14410         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
14411         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
14412
14413 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
14414
14415         * gcc.dg/altivec-7.c: New.
14416
14417         * config/rs6000/altivec.h: Cleanup.
14418
14419 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
14420
14421         * doc/invoke.texi (Option Summary): Add -mvrsave=.
14422         (RS/6000 and PowerPC Options): Document -mvrsave=.
14423
14424         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
14425         (rs6000_altivec_vrsave_string): Same.
14426         (rs6000_override_options): Call rs6000_parse_vrsave_option.
14427         (rs6000_parse_vrsave_option): New.
14428         (rs6000_stack_info): Only generate vrsave instructions when
14429         TARGET_ALTIVEC_VRSAVE.
14430
14431         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
14432         (rs6000_altivec_vrsave_string): Define extern.
14433         (rs6000_altivec_vrsave): Same.
14434         (TARGET_ALTIVEC_VRSAVE): New.
14435
14436 2002-04-30  Richard Henderson  <rth@redhat.com>
14437
14438         PR opt/6516
14439         * toplev.c (rest_of_compilation): Don't run cross-jump before
14440         bb-reorder.
14441
14442 2002-04-30  Tom Rix  <trix@redhat.com>
14443
14444         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
14445         check which_alternative.
14446
14447 2002-04-30  Kazu Hirata  <kazu@hxi.com>
14448
14449         * cpplex.c: Fix comment formatting.
14450         * function.c: Likewise.
14451         * integrate.c: Likewise.
14452         * regrename.c: Likewise.
14453         * sibcall.c: Likewise.
14454         * simplify-rtx.c: Likewise.
14455         * tree-inline.c: Likewise.
14456
14457 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14458
14459         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
14460         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
14461         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
14462         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
14463         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
14464         * pa/x-ada: New file.  Define ADA_CFLAGS.
14465
14466 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
14467
14468         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
14469         from MMIX_LAST_REGISTER_FILE_REGNUM.
14470         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
14471         (struct machine_function): New member highest_saved_stack_register
14472         previously static variable in mmix.c.
14473         (MACHINE_DEPENDENT_REORG): Define.
14474         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
14475         (MMIX_OUTPUT_REGNO): New.
14476         (mmix_target_asm_function_prologue): Move calculation of last used
14477         saved-stack-register into...
14478         (mmix_machine_dependent_reorg): New function.  Update to also handle
14479         !TARGET_ABI_GNU.
14480         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
14481         register names, simplify somewhat by new variable regno.
14482         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
14483         register.
14484         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
14485         emitting register names.
14486         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
14487         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
14488         Remove fixed FIXME.
14489         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
14490         Declare.
14491
14492         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
14493
14494 2002-04-30  Richard Henderson  <rth@redhat.com>
14495
14496         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
14497         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
14498         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
14499         emit_tfmode_cvt): New.
14500         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
14501         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
14502         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
14503         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
14504         * config/sparc/sparc-protos.h: Update.
14505
14506 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
14507
14508         * install.texi (Final install): Add to the list of info to include
14509         in a report of a successful bootstrap, and add link to 3.1 list.
14510
14511 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
14512
14513         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
14514         (mode): Add vector modes
14515         (i387): Kill attribute.
14516         (unit): New attribute.
14517         (length_immediate): Grok new types.
14518         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
14519         (modrm): Use "unit".
14520         (memory): Handle MMX/SSE properly.
14521         (scheduling descriptions): Kill uses of fop1.
14522         (sse, mmx, fp patterns): Set type and mode properly.
14523
14524 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
14525
14526         * pa.c (override_options): Default to PA8000 scheduling.
14527         * doc/invoke.texi (HP-PA options): Mention newly added 7300
14528         scheduling parameter.
14529
14530         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
14531         handling of double precision multiplies.
14532
14533         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
14534         fpdiv and fpsqrt instructions.
14535         (7200 & 7300 scheduling): Fix typo in handling of
14536         store-load and store-store penalties.
14537
14538 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14539
14540         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
14541         mips.  Add two missing commas.
14542
14543 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
14544
14545         * doc/contrib.texi (Contributors): Update Paolo Carlini's
14546         and Benjamin Kosnik's entries.
14547
14548 2002-04-29  David S. Miller  <davem@redhat.com>
14549
14550         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
14551         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
14552         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
14553         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
14554
14555 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14556
14557         * combine.c (find_split_point): Use gen_int_mode.
14558
14559 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
14560
14561         Merging code from dfa-branch:
14562
14563         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
14564
14565         * genautomata.c (output_reserv_sets): Fix typo.
14566
14567         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
14568
14569         * genautomata.c (output_reserv_sets): Remove
14570         next_cycle_output_flag.
14571
14572         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
14573
14574         * sched-rgn.c (init_ready_list): Make the DFA code handle
14575         USE/CLOBBER insns in the same way as the traditional
14576         scheduler.
14577         (new_ready): Similarly..
14578
14579         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
14580
14581         * haifa-sched.c (schedule_block): Change the DFA state only after
14582         issuing insn.
14583
14584         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
14585
14586         * pa.c (hppa_use_dfa_pipeline_interface): New function.
14587         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
14588         (override_options): Add PA7300 scheduling support.
14589         (pa_adjust_cost): Update various comments.  Properly
14590         handle anti and output dependencies when using the
14591         DFA scheduler.
14592         (pa_issue_rate): Add PA7300 scheduling support.
14593         (pa_can_combine_p): Call extract_insn before calling
14594         constrain_operands (taken from mainline tree).
14595         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
14596         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
14597         descriptions using DFA descriptions.  Add PA7300
14598         scheduling support.
14599
14600         2002-03-30  David S. Miller  <davem@redhat.com>
14601
14602         Add UltraSPARC-III DFA scheduling support.
14603         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
14604         Update FP conditional move on register insn patterns to use it, as
14605         appropriate.
14606         (define_attr cpu): Add ultrasparc3.
14607         (define_attr us3load_type): New, update integer load patterns to
14608         set it, as appropriate.
14609         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
14610         (rest): Add UltraSPARC3 scheduling description.
14611         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
14612         (PROCESSOR_ULTRASPARC3): New.
14613         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
14614         ({ASM,CPP}_CPU_SPEC): Likewise.
14615         (REGISTER_MOVE_COST): Likewise.
14616         (RTX_COSTS): Likewise.
14617         * config/sparc/sparc.c (sparc_override_options,
14618         sparc_initialize_trampoline, sparc64_initialize_trampoline,
14619         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
14620         sparc_issue_rate): Likewise.
14621         * config/sparc/sol2.h: Likewise.
14622         * config/sparc/sol2-sld-64.h: Likewise.
14623         * config/sparc/linux64.h: Likewise.
14624
14625         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
14626
14627         * doc/md.texi: Add comments about usage the latency time for the
14628         different dependencies and about case when two or more conditions
14629         in different define_insn_reservations returns TRUE for an insn.
14630
14631         * doc/md.texi: Add reference for automaton based pipeline
14632         description.
14633
14634         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
14635
14636         * doc/passes.texi: Add missed information about genattrtab.
14637
14638         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
14639
14640         * genautomata.c (output_automata_list_transition_code): Check
14641         automata_list on NULL.
14642
14643         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
14644
14645         * genautomata.c (output_insn_code_cases,
14646         output_automata_list_min_issue_delay_code,
14647         output_automata_list_transition_code,
14648         output_automata_list_state_alts_code): Comment the functions.
14649
14650         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
14651
14652         * genautomata.c (automata_list_el_t): New typedef.
14653         (get_free_automata_list_el,free_automata_list_el,
14654         free_automata_list, automata_list_hash, automata_list_eq_p,
14655         initiate_automata_lists, automata_list_start, automata_list_add,
14656         automata_list_finish, finish_automata_lists,
14657         output_insn_code_cases, output_automata_list_min_issue_delay_code,
14658         output_automata_list_transition_code,
14659         output_automata_list_state_alts_code, add_automaton_state,
14660         form_important_insn_automata_lists): New functions and prototypes.
14661         (insn_reserv_decl): Add members important_automata_list and
14662         processed_p.
14663         (ainsn): Add members important_p.
14664         (automata_list_el): New structure.
14665         (first_free_automata_list_el, current_automata_list,
14666         automata_list_table): New global variables.
14667         (create_ainsns): Initiate member important_p.
14668         (output_internal_min_issue_delay_func): Generate the switch and
14669         call output_insn_code_cases.
14670         (output_internal_trans_func, output_internal_state_alts_func):
14671         Ditto.
14672         (generate): Call initiate_automata_lists.
14673         (automaton_states): New global variable.
14674         (expand_automata): Call form_important_insn_automata_lists.
14675         (write_automata): Call finish_automata_lists.
14676
14677         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
14678
14679         * genautomata.c (add_excls, add_presence_absence): Check that
14680         cpu units in the sets belong the same automaton.
14681
14682         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
14683         about that cpu units in the sets belong the same automaton.
14684
14685         * doc/md.texi: Ditto.
14686
14687         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
14688                     Nitin Gupta  <niting@noida.hcltech.com>
14689
14690         * config/sh/sh.c (sh_use_dfa_interface): New function.
14691
14692         (sh_issue_rate): New Function.
14693         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
14694         TARGET_SCHED_ISSUE_RATE: define.
14695
14696         * config/sh/sh.md: Add DFA based pipeline description for SH4.
14697
14698         (define_attr insn_class): New attribute used for DFA
14699          scheduling.
14700         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
14701         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
14702          cmpeqdi_t): Likewise.
14703
14704         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
14705          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
14706          ex_group.
14707         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
14708
14709         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
14710
14711         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
14712         break.
14713
14714         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
14715
14716         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
14717         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
14718         necessary.
14719         (output_dfa_start_func): Initiate new variable insn_codes_length,
14720         (write_automata): Output definition of the new variable.
14721
14722         2001-10-02  David S. Miller  <davem@redhat.com>
14723
14724         * haifa-sched.c (advance_one_cycle): New function.
14725         (schedule_block): Use it.
14726         (queue_to_ready): Use it, and also make sure to advance the DFA
14727         state on all stall cycles, not just those where insn_queue links
14728         are found.
14729
14730         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
14731
14732         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
14733         non-zero if the highest-priority instruction could be scheduled.
14734         (choose_ready): Remove last argument from max_issue call.
14735
14736         2001-09-28  David S. Miller  <davem@redhat.com>
14737
14738         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
14739         ultrasparc and 3 for other multi-issue sparcs.
14740
14741         2001-09-27  David S. Miller  <davem@redhat.com>
14742
14743         * config/sparc/sparc.md (cycle_display): New pattern.
14744         * config/sparc/sparc.c (sparc_cycle_display): New.
14745         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
14746
14747         2001-09-25  David S. Miller  <davem@redhat.com>
14748
14749         Convert all of Sparc scheduling to DFA
14750         * config/sparc/sparc.md: Kill all define_function_unit
14751         directives and replace with DFA equivalent.
14752         * config/sparc/sparc.c (ultrasparc_adjust_cost,
14753         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
14754         ultra_fpmode_conflict_exists, ultra_find_type,
14755         ultra_build_types_avail, ultra_flush_pipeline,
14756         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
14757         ultrasparc_variable_issue, ultrasparc_sched_init,
14758         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
14759         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
14760         ultra_cur_hist, ultra_cycles_elapsed): Kill.
14761         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
14762         ultrasparc_store_bypass_p): New.
14763         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
14764         Declare.
14765
14766         2001-09-24  David S. Miller  <davem@redhat.com>
14767
14768         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
14769         ready->vec[foo] not ready[foo].
14770
14771         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
14772
14773         * doc/md.texi: Correct examples for define_insn_reservations
14774         `mult' and `div'.
14775
14776         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
14777
14778         * genautomata.c (create_automata): Print message about creation of
14779         each automaton.
14780         (generate): Remove printing meease about creation of
14781         automata.
14782
14783         2001-09-05  David S. Miller  <davem@redhat.com>
14784
14785         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
14786         * config/sparc/linux64.h: Likewise.
14787
14788         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
14789
14790         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
14791         schedule_block, sched_init, sched_finish): Add missed calls of
14792         use_dfa_pipeline_interface.
14793
14794         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
14795         Ditto.
14796
14797         * sched-vis.c (get_visual_tbl_length): Ditto.
14798
14799         2001-08-27  Richard Henderson  <rth@redhat.com>
14800
14801         * genattr.c (main): Emit state_t even when not doing scheduling.
14802
14803         2001-08-27  Richard Henderson  <rth@redhat.com>
14804
14805         * genautomata.c (expand_automata): Always create a description.
14806
14807         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
14808
14809         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
14810         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
14811         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
14812         RTL constructions.
14813
14814         * genattr.c (main): New variable num_insn_reservations.  Increase
14815         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
14816         pipeline hazard recognizer interface.
14817
14818         * genattrtab.h: New file.
14819
14820         * genattrtab.c: Include genattrtab.h.
14821         (attr_printf, check_attr_test, make_internal_attr,
14822         make_numeric_value): Move protypes into genattrtab.h.  Define them
14823         as external.
14824         (num_dfa_decls): New global variable.
14825         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
14826         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
14827         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
14828         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
14829
14830         * genautomata.c: New file.
14831
14832         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
14833
14834         * sched-int.h: (curr_state): Add the external definition for
14835         automaton pipeline interface.
14836         (haifa_insn_data): Add comments for members blockage and units.
14837
14838         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
14839         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
14840         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
14841         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
14842         TARGET_SCHED_DFA_POST_CYCLE_INSN,
14843         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
14844         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
14845         macros.
14846         (TARGET_SCHED): Use the new macros.
14847
14848         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
14849         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
14850         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
14851         dfa_bubble): New members in gcc_target.sched.
14852
14853         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
14854         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
14855         (insn_queue): Redefine it as pointer to array.
14856         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
14857         INSN_QUEUE_SIZE.
14858         (max_insn_queue_index_macro_value): New variable.
14859         (curr_state, dfa_state_size, ready_try): New varaibles for
14860         automaton interface.
14861         (ready_element, ready_remove, max_issue): New function prototypes
14862         for automaton interface.
14863         (choose_ready): New function prototype.
14864         (insn_unit, blockage_range): Add comments.
14865         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
14866         FUNCTION_UNITS_SIZE == 0.
14867         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
14868         actual_hazard, potential_hazard): Add comments.
14869         (insn_cost): Use cost -1 as undefined value.  Remove
14870         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
14871         pipeline interface.
14872         (ready_element, ready_remove): New functions for automaton
14873         interface.
14874         (schedule_insn): Add new code for automaton pipeline interface.
14875         (queue_to_ready): Add new code for automaton pipeline interface.
14876         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
14877         (debug_ready_list): Print newline when the queue is empty.
14878         (max_issue): New function for automaton pipeline interface.
14879         (choose_ready): New function.
14880         (schedule_block): Add new code for automaton pipeline interface.
14881         Print ready list before scheduling each insn.
14882         (sched_init): Add new code for automaton pipeline interface.
14883         Initiate insn cost by -1.
14884         (sched_finish): Free the current automaton state and finalize
14885         automaton pipeline interface.
14886
14887         * sched-rgn.c: Include target.h.
14888         (init_ready_list, new_ready, debug_dependencies): Add new code for
14889         automaton pipeline interface.
14890
14891         * sched-vis.c: Include target.h.
14892         (get_visual_tbl_length): Add code for automaton interface.
14893         (target_units, print_block_visualization):  Add comments.
14894
14895         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
14896         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
14897         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
14898         (getruntime.o, genautomata.o): New entries.
14899         (genattrtab.o): Add new dependency file genattrtab.h.
14900         (genattrtab): Add new dependencies.  Link it with `libm.a'.
14901         (getruntime.o, hashtab.o): New entries for canadian cross.
14902
14903         * doc/md.texi: Description of automaton based model.
14904
14905         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
14906         Add comments.
14907         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
14908         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
14909         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
14910         TARGET_SCHED_DFA_POST_CYCLE_INSN,
14911         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
14912         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
14913         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
14914         hook descriptions.
14915         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
14916         MAX_DFA_ISSUE_RATE): New macro descriptions.
14917
14918         * doc/contrib.texi: Add dfa based scheduler contribution.
14919
14920         * doc/gcc.texi: Add more information about genattrtab.
14921
14922 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14923
14924         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
14925         adjust_address_nv call.
14926
14927 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
14928
14929         * doc/install.texi (Testing): Provide additional information, and
14930         a stronger encouragement, for running the testsuites.
14931
14932 2002-04-29  DJ Delorie  <dj@redhat.com>
14933
14934         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
14935         given in upper case.
14936
14937 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14938
14939         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
14940         Solaris 2 <widec.h> if missing.
14941         * fixinc/fixincl.x: Regenerate.
14942         * fixinc/tests/base/widec.h: New file.
14943
14944 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
14945
14946         * toplev.c (f_options): Add "profile" switch so that
14947         -fno-profile can be used to disable -p.
14948
14949 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
14950
14951         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
14952         UV2DImode.
14953         * tree.c (build_common_tree_nodes_2): Likewise.
14954         * tree.h (enum tree_index): Likewise.
14955         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
14956
14957         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
14958         entries.
14959         (init_mmx_sse_builtins): Initialize SSE2 builtins.
14960         (ix86_expand_builtin): Add support for SSE2 builtins.
14961         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
14962         (VALID_SSE_REG_MODE): Use it.
14963         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
14964         (enum ix86_builtins): Add SSE2 builtins.
14965         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
14966         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
14967         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
14968         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
14969         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
14970         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
14971         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
14972         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
14973         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
14974         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
14975         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
14976         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
14977         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
14978         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
14979         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
14980         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
14981         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
14982         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
14983         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
14984         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
14985         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
14986         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
14987         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
14988         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
14989         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
14990         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
14991         lfence_insn): New patterns.
14992         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
14993         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
14994
14995 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
14996
14997         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
14998
14999 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15000
15001         * doc/contrib.texi (Contributors): Add Paolo Carlini and
15002         Janis Johnson.
15003         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
15004         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
15005         and CPU instead of cpu.
15006
15007 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
15008
15009         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
15010         variables.
15011         (lang_independent_options): Add -fif-conversion, -fif-conversion2
15012         (rest_of_compilation): Do if conversion only when asked for.
15013         (parse_options_and_default_flags): Set new variables to 1 for -O1
15014         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
15015
15016 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
15017
15018         * i386.c (dbx64_register_map): Fix typo.
15019
15020 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
15021
15022         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
15023         real_one_half, real_bb_freq_max): New static variables.
15024         (debug_profile_bbauxs): Kill.
15025         (process_note_predictions): Kill unused variable.
15026         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
15027         volatile double.
15028         (propagate_freq): Use REAL_ARITHMETICS.
15029         (estimate_bb_frequencies): Likevise; init new static variables.
15030         * Makefile.in (predict.o): Add dependency on real.h
15031
15032 2002-04-28  David S. Miller  <davem@redhat.com>
15033
15034         PR target/6500
15035         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
15036         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
15037         several {reads,writes} instead.
15038         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
15039         Define.
15040
15041 2002-04-27  David S. Miller  <davem@redhat.com>
15042
15043         PR target/6494
15044         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
15045         of the stack bias.
15046
15047         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
15048         including signal.h and sys/ucontext.h, not needed.
15049
15050 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
15051
15052         * varasm.c (output_constant_def): Correct test for not calling
15053         ENCODE_SECTION_INFO for INTEGER_CST.
15054
15055 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
15056
15057         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
15058         keep most cases as function eval_token.
15059         (eval_token): New function.
15060         (_cpp_parse_expr): Read token here for improved diagnostics.
15061         Don't use op_as_text.  Detect bad ':' here.
15062         (reduce): Don't detect bad ':' here.
15063         (op_as_text): Remove.
15064         * cpphash.h (_cpp_test_assertion): Change prototype.
15065         * cpplib.c (_cpp_test_assertion): Change prototype.
15066
15067 2002-04-28  Richard Henderson  <rth@redhat.com>
15068
15069         PR c/5154
15070         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
15071         (ggc_mark_rtx_children): New.
15072
15073 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
15074
15075         PR target/6496
15076         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
15077         after call peepholes for UltraSPARC.
15078         (call + jump 64-bit peepholes): Remove.
15079
15080 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15081
15082         PR c/6497
15083         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
15084         result as temporary value.
15085
15086 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
15087
15088         PR c++/6396
15089         * toplev.c (rest_of_compilation): Only run regrename and copy
15090         propagation if optimizing.
15091
15092 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
15093
15094         PR optimization/6475
15095         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
15096         register of REGNO_DECL (i).
15097         * Makefile.in (reload1.o): Add $(TREE_H).
15098
15099 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
15100
15101         * cppexp.c (lex): Update to use state.skip_eval.
15102         (struct op): Remove prio and flags members.
15103         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
15104         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
15105         (LEFT_ASSOC): New macro.
15106         (optab): New table of operator priorities and flags.
15107         (SHIFT): Update.
15108         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
15109         malloc-ed parser stack.
15110         (reduce): New; reduce the operator stack.
15111         (_cpp_expand_op_stack): Expand the operator stack as necessary.
15112         * cpphash.h (struct op): Predeclare.
15113         (struct cpp_reader): New members op_stack, op_limit.
15114         (struct lexer_state): New member skip_eval.
15115         (_cpp_parse_expr): Update.
15116         (_cpp_expand_op_stack): New.
15117         * cpplib.c (do_if): Update.
15118         * cppinit.c (cpp_create_reader): Create op stack.
15119         (cpp_destroy): And destroy it.
15120         * cpplib.h (CPP_LAST_CPP_OP): Correct.
15121         (TTYPE_TABLE): Correct.
15122
15123 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15124
15125         PR c/6343
15126         * c-decl.c (duplicate_decls): Call merge_weak.
15127         * c-pragma.c (apply_pragma_weak): Warn about misuse.
15128         * output.h (merge_weak): Prototype merge_weak.
15129         * varasm.c (merge_weak): New function.
15130         (declare_weak): Make sure we don't give an error on VAR_DECLs.
15131         Mark RTL with SYMBOL_REF_WEAK.
15132
15133 2002-04-27  Kurt Garloff <garloff@suse.de>
15134
15135         * tree-inline.c (inlinable_function_p): Improve heuristics
15136         by using a smoother function to cut down allowable inlinable size.
15137         * param.def: Add parameters max-inline-insns-single,
15138         max-inline-slope, min-inline-insns that determine the exact
15139         shape of the above function.
15140         * param.h: Likewise.
15141
15142 2002-04-26  Richard Henderson  <rth@redhat.com>
15143
15144         * c-parse.in (malloced_yyss, malloced_yyvs): New.
15145         (yyoverflow): Re-add.  Set them.
15146         (free_parser_stacks): New.
15147         * c-common.h: Declare it.
15148         * c-lex.c (c_common_parse_file): Call it.
15149
15150 2002-04-26  Richard Henderson  <rth@redhat.com>
15151
15152         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
15153         for fallthru search.
15154
15155 2002-04-26  Eric Christopher  <echristo@redhat.com>
15156
15157         PR optimization/3700
15158         * config/mips/mips.c (mips_issue_rate): Define.  New function.
15159         (TARGET_SCHED_ISSUE_RATE): Use.
15160
15161 2002-04-25  David S. Miller  <davem@redhat.com>
15162
15163         PR target/6422
15164         * reorg.c (optimize_skip): Do not allow exception causing
15165         instructions to be considered for delay slots.
15166         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
15167         (relax_delay_slots): Do not try to consider exception causing
15168         instructions as redundant.
15169
15170 2002-04-26  Richard Henderson  <rth@redhat.com>
15171
15172         PR c/5225
15173         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
15174
15175 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
15176
15177         PR bootstrap/6445
15178         * config/i386/i386.md (untyped_call): Return the value in a float
15179         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
15180         TARGET_80387.
15181
15182 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
15183
15184         * tree.c (tree_int_cst_lt): Compare constants whose types differ
15185         in unsigned-ness correctly.
15186
15187 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15188
15189         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
15190         portable runtime model.
15191
15192 2002-04-26  Richard Henderson  <rth@redhat.com>
15193
15194         * c-parse.in (yyoverflow): Revert.
15195
15196 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
15197             Richard Henderson  <rth@redhat.com>
15198
15199         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
15200         result as temporary value.
15201
15202 2002-04-26  Richard Henderson  <rth@redhat.com>
15203
15204         PR c/3581
15205         * c-common.c (fix_string_type): Split out of ...
15206         (combine_strings): ... here.  Take a varray, not a tree list.
15207         (c_expand_builtin_printf): Use fix_string_type.
15208         * c-common.h: Update decls.
15209         * c-parse.in (string): Remove.  Update all uses to use STRING
15210         instead, and not call combine_strings.
15211         (yylexstring): New.
15212         (_yylex): Use it.
15213         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
15214         (build_asm_stmt): Likewise.
15215         * objc/objc-act.c (my_build_string): Use fix_string_type.
15216         (build_objc_string_object): Build varray for combine_strings.
15217
15218 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
15219
15220         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
15221         x86-64.
15222
15223 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
15224
15225         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
15226         (HAVE_NO_R_OPERAND): Remove.
15227         (HAVE_VALUE): Remove.
15228         (op_to_prio): Update.
15229         (UNARY): Don't alter flags.
15230         (_cpp_parse_expr): want_value used to indicate whether
15231         a number or unary operator is expected next.  Distinguish
15232         unary and binary +/-.
15233         (op_as_text): Update for unary operators.
15234
15235 2002-04-25  Richard Henderson  <rth@redhat.com>
15236
15237         PR c/2161
15238         * c-parse.in (yyoverflow): New.
15239
15240 2002-04-25  Richard Henderson  <rth@redhat.com>
15241
15242         PR c/2098
15243         * c-common.c (shorten_compare): Simplfy conditions leading to
15244         the generation of a warning.
15245
15246 2002-04-25  Richard Henderson  <rth@redhat.com>
15247
15248         PR c/2035
15249         * expmed.c (extract_bit_field): Fall through to generic code rather
15250         than aborting on subreg special case.
15251
15252 2002-04-25  David S. Miller  <davem@redhat.com>
15253
15254         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
15255         for DECL being NULL.
15256
15257 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
15258
15259         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
15260
15261 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
15262
15263         * c-decl.c (grokdeclarator): Remove outdated ??? note
15264         on invalid declaration of flexible array members.
15265
15266 2002-04-25  Richard Henderson  <rth@redhat.com>
15267
15268         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
15269
15270 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
15271
15272         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
15273         needed by the compiler, even if they are used as global regs.
15274
15275 2002-04-25  Matt Hiller  <hiller@redhat.com>
15276
15277         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
15278         functions.
15279         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
15280         of the corresponding functions.
15281         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
15282         New prototypes.
15283
15284 2002-04-25  Matt Hiller  <hiller@redhat.com>
15285
15286         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
15287
15288         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
15289         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
15290         registers, adjust comment accordingly.
15291         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
15292         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
15293         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
15294         for coprocessor registers.
15295         (ADDITIONAL_REGISTER_NAMES): Include
15296         ALL_COP_ADDITIONAL_REGISTER_NAMES.
15297
15298         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
15299         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
15300         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
15301         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
15302         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
15303
15304         (mips_char_to_class): Adjust comment to include coprocessor
15305         constraint letters.
15306
15307         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
15308         New functions.
15309         (mips_reg_names, mips_regno_to_class): Include coprocessor
15310         information.
15311         (mips_sw_reg_names): Ditto, make non-static.
15312         (mips_move_1word): Handle moves to and from coprocessor registers.
15313         (mips_move_2words): Handle moves to and from coprocessor
15314         registers.
15315         (mips_class_max_nregs, mips_register_move_cost): Handle
15316         coprocessor register classes.
15317         (override_options): Initialize mips_char_to_class and
15318         mips_hard_regno_mode_ok properly for coprocessor registers.
15319
15320         * config/mips/mips.md (movdi_internal, movdi_internal2,
15321         movsi_internal1, movsi_internal2): Add constraint-sets for
15322         coprocessor registers.
15323         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
15324         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
15325         isn't mips.
15326         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
15327         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
15328         isn't mips.
15329         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
15330         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
15331         isn't mips.
15332         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
15333         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
15334         isn't mips.
15335
15336         * doc/tm.texi: Document feature.
15337
15338 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
15339
15340         * integrate.c (function_attribute_inlinable_p): Simplify.
15341         Check the table pointer is not NULL.
15342
15343 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
15344
15345         * doc/c-tree.texi: Fix typo in introduction.
15346
15347 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
15348
15349         * c-common.h (c_common_parse_file): Update.
15350         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
15351         * c-lex.c (YYDEBUG): Get from c-lex.h.
15352         (c_common_parse_file): Update.
15353         * c-lex.h (YYDEBUG, yydebug): New.
15354         * c-parse.in (YYDEBUG): Get from c-lex.h.
15355         (c_set_yydebug): Remove.
15356         * c-tree.h (c_set_yydebug): Remove.
15357         * langhooks-def.h (lhd_do_nothing_i): New.
15358         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
15359         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
15360         * langhooks.c  (lhd_do_nothing_i): New.
15361         (lhd_set_yydebug): Remove.
15362         * langhooks.h (struct lang_hooks): Update.
15363         * toplev.c (set_yydebug): New.
15364         (compile_file): Update call to parse_file hook.
15365         (decode_d_option): Update.
15366 objc:
15367         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
15368
15369 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
15370
15371         * loop.c (load_mems): Don't change the interface of called functions.
15372
15373         * calls.c (expand_call): Take current_function_pretend_args_size
15374         into account when setting argblock for sibcalls.
15375
15376 2002-04-24  Matt Hiller  <hiller@redhat.com>
15377
15378         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
15379         * c-lex.c: Ditto.
15380
15381         * cpplex.c (skip_line_comment): Process comment one multibyte
15382         character at a time rather than one char at a time, if
15383         appropriate.
15384         (parse_string): Process string one multibyte character at a time
15385         rather than one char at a time, if appropriate.
15386         * c-lex.c (lex_string): Lex and copy multibyte strings
15387         appropriately.
15388         * cpplib.h (cppchar_t): Change to unsigned.
15389
15390 2002-04-24  Richard Henderson  <rth@redhat.com>
15391
15392         PR c/3467
15393         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
15394         for c99.
15395
15396 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
15397
15398         * sh.c (sh_va_arg): If argument was passed by reference,
15399         dereference the pointer.
15400
15401         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
15402
15403         * sh.md (divsi3_i4_media): Use match_operand for input values
15404         rather than hard registers.
15405         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
15406         unnecessarily through hard registers.  Keep copies of pseudo
15407         registers outside of the libcall sequence.
15408
15409         * sh.md (casesi_shift_media): Add modes.
15410
15411         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
15412         values in memory.
15413
15414 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
15415
15416         * attribs.c (c_common_attribute_table): Move table and handlers
15417         to c-common.c.
15418         (format_attribute_table, lang_attribute_table,
15419         lang_attribute_common): Remove.
15420         (init_attributes): Replace NULL pointers with pointers to the
15421         empty table.
15422         (handle_packed_attribute, handle_nocommon_attribute,
15423         handle_common_attribute, handle_noreturn_attribute,
15424         handle_noinline_attribute, handle_always_inline_attribute,
15425         handle_used_attribute, handle_unused_attribute,
15426         handle_const_attribute, handle_transparent_union_attribute,
15427         handle_constructor_attribute, handle_destructor_attribute,
15428         handle_mode_attribute, handle_section_attribute,
15429         handle_aligned_attribute, handle_weak_attribute,
15430         handle_alias_attribute, handle_visibility_attribute,
15431         handle_no_instrument_function_attribute, handle_malloc_attribute,
15432         handle_no_limit_stack_attribute, handle_pure_attribute,
15433         handle_deprecated_attribute, handle_vector_size_attribute,
15434         vector_size_helper): Move to c-common.c.
15435         * c-common.c (c_common_attribute_table,
15436         handle_packed_attribute, handle_nocommon_attribute,
15437         handle_common_attribute, handle_noreturn_attribute,
15438         handle_noinline_attribute, handle_always_inline_attribute,
15439         handle_used_attribute, handle_unused_attribute,
15440         handle_const_attribute, handle_transparent_union_attribute,
15441         handle_constructor_attribute, handle_destructor_attribute,
15442         handle_mode_attribute, handle_section_attribute,
15443         handle_aligned_attribute, handle_weak_attribute,
15444         handle_alias_attribute, handle_visibility_attribute,
15445         handle_no_instrument_function_attribute, handle_malloc_attribute,
15446         handle_no_limit_stack_attribute, handle_pure_attribute,
15447         handle_deprecated_attribute, handle_vector_size_attribute,
15448         vector_size_helper): Move from attribs.c.
15449         * c-common.h (c_common_attribute_table,
15450         c_common_format_attribute_table): New.
15451         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
15452         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
15453         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
15454         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
15455         (LANG_HOOKS_INITIALIZER): Update.
15456         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
15457         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
15458         * target.h: Update comment.
15459         * tree.c (default_target_attribute_table): Remove.
15460         * tree.h (default_target_attribute_table, format_attribute_table,
15461         lang_attribute_table, lang_attribute_common): Remove.
15462 objc:
15463         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
15464         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
15465
15466 2002-04-24  Jason Merrill  <jason@redhat.com>
15467
15468         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
15469         * dwarf2out.c (dwarf_attr_name): Support it.
15470         (gen_array_type_die): Emit it.
15471         (lookup_type_die): No special handling for VECTOR_TYPE.
15472         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
15473
15474 2002-04-24  Richard Henderson  <rth@redhat.com>
15475
15476         * config/mips/mips.md (movdi_usd): Renumber.
15477
15478 2002-04-24  David S. Miller  <davem@redhat.com>
15479
15480         PR target/6420
15481         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
15482         32-bit Sparc and current_function_returns_struct is true.
15483
15484 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
15485
15486         * loop.c (canonicalize_condition): Use gen_int_mode.
15487
15488 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
15489
15490         * config/rs6000/altivec.h: Cleanup file.  Add non individual
15491         variants.
15492         (vec_vaddubm): New.
15493         (vec_vadduhm): New.
15494         (vec_vadduwm): New.
15495         (vec_vaddfp): New.
15496         (vec_vaddcuw): New.
15497         (vec_vaddubs): New.
15498         (vec_vaddsbs): New.
15499         (vec_vadduhs): New.
15500         (vec_vadduws): New.
15501         (vec_vaddsws): New.
15502         (vec_vand): New.
15503         (vec_vandc): New.
15504         (vec_vavgub): New.
15505         (vec_vavgsb): New.
15506         (vec_vavguh): New.
15507         (vec_vavgsh): New.
15508         (vec_vavguw): New.
15509         (vec_vavgsw): New.
15510         (vec_vrfip): New.
15511         (vec_vcmpbfp): New.
15512         (vec_vcmpequb): New.
15513         (vec_vcmpequh): New.
15514         (vec_vcmpequw): New.
15515         (vec_vcmpeqfp): New.
15516         (vec_vcmpgefp): New.
15517         (vec_vcmpgtub): New.
15518         (vec_vcmpgtsb): New.
15519         (vec_vcmpgtuh): New.
15520         (vec_vcmpgtsh): New.
15521         (vec_vcmpgtuw): New.
15522         (vec_vcmpgtsw): New.
15523         (vec_vcmpgtfp): New.
15524         (vec_vcmpgefp): New.
15525         (vec_vcfux): New.
15526         (vec_vcfsx): New.
15527         (vec_vctsxs): New.
15528         (vec_vctuxs): New.
15529         (vec_vexptefp): New.
15530         (vec_vrfim): New.
15531         (vec_lvx): New.
15532         (vec_lvebx): New.
15533         (vec_lvehx): New.
15534         (vec_lde): Add vector float variant.
15535         (vec_lvewx): New.
15536         (vec_lvxl): New.
15537         (vec_vlogefp): New.
15538         (vec_vmaddfp): New.
15539         (vec_vmhaddshs): New.
15540         (vec_vmaxub): New.
15541         (vec_vmaxsb): New.
15542         (vec_vmaxuh): New.
15543         (vec_vmaxsh): New.
15544         (vec_vmaxuw): New.
15545         (vec_vmaxsw): New.
15546         (vec_vmaxsw): New.
15547         (vec_vmaxfp): New.
15548         (vec_vmrghb): New.
15549         (vec_vmrghh): New.
15550         (vec_vmrghw): New.
15551         (vec_vmrglb): New.
15552         (vec_vmrglh): New.
15553         (vec_vmrglw): New.
15554         (vec_vminub): New.
15555         (vec_vminsb): New.
15556         (vec_vminuh): New.
15557         (vec_vminsh): New.
15558         (vec_vminuw): New.
15559         (vec_vminsw): New.
15560         (vec_vminfp): New.
15561         (vec_vmladduhm): New.
15562         (vec_vmhraddshs): New.
15563         (vec_msumubm): New.
15564         (vec_vmsummbm): New.
15565         (vec_vmsumuhm): New.
15566         (vec_vmsumshm): New.
15567         (vec_vmsumuhs): New.
15568         (vec_vmsumshs): New.
15569         (vec_vmuleub): New.
15570         (vec_vmulesb): New.
15571         (vec_vmuleuh): New.
15572         (vec_vmulesh): New.
15573         (vec_vmuloub): New.
15574         (vec_mulosb): New.
15575         (vec_vmulouh): New.
15576         (vec_vmulosh): New.
15577         (vec_vnmsubfp): New.
15578         (vec_vnor): New.
15579         (vec_vor): New.
15580         (vec_vpkuhum): New.
15581         (vec_vpkuwum): New.
15582         (vec_vpkpx): New.
15583         (vec_vpkuhus): New.
15584         (vec_vpkshss): New.
15585         (vec_vpkuwus): New.
15586         (vec_vpkswss): New.
15587         (vec_vpkshus): New.
15588         (vec_vpkswus): New.
15589         (vec_vperm): New.
15590         (vec_vrefp): New.
15591         (vec_vrlb): New.
15592         (vec_vrlh): New.
15593         (vec_vrlw): New.
15594         (vec_vrfin): New.
15595         (vec_vrsqrtefp): New.
15596         (vec_vsel): New.
15597         (vec_vslb): New.
15598         (vec_vslh): New.
15599         (vec_vslw): New.
15600         (vec_vsldoi): New.
15601         (vec_vsl): New.
15602         (vec_vslo): New.
15603         (vec_vspltb): New.
15604         (vec_vsplth): New.
15605         (vec_vspltw): New.
15606         (vec_vspltisb): New.
15607         (vec_vspltish): New.
15608         (vec_vspltisw): New.
15609         (vec_vsrb): New.
15610         (vec_vsrh): New.
15611         (vec_vsrw): New.
15612         (vec_vsrab): New.
15613         (vec_vsrah): New.
15614         (vec_vsraw): New.
15615         (vec_vsr): New.
15616         (vec_vsro): New.
15617         (vec_stvx): New.
15618         (vec_stvebx): New.
15619         (vec_stvehx): New.
15620         (vec_stvewx): New.
15621         (vec_stvxl): New.
15622         (vec_vsububm): New.
15623         (vec_vsubuhm): New.
15624         (vec_vsubuwm): New.
15625         (vec_vsubfp): New.
15626         (vec_vsubcuw): New.
15627         (vec_vsububs): New.
15628         (vec_vsubsbs): New.
15629         (vec_vsubuhs): New.
15630         (vec_vsubshs): New.
15631         (vec_vsubuws): New.
15632         (vec_vsubsws): New.
15633         (vec_vsum4ubs): New.
15634         (vec_vsum4sbs): New.
15635         (vec_vsum4shs): New.
15636         (vec_vsum2sws): New.
15637         (vec_vsumsws): New.
15638         (vec_vrfiz): New.
15639         (vec_vupkhsb): New.
15640         (vec_vupkhpx): New.
15641         (vec_vupkhsh): New.
15642         (vec_vupklsb): New.
15643         (vec_vupklpx): New.
15644         (vec_vupklsh): New.
15645         (vec_vxor): New.
15646
15647 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
15648
15649         PR c/5430
15650         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
15651         added literals from substracted literals.
15652         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
15653         (fold) [associate]: Preserve MINUS_EXPR if needed.
15654
15655 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
15656
15657         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
15658         are obsoleted.
15659
15660 2002-04-23  Tom Tromey  <tromey@redhat.com>
15661
15662         * gcc.c: Added --resource.  For PR java/6314.
15663
15664 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
15665
15666         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
15667         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
15668         these libraries.
15669
15670 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
15671
15672         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
15673
15674 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
15675
15676         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
15677         workaround.
15678         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
15679         (ix86_expand_clrstr): Fix typo.
15680         * loop.c (gen_load_of_final_value): New.
15681         (loop_givs_rescan, strength_reduce, check_dbra_loop):
15682         Use it.
15683
15684 2002-04-23  Roger Sayle  <roger@eyesopen.com>
15685
15686         * builtins.c (builtin_memset_gen_str): New function.
15687         (expand_builtin_memset): Optimize the case of constant length, but
15688         unknown value.
15689
15690 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
15691
15692         * config/rs6000/altivec.h (vec_step): Remove extraneous
15693         parentheses.
15694         (vec_ctu): Cast return.
15695
15696 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
15697
15698         PR target/6413
15699         * function.h: (struct function): Add profile_label_no field.
15700         (current_function_profile_label_no): Define.
15701         * function.c: (profile_label_no): New static var.
15702         (expand_function_start): Increment it, and copy to
15703         current_function_profile_label_no.
15704         * output.h (profile_label_no): Delete.
15705         * final.c (profile_label_no): Delete.
15706         (profile_function): Use current_function_profile_label_no.
15707         (final_end_function): Don't increment profile_label_no here.
15708         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
15709         profile_label_no with current_function_profile_label_no.
15710         * config/pa/pa.c (current_function_number): Delete.
15711         (pa_output_function_prologue): Don't output profile label here.
15712         (hppa_profile_hook): Use label_no param rather than
15713         current_function_number.
15714         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
15715         * config/pa/pa.h: .. here.
15716         (FUNCTION_PROFILER): Output profile label here.
15717
15718 2002-04-22  Eric Christopher  <echristo@redhat.com>
15719
15720         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
15721         patch of 2002-04-09 due to binutils issues.
15722         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
15723
15724 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
15725
15726         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
15727         constraint to 'o' for m=r and r=m alternatives.
15728         ("*movv8hi_internal1"): Same.
15729         ("*movv16qi_internal1"): Same.
15730         ("*movv4sf_internal1"): Same.
15731
15732 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
15733
15734         * rtl.h (RTX_FLAG): New macro.
15735         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
15736         * final.c (alter_subreg): Use macro to access rtx flag.
15737         * integrate.c (copy_rtx_and_substitute): Use new access macro.
15738         * print-rtl.c (print_rtx): Use new access macro.
15739
15740         * cse.c (insert): Check rtx code before accessing flag.
15741
15742         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
15743         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
15744         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
15745         convert_const_symbol_ref, make_canonical, make_alternative_compare,
15746         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
15747         simplify_test_exp, optimize_attrs, simplify_by_exploding,
15748         find_and_mark_used_attributes, unmark_used_attributes,
15749         add_values_to_cover, simplify_with_current_value,
15750         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
15751         copy_rtx_unchanging, main): Use new access macros.
15752
15753 2002-04-22  Tom Rix  <trix@redhat.com>
15754
15755         * expmed.c (init_expmed): Generate shifted constant once.
15756
15757 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
15758
15759         * c-lex.c (lex_charconst): Call convert to get constant in
15760         proper type; don't just smash the type field.
15761         Fixes PR c/6300.
15762
15763         * config.gcc: Add list of obsolete configurations.  Disallow
15764         building these without --enable-obsolete.
15765         * doc/install.texi: Document --enable-obsolete and obsoletion
15766         policy.  Mention obsoletion of individual targets in
15767         appropriate places.
15768
15769 2002-04-22  Richard Henderson  <rth@redhat.com>
15770
15771         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
15772
15773 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
15774
15775         PR f/6138.
15776         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
15777         (walk_fixup_memory_subreg): Likewise.
15778         (fixup_var_refs_insn): Adjust accordingly.
15779         (fixup_var_refs_1): Likewise.
15780
15781 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
15782
15783         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
15784         LIBPATH_ARCH64_SPEC): Define.
15785         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
15786         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
15787         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
15788         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
15789
15790 2002-04-22      Joel Sherrill <joel@OARcorp.com>
15791
15792         * gthr-rtems.h: Correct prototypes to remove warnings.
15793
15794 2002-04-22  Richard Henderson  <rth@redhat.com>
15795
15796         PR c/6344
15797         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
15798
15799         * gcse.c (free_insn_expr_list_list): New.
15800         (clear_modify_mem_tables): Use it.  Fix bit set usage.
15801         (canon_list_insert): Use EXPR_LISTs for expressions.
15802         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
15803
15804 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
15805
15806         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
15807         file change and include code to _cpp_pop_buffer.
15808         * cpphash.h (struct pending_option): Predeclare.
15809         (struct cpp_reader): New member next_include_file.
15810         (_cpp_pop_file_buffer): Update.
15811         (_cpp_push_next_buffer): Update, rename.
15812         * cppinit.c (cpp_destroy): Free include chain and pending here.
15813         (cpp_finish_options): Simplify.
15814         (_cpp_push_next_buffer): Rename and clean up.
15815         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
15816         Clarify.
15817         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
15818
15819 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
15820
15821         * config/rs6000/altivec.h (vec_xor): Add variant for both args
15822         being vector signed int.
15823         (vec_andc): Same.
15824         (vec_xor): Add variant for both args being vector signed char.
15825         Remove redundant variant.
15826         (vec_andc): Same.
15827
15828 2002-04-21  David S. Miller  <davem@redhat.com>
15829
15830         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
15831         compare mode in output RTL.
15832
15833 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
15834
15835         * config/rs6000/rs6000.c (rs6000_override_options): Correct
15836         style and formatting of previous patch.
15837
15838 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
15839
15840         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
15841         flag_pic for ABI_AIX.
15842
15843 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
15844
15845         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
15846         * cppfiles.c (read_include_file): Similarly.
15847         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
15848         uxstrdup ustrchr, ufputs): Similarly.
15849         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
15850         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
15851         cpp_ideq, parse_identifier, parse_number): Similarly.
15852         * cpplib.c (struct directive, dequote_string, D, run_directive,
15853         cpp_push_buffer): Similarly.
15854         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
15855         _cpp_create_definition, check_trad_stringification,
15856         cpp_macro_definition): Similarly.
15857
15858 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
15859
15860         * cppmacro.c (funlike_invocation_p): Don't step back
15861         over CPP_EOF.
15862
15863 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
15864
15865         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
15866         labelno.
15867
15868 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
15869
15870         * doc/invoke.texi: Remove Chill references.
15871         * doc/gcc.texi: Update last modified date.
15872
15873 2002-04-20  Kazu Hirata  <kazu@hxi.com>
15874
15875         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
15876         push and pop.  Replace add.l with add.w.
15877
15878 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
15879
15880         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
15881         multiply instructions for H8/300H case.
15882
15883 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
15884
15885         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
15886         Bum three instructions from each routine.
15887
15888 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
15889
15890         * Makefile.in: Update.
15891         * decl.c (push_c_function_context, pop_c_function_context,
15892         mark_c_function_context): Rename for consistency.
15893         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
15894         * c-tree.h (push_c_function_context, pop_c_function_context,
15895         mark_c_function_context): Rename for consistency.
15896         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
15897         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
15898         * function.c (init_lang_status, save_lang_status,
15899         restore_lang_status, mark_lang_status, free_lang_status):
15900         Move to langhooks.h.
15901         (push_function_context_to, pop_function_context_from,
15902         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
15903         Update.
15904         * function.h (init_lang_status, save_lang_status,
15905         restore_lang_status, mark_lang_status, free_lang_status):
15906         Move to langhooks.h.
15907         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
15908         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
15909         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
15910         LANG_HOOKS_FUNCTION_INITIALIZER): New.
15911         (LANG_HOOKS_INITIALIZER): Update.
15912         (lhd_do_nothing_f): New.
15913         * langhooks.h (struct lang_hooks_for_functions): New.
15914         (struct lang_hooks): New hooks.
15915         * langhooks.c (lhd_do_nothing_f): New.
15916 objc:
15917         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
15918         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
15919
15920 2002-04-19  David S. Miller  <davem@redhat.com>
15921
15922         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
15923         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
15924
15925 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
15926
15927         PR optimization/3756
15928         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
15929         x = ((int) y < 0) ? cst1 : cst2.
15930
15931 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
15932
15933         PR c/6358
15934         * function.c: Reapply patch for c/6358.
15935         (expand_function_end): Copy decl_rtl's mode, not
15936         current_function_return_rtx mode.
15937
15938 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
15939
15940         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
15941         targets.
15942
15943 2002-04-19  Tom Tromey  <tromey@redhat.com>
15944
15945         * doc/install.texi (Specific): Update status of Solaris 2.8.
15946         For PR libgcj/6158.
15947
15948 2002-04-19  Andreas Schwab  <schwab@suse.de>
15949
15950         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
15951         (PUT_REAL): Restore old definition.
15952
15953 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
15954             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15955
15956         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
15957         binutils 2.11.2 and higher generate smaller binaries than Sun's
15958         native tools.
15959
15960 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
15961
15962         PR c++/6352
15963         * toplev.c (rest_of_compilation): Do not defer functions for which
15964         TREE_SYMBOL_REFERENCED has already been set.
15965
15966 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
15967
15968         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
15969         alternative.
15970
15971 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
15972
15973         * builtins.c: Include langhooks.h.
15974         (lang_type_promotes_to): Remove.
15975         (expand_builtin_va_arg): Use new hook.
15976         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
15977         (simple_type_promotes_to): Move to c-typeck.c.
15978         * c-common.h (simple_type_promotes_to): Remove.
15979         * c-decl.c (duplicate_decls, grokdeclarator): Update.
15980         * c-format.c: Include langhooks.h.
15981         (check_format_types): Update.
15982         * c-tree.h (c_type_promotes_to): New.
15983         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
15984         (type_lists_compatible_p): Update.
15985         * langhooks-def.h (lhd_type_promotes_to): New.
15986         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
15987         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
15988         * langhooks.c (lhd_type_promotes_to): New.
15989         * langhooks.h (struct lang_hooks_for_types): New hook.
15990         * tree.h (lang_type_promotes_to): Remove.
15991 objc:
15992         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
15993
15994 2002-04-18  Richard Henderson  <rth@redhat.com>
15995
15996         * function.c: Revert patch for c/6358.
15997
15998 2002-04-18  Richard Henderson  <rth@redhat.com>
15999
16000         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
16001         blocks.  Handle multiple references to the TRAP block.  Handle
16002         non-adjacent THEN and OTHER blocks.
16003
16004 2002-04-18  Richard Henderson  <rth@redhat.com>
16005
16006         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
16007         crash with no type for by-mode libcalls.
16008
16009         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
16010
16011 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
16012
16013         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
16014         __xtensa_nonlocal_goto): Use a syscall instructions to flush
16015         the register windows.
16016
16017 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
16018
16019         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
16020         appropriate.  Document need for extended precision even when
16021         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
16022         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
16023         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
16024         instead of relying on later syntax error when REAL_WIDTH > 5.
16025         * real.c: Define NE based only on whether or not we have a
16026         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
16027         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
16028         define GET_REAL and PUT_REAL as simple memcpy operations; no
16029         need to byteswap or round.
16030         Use #error instead of #ifdef-ing out the entire file, for
16031         prompt error detection.
16032
16033         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
16034
16035 2002-04-18  David S. Miller  <davem@redhat.com>
16036
16037         * config/sparc/sparc.h (BRANCH_COST): Define.
16038
16039         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
16040         does it.
16041
16042 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
16043
16044         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
16045         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
16046         propagate_block calls after relaxation loop using new variable
16047         stabilized_prop_flags.
16048
16049 2002-04-18  Richard Henderson  <rth@redhat.com>
16050
16051         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
16052         (ia64_va_arg): Expect variable sized types by reference.
16053         * config/ia64/ia64-protos.h: Update.
16054         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
16055         ia64_function_arg_pass_by_reference.
16056
16057 2002-04-18  Richard Henderson  <rth@redhat.com>
16058
16059         * ifcvt.c: Include except.h.
16060         (block_has_only_trap): Break out from find_cond_trap.
16061         (find_cond_trap): Use it.  Always delete the trap block.
16062         (merge_if_block): Allow then block null.  Be less simplistic about
16063         what insns can end a block.
16064         * Makefile.in (ifcvt.o): Depend on except.h.
16065
16066         * config/ia64/ia64.md (trap, conditional_trap): New.
16067
16068 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
16069
16070         PR c/6358
16071         * function.c (assign_parms): Assign hard current_function_return_rtx
16072         register here...
16073         (expand_function_end): ...not here.
16074
16075 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
16076
16077         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
16078         * c-tree.h (c_incomplete_type_error): New.
16079         * c-typeck.c (require_complete_type, build_component_ref): Update.
16080         (incomplete_type_error): Rename.
16081         * langhooks-def.h (lhd_incomplete_type_error): New.
16082         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
16083         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
16084         * langhooks.c (lhd_incomplete_type_error): New.
16085         * langhooks.h (struct lang_hooks_for_types): New hook.
16086         * tree.c (size_in_bytes): Use new hook.
16087         * tree.h (incomplete_type_error): Remove.
16088 objc:
16089         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
16090
16091 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
16092
16093         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
16094         TARGET_FLOAT_FORMAT blocks.
16095
16096 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16097
16098         * doc/install.texi (Downloading the source): Do not mention Chill
16099         any longer, but mention Ada.
16100         (Configuration): Do not mention Chill any longer.
16101
16102 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
16103
16104         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
16105
16106 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
16107
16108         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
16109         in last patch.
16110
16111 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
16112
16113         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
16114         instead of unsigned_type.
16115
16116 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
16117
16118         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
16119         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
16120         later.
16121
16122 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
16123
16124         * attribs.c (vector_type_node_list): New static variable.
16125         (handle_vector_size_attribute): Use it to avoid generating a
16126         new type node each time we are called.
16127
16128         * combine.c (subst): Avoid trying to make a vector mode subreg of
16129         an integer constant.
16130         (gen_lowpart_for_combine): Likewise.
16131
16132 2002-04-18  Roger Sayle  <roger@eyesopen.com>
16133             Jakub Jelinek  <jakub@redhat.com>
16134
16135         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
16136         for integer constant c (if x has unsigned type or sign bit is not
16137         set in c).  This folds the zero/sign extension into the bit-wise and
16138         operation.
16139
16140 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
16141
16142         PR middle-end/6205
16143         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
16144         otherwise xorps.
16145
16146 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
16147
16148         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
16149
16150 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
16151
16152         * gcc.c (read_specs): Detect and fail if an attempt is made to
16153         rename a spec string to an already existing string.
16154
16155 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
16156
16157         * config/s390/s390.c (legitimize_pic_address): Do not generate
16158         illegal address constant without CONST.
16159
16160 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16161
16162         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
16163         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
16164
16165 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
16166
16167         PR optimization/6305
16168         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
16169         to make sure previous reloads are taken into account.  Generate
16170         better code if one operand is an in-range immediate constant.
16171
16172 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
16173
16174         * doc/install.texi (Building): libgcj requires GNU make.
16175
16176 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
16177
16178         PR bootstrap/6315
16179         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
16180         even if hard quad and register is not floating.
16181         (movtf reg<-mem split): Disallow splitting if hard quad and
16182         register is floating.
16183         (movtf mem<-reg split): Likewise.
16184         * config/sparc/sparc.c (fp_register_operand): New predicate.
16185         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
16186
16187 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
16188
16189         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
16190         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
16191         (unprotoize.o): Ditto.  Build from protoize.c.  Define
16192         UNPROTOIZE on command line.
16193         * protoize.c: Include cppdefault.h.  Delete include_defaults.
16194         (in_system_include_dir): Use cpp_include_defaults (defined in
16195         cppdefault.o).
16196         * unprotoize.c: Delete file.
16197
16198 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
16199
16200         * config/rs6000/altivec.h (vec_ld): Add array variants.
16201         (vec_lde): Same.
16202         (vec_ldl): Same.
16203
16204 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
16205             Aldy Hernandez <aldyh@redhat.com>
16206
16207         * config/rs6000/altivec.h: Define __ALTIVEC__.
16208         (bool): New.
16209         (__pixel): New.
16210         (pixel): New.
16211         (vec_cfux): New.
16212         (vec_vmaddfp): New.
16213         (vec_vsldoi): New.
16214         Add parentheses to all macro arguments.
16215
16216 2002-04-16  Richard Henderson  <rth@redhat.com>
16217
16218         PR c++/6320
16219         * except.c (remove_eh_handler): Insert inner regions at beginning
16220         of sibling chain.  Refactor expressions.
16221
16222 2002-04-16  Richard Henderson  <rth@redhat.com>
16223
16224         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
16225         * config/sparc/sol2-gas-bi.h: New file.
16226         * config.gcc (sparc*-solaris): Add it as needed.
16227         * configure.in (AS_SPARC64_FLAG): Remove check.
16228         * config.in, configure: Regenerate.
16229
16230         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
16231
16232 2002-04-16  Richard Henderson  <rth@redhat.com>
16233
16234         * config/mips/mips.c (override_options): Don't override N32 for
16235         a 64-bit ISA.
16236
16237         PR 6202
16238         * config/mips/mips.md (can_delay): Split out of existing define_delays.
16239         (HILO_delay): Set can_delay false.
16240
16241 2002-04-16  Dale Johannesen <dalej@apple.com>
16242
16243         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
16244         instruction addresses.
16245         (rs6000_output_function_epilogue): Likewise.
16246
16247 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
16248
16249         * c-parse.in (poplevel, compstmt_start,
16250         compstmt_primary_start): Add ending ';', in accordance
16251         with POSIX.
16252
16253 2002-04-16  Richard Henderson  <rth@redhat.com>
16254
16255         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
16256         Adjust tm_file order to get TARGET_DEFAULT set properly.
16257         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
16258         * doc/install.texi (sparc-solaris): Update.
16259
16260 2002-04-16  Dale Johannesen <dalej@apple.com>
16261
16262         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
16263         comparison operands do not match each other or if modes of
16264         conditions do not match result.
16265
16266 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
16267
16268         PR target/6305
16269         * config/s390/s390.md (mulsidi3): Set both subregs of the
16270         multiword register.
16271
16272 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
16273
16274         * config/rs6000/altivec.h (vec_addc): Type check.
16275
16276 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
16277
16278         PR middle-end/6279
16279         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
16280
16281         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
16282
16283 2002-04-15  Richard Henderson  <rth@redhat.com>
16284
16285         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
16286         call_really_used_regs too.
16287
16288 2002-04-15  Richard Henderson  <rth@redhat.com>
16289
16290         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
16291
16292 2002-04-15  David S. Miller  <davem@redhat.com>
16293
16294         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
16295         as being CLOBBERed.
16296
16297 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
16298
16299         PR c/6290
16300         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
16301         CONST_VECTOR is { 0, ... 0 }.
16302
16303 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
16304
16305         * doc/install.texi (Installing GCC: Configuration): Clarify
16306         the only supported ways to configure gcc.
16307
16308 2002-04-15  Roland McGrath  <roland@frob.com>
16309
16310         * config.gcc (alpha*-*-gnu*): New target configuration.
16311         * config/alpha/gnu.h: New file for it.
16312         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
16313
16314 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
16315
16316         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
16317         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
16318         * tree.h (expand_start_stmt_expr): Update prototype.
16319         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
16320         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
16321         on the STMT_EXPR created for the inline function.
16322
16323 2002-04-15  Richard Henderson  <rth@redhat.com>
16324
16325         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
16326         config/i386/linux-aout.h, config/i386/linux-oldld.h,
16327         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
16328         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
16329         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
16330         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
16331         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
16332         Define __gnu_linux__, not gnu_linux.
16333         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
16334
16335 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
16336
16337         Remove Chill front end.
16338         * gcc.c (default_compilers): Remove Chill entries.
16339         * ch: Remove directory.
16340         * doc/frontends.texi: Remove information about Chill.
16341         * doc/sourcebuild.texi: Likewise.
16342         * doc/standards.texi: Likewise.
16343
16344 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
16345
16346         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
16347         (LONGLONG_STANDALONE): Define.
16348
16349 2002-04-15  David S. Miller  <davem@redhat.com>
16350
16351         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
16352         Call emit_library_call with LCT_NORMAL.
16353         (sparc_initialize_trampoline): Use LCT_foo instead of
16354         magic constant in emit_library_call invocations.
16355         (sparc64_initialize_trampoline): Likewise.
16356         (sparc_profile_hook): Likewise.
16357         * config/sparc/sparc.md: Likewise.
16358
16359         * config/sparc/sparc.c (sparc_extra_constraint_check):
16360         Fix type of argument 'c'.
16361         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
16362         Likewise.
16363
16364 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
16365
16366         * diagnostic.h (output_buffer_state): Redefine.
16367         (output_format_decoder): New macro.
16368         (output_prefixing_rule): Likewise.
16369         (output_line_cutoff): Likewise.
16370         (diagnostic_format_decoder): Adjust.
16371         (diagnostic_prefixing_rule): Likewise.
16372         (diagnostic_line_cutoff): Likewise.
16373         (diagnostic_state): Likewise.
16374         (diagnostic_kind_count): Likewise.
16375         (diagnostic_buffer): Now a macro.
16376
16377         * diagnostic.c (diagnostic_buffer): Remove definition.
16378         (output_is_line_wrapping): Adjust.
16379         (set_real_maximum_length): Likewise.
16380         (output_set_maximum_length): Likewise.
16381         (init_output_buffer): Likewise.
16382         (lhd_print_error_function): Likewise.
16383         (output_do_verbatim): Likewise.
16384
16385 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
16386
16387         * cpperror.c (print_location): Don't print include chain
16388         if line == 0.
16389         (cpp_begin_message): Update to use DL_ macros.
16390         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
16391         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
16392         cpp_notice, cpp_notice_from_errno): Remove.
16393         (cpp_error, cpp_error_with_line): Update to take a diagnostic
16394         level.
16395         (cpp_errno): New.
16396         * cppexp.c (CPP_ICE): Remove.
16397         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
16398         lex, integer_overflow, _cpp_parse_expr): Update.
16399         * cppfiles.c (read_include_file, find_include_file,
16400         handle_missing_header, _cpp_read_file, remap_filename): Update.
16401         * cpphash.h (enum error_type): Remove.
16402         (_cpp_begin_message): Update.
16403         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
16404         cpp_handle_option, cpp_post_options): Update.
16405         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
16406         skip_whitespace, parse_identifier, parse_slow, parse_string,
16407         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
16408         cpp_interpret_charconst): Update.
16409         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
16410         lex_macro_node, do_undef, glue_header_name, parse_include,
16411         do_include_common, read_flag, do_line, do_linemarker, do_ident,
16412         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
16413         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
16414         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
16415         _cpp_pop_buffer, do_diagnostic): Update.
16416         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
16417         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
16418         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
16419         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
16420         cpp_notice, cpp_notice_from_errno): Remove.
16421         (cpp_error, cpp_error_with_line): Update to take a diagnostic
16422         level.
16423         (cpp_errno): New.
16424         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
16425         collect_args, enter_macro_context, save_parameter, parse_params,
16426         _cpp_create_definition, check_trad_stringification,
16427         cpp_macro_definition): Update.
16428         * cppmain.c (cpp_preprocess_file): Update.
16429         * fix-header.c (read_scan_file): Update.
16430
16431 2002-04-14  Andreas Schwab  <schwab@suse.de>
16432
16433         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
16434
16435 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
16436
16437         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
16438
16439 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
16440
16441         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
16442         not gnu_hurd.
16443
16444 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
16445
16446         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
16447
16448 2002-04-13      Joel Sherrill <joel@OARcorp.com>
16449
16450         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
16451         sparc-elf and sparc-rtems targets.
16452
16453 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
16454
16455         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
16456         defined, and __gnu_hurd__ wherever __GNU__ is defined.
16457         * arm/linux-elf.h: Likewise.
16458         * cris/aout.h: Likewise.
16459         * cris/linux.h: Likewise.
16460         * i370/linux.h: Likewise.
16461         * i386/gnu.h: Likewise.
16462         * i386/linux-aout.h: Likewise.
16463         * i386/linux-oldld.h: Likewise.
16464         * i386/linux.h: Likewise.
16465         * i386/linux64.h: Likewise.
16466         * ia64/linux.h: Likewise.
16467         * m68k/linux-aout.h: Likewise.
16468         * m68k/linux.h: Likewise.
16469         * mips/linux.h: Likewise.
16470         * pa/pa-linux.h: Likewise.
16471         * pj/linux.h: Likewise.
16472         * rs6000/sysv4.h: Likewise.
16473         * s390/linux.h: Likewise.
16474         * sh/linux.h: Likewise.
16475         * sparc/linux-aout.h: Likewise.
16476         * sparc/linux.h: Likewise.
16477         * sparc/linux64.h: Likewise.
16478         * xtensa/linux.h: Likewise.
16479
16480 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
16481
16482         * stmt.c (check_unique_operand_names): Expect operand names to
16483         be strings rather than identifiers.  Use simple_cst_equal to
16484         compare them.
16485         (resolve_operand_name_1): Make same identifier to string change here.
16486         * c-parse.in (asm_operand): Convert a named operand into a string.
16487         * cp/parse.y (asm_operand): Likewise.
16488
16489 2002-04-13  Andreas Schwab  <schwab@suse.de>
16490
16491         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
16492
16493 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
16494
16495         Revert these changes:
16496
16497         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
16498
16499         PR c++/5571
16500         * stor-layout.c (layout_decl): Reset the RTL for the decl.
16501
16502 2002-04-12  Richard Henderson  <rth@redhat.com>
16503
16504         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
16505         (sparc*-*-solaris): Clean up header files.
16506         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
16507         and plan on generating 64-bit code.
16508         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
16509         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
16510         * config/sparc/sol2-sld-64.h: Rename ...
16511         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
16512         for AS_SPARC64_FLAG not defined.
16513         * config/sparc/sol2-gld-bi.h: New.
16514         * config/sparc/sol2-sld.h: Remove.
16515         * config/sparc/sol26-sld.h: New.
16516         * config/sparc/sol2.h: Tidy comments.
16517         * doc/install.texi: Document sparc-solaris configury changes.
16518
16519 2002-04-12  Richard Henderson  <rth@redhat.com>
16520
16521         * recog.c (offsettable_address_p): Match the logic in adjust_address.
16522
16523         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
16524         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
16525
16526 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16527
16528         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
16529
16530 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
16531
16532         * pa.c (pa_can_combine_p): Call extract_insn before calling
16533         constrain_operands.
16534
16535 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
16536
16537         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
16538         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
16539         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
16540         (CPP_PREDEFINES): Handle __declspec.
16541         * config/i386/t-interix (USER_H): Remove.
16542
16543 2002-04-12  DJ Delorie  <dj@redhat.com>
16544
16545         * integrate.c (compare_blocks): Make comparisons safe for when
16546         sizeof(int) < sizeof(char *).
16547         (find_block): Likewise.
16548
16549 2002-04-12  Jan Hubicka  <jh@suse.cz>
16550             David Edelsohn  <edelsohn@gnu.org>
16551
16552         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
16553         registers.
16554         (symbol_ref_operand): New.
16555         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
16556         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
16557
16558 2002-04-12  Andreas Schwab  <schwab@suse.de>
16559
16560         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
16561         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
16562         overrides the definition in config/svr4.h.
16563
16564 2002-04-12      Eric Norum <eric.norum@usask.ca>
16565
16566         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
16567         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
16568         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
16569         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
16570         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
16571         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
16572         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
16573         definitions to config/rtems.h and make the targets more similar.
16574
16575 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16576
16577         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
16578         POINTERS_EXTEND_UNSIGNED.
16579         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
16580         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
16581
16582         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
16583         not specified.
16584
16585 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
16586
16587         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
16588         depends on TARGET_SHMEDIA, not TARGET_SH5.
16589
16590 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
16591
16592         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
16593         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
16594
16595 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
16596
16597         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
16598         no r0 clobber.
16599
16600 2002-04-12  Andreas Schwab  <schwab@suse.de>
16601
16602         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
16603
16604 2002-04-12  Richard Henderson  <rth@redhat.com>
16605
16606         PR bootstrap/4191
16607         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
16608
16609         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
16610         modes spanning multiple hard regs.
16611
16612         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
16613
16614 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16615
16616         * pa.c (pa_output_function_prologue): Don't accumulate the total
16617         number of code bytes when using TARGET_64BIT, or gas, SOM and not
16618         the portable runtime.
16619         (output_deferred_plabels): Handle 64bit plabels.
16620         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
16621         generating pic code using the GAS assembler for object formats that
16622         are not SOM (ie., ELF32 and ELF64).
16623         (output_millicode_call): Check attribute type if attribute length is 28.
16624         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
16625         dbr_sequence_length once.
16626         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
16627         dbr_sequence_length once.
16628         * pa.h (TARGET_SOM): Define if not defined.
16629         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
16630         with GAS and not SOM.
16631         (jump, call_internal_reg, call_value_internal_reg): Likewise.
16632         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
16633
16634 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
16635
16636         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
16637         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
16638         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
16639         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
16640         elfos.h and dbxelf.h values are fine now.
16641         * config/i386/freebsd.h, config/alpha/freebsd.h
16642         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
16643
16644 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
16645
16646         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
16647         or set Acpu or Amachine.  Reformat.
16648         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
16649         define.
16650         (LINK_SPEC): Do not need to undef.
16651         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
16652         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
16653         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
16654         define.
16655         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
16656         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
16657         (LINK_SPEC): Do not need to undef.
16658         (DONT_USE_BUILTIN_SETJMP): Do not define.
16659         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
16660         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
16661         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
16662         Remove trailing spaces.
16663         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
16664         __ELF__, or set Acpu or Amachine.  Reformat.
16665         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
16666         define.
16667
16668 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
16669
16670         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
16671         all other *-*-freebsd* targets.
16672
16673 2002-04-11  Richard Henderson  <rth@redhat.com>
16674
16675         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
16676
16677 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
16678
16679         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
16680         Include {cpu}/{cpu}.h thru tm_file.
16681         (alpha*-*-linux*ecoff): Remove target.
16682         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
16683         (LINK_SPEC): Remove, is not OS independent.
16684         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
16685         (LINK_SPEC): Do not need to #undef any longer.
16686         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
16687         any longer.
16688         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
16689         __ELF__.
16690         (LINK_SPEC): Moved here from alpha/elf.h.
16691         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
16692         SUB_CPP_PREDEFINES.
16693         * config/alpha/linux-ecoff.h: Remove.
16694         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
16695         (CPP_SPEC): Define _POSIX_SOURCE as needed.
16696         (CPP_SUBTARGET_SPEC): Do not define.
16697         (LINK_SPEC): Do not need to #undef any longer.
16698         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
16699         * config/alpha/vms.h: Likewise.
16700
16701 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
16702
16703         * doc/extend.texi: Remove old claim that typedefs cannot have
16704         an alignment attribute.
16705
16706 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
16707
16708         PR optimization/6177
16709         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
16710         bitpos is 0 and bitsize CONCAT size.
16711
16712 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
16713
16714         PR c/6223
16715         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
16716
16717 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
16718
16719         * config/alpha/freebsd.h: Minor reformatting.
16720         (CPP_SPEC): Define ELF and add cpp_subtarget.
16721         (ASM_SPEC): No longer needed.
16722
16723 2002-04-11  Richard Henderson  <rth@redhat.com>
16724
16725         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
16726         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
16727         (dimode mem/zero splitter): New.
16728
16729 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
16730
16731         * config/cris/cris.c (cris_override_options): Tweak error message
16732         for PIC not implemented.
16733
16734         * config/cris/cris.h: Tweak comments related to parameter-passing.
16735
16736         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
16737
16738 2002-04-10  Richard Henderson  <rth@redhat.com>
16739
16740         * except.c (add_ehl_entry): Allow duplicates after landing pad
16741         creation.
16742
16743 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
16744
16745         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
16746
16747 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
16748
16749         * c-decl.c (c_init_decl_processing): Move generation of
16750         decls for g77_integer_type_node and friends from here ...
16751         * c-common.c (c_common_nodes_and_builtins): ... to here.
16752
16753 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
16754
16755         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
16756         is only used as frame pointer when frame_pointer_needed is true.
16757
16758 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
16759
16760         PR target/817
16761         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
16762         for the fact that the pool entry uses two words.
16763         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
16764         1k bytes.
16765         (movdf_soft_insn): Similarly.
16766         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
16767         for the fact that the pool entry uses three words.
16768
16769 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
16770
16771         * config/mips/mips.c (mips_va_arg): When using the struct version
16772         of the EABI va_list, allow arguments in the register save area to
16773         take up less room than a stack argument.
16774
16775 2002-04-10  Richard Henderson  <rth@redhat.com>
16776
16777         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
16778         if EXPAND_INITIALIZER.
16779
16780 2002-04-09  Richard Henderson  <rth@redhat.com>
16781
16782         * config/alpha/alpha.md (movdi_er_maybe_g): New.
16783         * config/alpha/alpha.c (alpha_expand_mov): Use it.
16784
16785 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
16786
16787         PR optimization/6233
16788         * rtlanal.c (pure_call_p): New function.
16789         * rtl.h (pure_call_p): Declare.
16790         * loop.c (prescan_loop): Use it to set has_nonconst_call.
16791         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
16792
16793 2002-04-09  Eric Christopher  <echristo@redhat.com>
16794
16795         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
16796         information to .comm directive.
16797
16798 2002-04-09  Richard Henderson  <rth@redhat.com>
16799
16800         PR c/5078
16801         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
16802
16803 2002-04-09  Richard Henderson  <rth@redhat.com>
16804
16805         * basic-block.h (flow_delete_block_noexpunge): Declare.
16806         (expunge_block_nocompact): Declare.
16807         * cfg.c (expunge_block_nocompact): Split out from ...
16808         (expunge_block): ... here.
16809         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
16810         (flow_delete_block_noexpunge): Split out from ...
16811         (flow_delete_block): ... here.
16812         * cfgcleanup.c (delete_unreachable_blocks): Compact while
16813         removing dead blocks.
16814         * except.c (exception_handler_labels): Remove.
16815         (exception_handler_label_map): New.
16816         (struct eh_region): Add aka member.
16817         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
16818         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
16819         (for_each_eh_label, for_each_eh_label_1): New.
16820         (init_eh): Register exception_handler_label_map.
16821         (free_eh_status): Use free_region.
16822         (find_exception_handler_labels): Use the map, not the list.
16823         (remove_exception_handler_label): Likewise.
16824         (maybe_remove_eh_handler): Likewise.
16825         (remove_eh_handler): Use the region aka bitmap.
16826         * except.h (exception_handler_labels): Remove.
16827         (for_each_eh_label): Declare.
16828         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
16829         * loop.c (invalidate_loops_containing_label): New.
16830         (find_and_verify_loops): Use it.  Use for_each_eh_label.
16831         * sched-rgn.c (is_cfg_nonregular): Use
16832         current_function_has_exception_handlers.
16833
16834 2002-04-09  Richard Henderson  <rth@redhat.com>
16835
16836         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
16837         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
16838         Do not return changed status.
16839         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
16840         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
16841         New functions that do return changed status.
16842         * sbitmap.h: Update decls.
16843         * gcse.c, lcm.c: Use _cg functions as needed.
16844
16845 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
16846
16847         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
16848         (sh64-*-elf*, sh-*-rtemself*): Likewise.
16849         * config/sh/embed_bb.c: New file.
16850         * config/sh/embed-elf.h: New file.
16851         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
16852         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
16853         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
16854         __PTRDIFF_TYPE__ .
16855         (SUBTARGET_CPP_PTR_SPEC): Don't define.
16856         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
16857         Add subtarget_asm_endian_spec.
16858         (ASM_SPEC): Use subtarget_asm_endian_spec.
16859         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
16860         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
16861         (WCHAR_UNSIGNED): Define.
16862         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
16863         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
16864         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
16865         Fix value.
16866         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
16867         (sh_adjust_cost): Likewise.
16868         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
16869         __PTRDIFF_TYPE__ .
16870         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
16871         (WCHAR_TYPE_SIZE): Likewise.
16872         (ASM_SPEC): Use subtarget_asm_endian_spec.
16873         (SH_ELF_WCHAR_TYPE): #undef/ #define.
16874         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
16875         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
16876         (MAX_WCHAR_TYPE_SIZE): Don't #define .
16877         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
16878         (USER_LABEL_PREFIX): Don't #undef /#define .
16879         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
16880         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
16881         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
16882         (ASM_SPEC): Likewise.
16883         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
16884         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
16885         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
16886         (LIB2FUNCS_EXTRA): Define.
16887         * t-sh64 (LIB2FUNCS_EXTRA): Define.
16888         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
16889         (LIB1ASMFUNCS_CACHE): Define.
16890         (LIB2FUNCS_EXTRA): Redefine empty.
16891
16892 2002-04-08  Richard Henderson  <rth@redhat.com>
16893
16894         * reorg.c (get_branch_condition): Use reversed_comparison_code.
16895
16896 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
16897
16898         * config/m68hc11/larith.asm (__map_data_section): Fix condition
16899         and optimize for size.
16900         (__do_global_ctors): Fix pointer comparison.
16901         (__do_global_dtors): Likewise.
16902
16903 2002-04-09  David S. Miller  <davem@redhat.com>
16904
16905         * config/sparc/sparc.c (sparc_extra_constraint_check): New
16906         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
16907         allow reloading pseudos.
16908         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
16909         * config/sparc/sparc-protos.h: Declare it.
16910
16911         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
16912         unsigned comparison warning.
16913         (output_restore_regs): Mark leaf_function as unused.
16914
16915 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16916
16917         * expr.c (is_aligning_offset): New function.
16918         (expand_expr, case COMPONENT_EXPR): Call it.
16919
16920 2002-04-08  David S. Miller  <davem@redhat.com>
16921
16922         PR target/6082
16923         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
16924
16925         Make init_priority work on Sparc when using GNU ld.
16926         * config/sparc/linux.h, config/sparc/linux64.h,
16927         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
16928         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
16929         * config/sparc/sol2-gld.h: New file to do the same.
16930         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
16931         sparc/sol2-gld.h to tm_file.
16932
16933         PR optimization/4328
16934         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
16935         * doc/md.texi: Document it.
16936         * config/sparc/sparc.md (movdi_insn_sp64_novis,
16937         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
16938         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
16939         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
16940         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
16941
16942 2002-04-08  Andreas Jaeger  <aj@suse.de>
16943
16944         * stmt.c (expand_asm_operands): Revert last patch from Richard
16945         Henderson.
16946
16947 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16948
16949         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
16950         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
16951
16952 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16953
16954         * doc/contrib.texi (Contributors): Add David O'Brien.
16955
16956 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
16957
16958         * configure.in (auto-build.h): Use target_alias and build_alias
16959         when running configure.
16960         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
16961         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
16962         * configure: Regenerate.
16963
16964 2002-04-07  David S. Miller  <davem@redhat.com>
16965
16966         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
16967
16968 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16969
16970         PR 5933
16971         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
16972         generating 32-bit pic code.
16973
16974 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
16975
16976         * cppinit.c (cpp_create_reader): Initialize
16977         discard_comments_in_macro_exp.
16978         (COMMAND_LINE_OPTIONS): Add "-CC" option.
16979         (cpp_handle_option): Handle "-CC" option.
16980         * cpplex.c (save_comment): If saving a C++ comment in
16981         a directive, convert it to a C comment.
16982         (_cpp_lex_direct): Pass second comment start character to
16983         save_comment to indicate comment type.
16984         * cpplib.c (_cpp_handle_directive): If processing
16985         a "#define" directive and discard_comments_in_macro_exp
16986         is false,  re-enable saving of comments.
16987         (lex_macro_node): If discard_comments_in_macro_exp is false,
16988         discard any comments before the macro identifier.
16989         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
16990         member.
16991         * cppmacro.c (cpp_get_token): If expanding a macro while
16992         processing a directive, discard any comments we might encounter.
16993         (parse_params): If discard_comments_in_macro_exp is false,
16994         ignore comments in the macro parameter list.
16995         * gcc.c (cpp_unique_options): Add "-CC" option.
16996         (option_map): Map "--comments-in-macros" to "-CC".
16997         * doc/cppopts.texi: Document "-CC" option.
16998         * f/lang-specs.h: Add "-CC" option.
16999         * testsuite/gcc.dg/cpp/maccom1.c: New test.
17000         * testsuite/gcc.dg/cpp/maccom2.c: New test.
17001         * testsuite/gcc.dg/cpp/maccom3.c: New test.
17002         * testsuite/gcc.dg/cpp/maccom4.c: New test.
17003         * testsuite/gcc.dg/cpp/maccom5.c: New test.
17004         * testsuite/gcc.dg/cpp/maccom6.c: New test.
17005
17006 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17007
17008         PR middle-end/6180
17009         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
17010
17011 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
17012
17013         PR c++/5571
17014         * stor-layout.c (layout_decl): Reset the RTL for the decl.
17015
17016         PR opt/5120
17017         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
17018         RTX_UNCHANGING_P for the functions arguments when a tail call
17019         is made.
17020
17021 2002-04-06  Jason Merrill  <jason@redhat.com>
17022
17023         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
17024         (parse_options_and_default_flags): Set them appropriately.
17025         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
17026
17027 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
17028
17029         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
17030         here.
17031
17032         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
17033         semicolon.
17034
17035         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
17036         types come in by-reference.  Fix typo in comment.
17037
17038 2002-04-05  David S. Miller  <davem@redhat.com>
17039
17040         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
17041         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
17042         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
17043         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
17044
17045 2002-04-05  David S. Miller  <davem@redhat.com>
17046
17047         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
17048         are not going to emit return instructions, emit at least a nop
17049         for the sake of sane backtraces.
17050
17051 2002-04-05  Richard Henderson  <rth@redhat.com>
17052
17053         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
17054
17055 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
17056
17057         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
17058
17059 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
17060
17061         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
17062         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
17063         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
17064
17065 2002-04-05  Andreas Schwab  <schwab@suse.de>
17066
17067         * c-convert.c: Include c-common.h.
17068         * Makefile.in (c-convert.o): Updated.
17069
17070 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
17071
17072         * mklibgcc.in: Use separate libgcc.map for each multilib.
17073         * Makefile.in (distclean): Don't remove libgcc.map here.
17074
17075 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
17076
17077         * Makefile.in (s-mlib): Handle --disable-multilib by separate
17078         genmultilib invocation.
17079
17080 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
17081
17082         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
17083         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
17084         to num_gprs for symmetry.
17085         * config/mips/mips.c: Adjust accordingly.
17086
17087 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
17088
17089         * c-common.c (truthvalue_conversion): Rename, update.
17090         * c-common.h (c_common_truthvalue_conversion): New.
17091         * c-convert.c (convert): Update.
17092         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
17093         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
17094         * c-typeck.c (build_binary_op, build_unary_op,
17095         build_conditional_expr): Update.
17096         * fold-const.c (constant_boolean_node, fold): Use langhook.
17097         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
17098         * langhooks.h (struct lang_hooks): New hook.
17099         * stmt.c (expand_decl_cleanup): Use langhook.
17100         * tree.h (truthvalue_conversion): Remove.
17101 objc:
17102         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
17103
17104 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
17105
17106         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
17107         Add rules to make null object file.
17108
17109 2002-04-04  Jim Blandy  <jimb@redhat.com>
17110
17111         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
17112         macro formal parameter names.
17113
17114 2002-04-04  David S. Miller  <davem@redhat.com>
17115
17116         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
17117
17118 2002-04-04  Richard Henderson  <rth@redhat.com>
17119
17120         PR middle-end/5099
17121         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
17122         Support copies into and out of memory.  Don't accept allows_reg
17123         and allows_mem as gospel.
17124
17125 2002-04-04  Richard Henderson  <rth@redhat.com>
17126
17127         PR opt/6165
17128         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
17129         (write_dependence_p): Likewise.
17130
17131 2002-04-04  Richard Henderson  <rth@redhat.com>
17132
17133         * predict.c (estimate_bb_frequencies): Do frequency calculation
17134         with a volatile temporary.
17135
17136 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
17137
17138         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
17139
17140 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
17141
17142         PR c++/6119
17143         * final.c (final_start_function): Don't bump profile_label_no here...
17144         (final_end_function): ...but here.
17145
17146 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
17147
17148         * config/sparc/sparc.md (pic): New attribute.
17149         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
17150         into stack slots.
17151         (split after do_builtin_setjmp_setup): New.
17152
17153 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
17154
17155         PR fortran/6106
17156         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
17157         change.
17158
17159 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
17160
17161         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
17162         UNITS_PER_WORD for zero sized aggregates.
17163
17164 2002-04-03  David S. Miller  <davem@redhat.com>
17165
17166         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
17167         one-character spec for this, just use %(link_gcc_c_sequence).
17168
17169 2002-04-03  David S. Miller  <davem@redhat.com>
17170
17171         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
17172         handling.
17173
17174 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17175
17176         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
17177         (DWARF_FRAME_RETURN_COLUMN): Move.
17178         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
17179         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
17180         * pa.c (except.h, predict.h): Include.
17181         (FRP): Delete.
17182         (store_reg_modify, set_reg_plus_d): Revise prototypes.
17183         (output_ascii): Add cast.
17184         (store_reg_modify): Revise to add frame notes.
17185         (set_reg_plus_d): Likewise.
17186         (compute_frame_size): Include space for eh data registers in frame if
17187         the current function calls eh_return.
17188         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
17189         function calls eh_return.  Save eh data registers if the current
17190         function calls eh_return.  Fix code to add frame notes.  Emit
17191         blockage to prevent insns with frame notes being scheduled in the
17192         delay slot of calls.
17193         (hppa_expand_epilogue): Restore eh data registers and do final stack
17194         adjustment if the current function calls eh_return.  Don't add frame
17195         notes.
17196         (output_call): Revise for change in length of call insn.  Don't do
17197         return pointer adjustment for an unconditional jump in the delay slot
17198         of a call when using frame notes.
17199         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
17200         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
17201         (ARG_POINTER_CFA_OFFSET): Define.
17202         * pa.md (return_external_pic): New pattern.
17203         (prologue): Correct formatting.  Use return_external_pic if current
17204         function calls eh_return.
17205         (call_internal_symref, call_value_internal_symref,
17206         sibcall_internal_symref, sibcall_value_internal_symref): Change default
17207         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
17208         respectively.
17209         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
17210
17211         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
17212         list of targets to check using "nop" insn.
17213         * configure: Rebuilt.
17214
17215 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
17216
17217         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
17218
17219 2002-04-03  David S. Miller  <davem@redhat.com>
17220
17221         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
17222         library sequence passed to the linker.
17223         (LINK_COMMAND_SPEC): Use it.
17224         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
17225         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
17226         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
17227
17228 2002-04-03  Jason Merrill  <jason@redhat.com>
17229
17230         * except.c (struct eh_status): Remove protect_list.
17231         (begin_protect_partials, end_protect_partials): Remove.
17232         (add_partial_entry): Remove.
17233         * except.h: Remove prototypes.
17234
17235         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
17236         expand_decl_cleanup_eh.
17237
17238         PR c++/5636
17239         * tree.h (CLEANUP_EH_ONLY): New macro.
17240         * stmt.c (expand_decl_cleanup_eh): New fn.
17241         (expand_cleanups): Check CLEANUP_EH_ONLY.
17242         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
17243         Use expand_decl_cleanup_eh.
17244         (expand_stmt): Adjust.
17245         * c-common.h: Adjust prototype.
17246
17247 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
17248
17249         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
17250         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
17251         (cris_target_asm_function_epilogue): Ditto.
17252         (cris_initial_frame_pointer_offset): Ditto.
17253         (cris_simple_epilogue): Ditto.
17254         (cris_expand_builtin_va_arg): Variable-size types come in
17255         by-reference.
17256
17257 2002-04-03  David S. Miller  <davem@redhat.com>
17258
17259         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
17260         little-endian.
17261         (set_fast_math): Correct 'fsr' type.
17262
17263 2002-04-03  Richard Henderson  <rth@redhat.com>
17264
17265         PR opt/3569
17266         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
17267         * toplev.c (check_global_declarations): Use it.
17268         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
17269         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
17270         (LANG_HOOKS_DECLS): Add it.
17271         * langhooks.c (lhd_warn_unused_global_decl): New.
17272         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
17273         * c-objc-common.c (c_warn_unused_global_decl): New.
17274         * c-tree.h (c_warn_unused_global_decl): Declare.
17275         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
17276
17277 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
17278
17279         * langhooks-def.h (lhd_set_decl_assembler_name,
17280         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
17281         (LANG_HOOKS_INITIALIZER): Update.
17282         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
17283         * langhooks.h (struct lang_hooks): New hook.
17284         * tree.c (set_decl_assembler_name): Move to langhooks.c.
17285         (lang_set_decl_assembler_name): Remove.
17286         (init_obstacks): Don't set hook.
17287         (decl_assembler_name): New function.
17288         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
17289         (decl_assembler_name): New.
17290         (lang_set_decl_assembler_name): Remove.
17291
17292 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
17293
17294         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
17295         works properly with .hidden symbols.
17296         * configure: Rebuilt.
17297         * config.in: Rebuilt.
17298         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
17299         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
17300         properly with .hidden symbols.
17301
17302 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
17303
17304         PR middle-end/6102
17305         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
17306         USE argument.
17307
17308 2002-04-03  Richard Henderson  <rth@redhat.com>
17309
17310         PR opt/4120
17311         * sched-rgn.c (sets_likely_spilled): New.
17312         (sets_likely_spilled_1): New.
17313         (add_branch_dependences): Use it.
17314
17315 2002-04-02  Richard Henderson  <rth@redhat.com>
17316
17317         PR opt/4311
17318         * loop.h (LOOP_FIRST_PASS): New.
17319         * loop.c (strength_reduce): Mind it when deciding to unroll.
17320         * toplev.c (rest_of_compilation): Set it.
17321
17322 2002-04-02  David S. Miller  <davem@redhat.com>
17323
17324         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
17325         mems_ok_for_ldd_peep when the order of the loads being examined
17326         is reversed.
17327         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
17328         existing comment to increase comprehension of this situation.
17329
17330 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
17331
17332         * config/sh/sh.md: Don't use union real_extract.
17333
17334 2002-04-02  Richard Henderson  <rth@redhat.com>
17335
17336         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
17337
17338 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
17339
17340         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
17341         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
17342         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
17343         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
17344         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
17345         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
17346         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
17347         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
17348         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
17349         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
17350         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
17351         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
17352         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
17353         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
17354         Include as many configury headers via tm_file as possible.  This
17355         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
17356         * config/openbsd-oldgas.h: New file.
17357         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
17358         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
17359         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
17360         config/i386/i386-coff.h, config/i386/i386-interix.h,
17361         config/i386/iscdbx.h, config/i386/linux-aout.h,
17362         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
17363         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
17364         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
17365         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
17366         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
17367         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
17368         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
17369         config/i386/vxi386.h: Do not directly include configury headers.
17370         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
17371         Directly include configury headers that are no longer automatically
17372         included by the above headers.
17373         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
17374         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
17375         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
17376         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
17377         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
17378         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
17379         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
17380         (TARGET_VERSION): Define.
17381         * config/i386/beos-elf.h, config/i386/freebsd.h,
17382         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
17383         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
17384         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
17385         config/i386/sco5.h, config/i386/sysv4.h
17386         (TARGET_VERSION): Do not need to protect.
17387         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
17388         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
17389         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
17390         config/i386/i386-interix.h, config/i386/linux-aout.h,
17391         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
17392         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
17393         (YES_UNDERSCORES): Do not define - not needed.
17394         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
17395         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
17396         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
17397         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
17398         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
17399         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
17400         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
17401         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
17402
17403 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
17404             Richard Henderson  <rth@redhat.com>
17405
17406         PR c/5484
17407         * function.c (assign_temp): Accept either type or decl argument.
17408         Detect variables whose size is too large to fit into an integer.
17409         * stmt.c (expand_decl): Pass the decl, not the type.
17410
17411 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
17412
17413         * protoize.c: Match include directory usage with cppdefault.c.
17414
17415 2002-04-03  Jeffrey A Law  (law@redhat.com)
17416             Hans-Peter Nilsson  <hp@bitrange.com>
17417
17418         * combine.c (simplify_comparison): Avoid narrowing a comparison
17419         with a paradoxical subreg when doing so would drop signficant bits.
17420
17421 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
17422
17423         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
17424         if POINTERS_EXTEND_UNSIGNED is defined.
17425
17426 2002-04-02  Richard Henderson  <rth@redhat.com>
17427
17428         PR opt/3967
17429         * local-alloc.c (contains_replace_regs): LO_SUM may contain
17430         replace regs.
17431
17432 2002-04-02  Richard Henderson  <rth@redhat.com>
17433
17434         * doc/standards.texi: Document required freestanding libc entry points.
17435
17436 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
17437
17438         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
17439         associated splitter.  Remove MQ constraint.
17440         (ctrdi_internal4): Correct CCmode clobber.
17441
17442 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17443
17444         * milli64.S ($$dyncall): New function.
17445         * t-linux (LIB1ASMFUNCS): Revise module list.
17446         (LIB1ASMSRC): Use pa/milli64.S.
17447
17448 2002-04-02  Richard Henderson  <rth@redhat.com>
17449
17450         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
17451         rename solaris_sys_varargs_h.
17452
17453 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17454
17455         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
17456         the same mode as its component.
17457
17458 2002-04-02  Richard Henderson  <rth@redhat.com>
17459
17460         PR opt/190
17461         * final.c (this_is_asm_operands): Export.
17462         * output.h (this_is_asm_operands): Declare.
17463         * config/i386/i386.c (print_operand): Error odd asm operands.
17464
17465 2002-04-02  Richard Henderson  <rth@redhat.com>
17466
17467         PR opt/420
17468         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
17469
17470 2002-04-01  Richard Henderson  <rth@redhat.com>
17471
17472         PR target/1538
17473         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
17474         * fixinc/fixincl.x: Rebuild.
17475
17476 2002-04-01  Richard Henderson  <rth@redhat.com>
17477
17478         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
17479         (atomic_alloc, atomic_free): New.
17480         (SIZE, MASK_FOR, PTR_IN): New.
17481         (emergency_reg_state, emergency_reg_state_free): New.
17482         (emergency_labeled_state, emergency_labeled_state_free): New.
17483         (reg_state_alloced, labeled_state_alloced): New.
17484         (alloc_reg_state, free_reg_state): New.
17485         (alloc_label_state, free_label_state, free_label_states): New.
17486         (push, pop, dup_state_stack, free_state_stack): Use them.
17487         (desc_label_state): Likewise.
17488         (uw_frame_state_for): Free label states and state stack.
17489         (uw_update_reg_address): Eliminate warnings.
17490
17491 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
17492
17493         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
17494         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
17495
17496 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
17497
17498         * c-decl.c (grokdeclarator): Update.
17499         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
17500         * c-tree.h (c_mark_addressable): New.
17501         * c-typeck.c (default_function_array_conversion, build_unary_op,
17502         build_array_ref, convert_for_assignment): Update.
17503         (mark_addressable): Rename.
17504         * calls.c (try_to_integrate, expand_call): Use langhook.
17505         * expr.c (expand_expr): Use langhook.
17506         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
17507         * langhooks.h (struct lang_hooks): New hook.
17508         * stmt.c (expand_asm_operands): Use langhook.
17509         * tree.h (mark_addressable): Remove.
17510 objc:
17511         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
17512
17513 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
17514
17515         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
17516         in previous change.
17517
17518 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
17519
17520         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
17521         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
17522
17523 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
17524
17525         * c-common.c (unsigned_conversion_warning, convert_and_check,
17526         unsigned_type, signed_type, shorten_compare,
17527         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
17528         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
17529         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
17530         New.
17531         * c-decl.c (grokdeclarator): Update.
17532         * c-format.c (check_format_types): Update.
17533         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
17534         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
17535         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
17536         * convert.c (convert_to_integer): Use new hooks.
17537         * expmed.c (make_tree): Use new hooks.
17538         * expr.c (store_expr): Use new hooks.
17539         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
17540         all_ones_mask_p, unextend, fold): Use new hooks.
17541         * langhooks.h (struct lang_hooks_for_types): New hooks.
17542         * tree.h (signed_or_unsigned_type, signed_type,
17543         unsigned_type): Remove.
17544 objc:
17545         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
17546         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
17547
17548 2002-03-31  Richard Henderson  <rth@redhat.com>
17549
17550         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
17551         (desc_frgr_mem): Fix reference to f16-f31.
17552
17553 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17554
17555         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
17556         RTVEC_ELT): Const-ify.
17557         * varray.h (VARRAY_CHECK): Const-ify.
17558         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
17559         ggc_mark_rtvec, ggc_mark): Const-ify.
17560
17561 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
17562
17563         * diagnostic.c: Include langhooks-def.h.
17564         * Makefile.in (diagnostic.o): Update.
17565
17566 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
17567
17568         * c-common.c (c_unsafe_for_reeval): Rename.
17569         * c-common.h (c_unsafe_for_reeval): Rename.
17570         * c-decl.c (finish_incomplete_decl): Rename.
17571         (c_init_decl_processing): Don't set langhook.
17572         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
17573         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
17574         * c-objc-common.c (c_objc_common_init): Don't set langhook.
17575         * c-tree.h (finish_incomplete_decl): Rename.
17576         * langhooks-def.h (lhd_unsafe_for_reeval): New.
17577         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
17578         (LANG_HOOKS_INITIALIZER): Update.
17579         * langhooks.c (lhd_unsafe_For_reeval): New.
17580         * langhooks.h (struct langhooks): New hooks.
17581         * toplev.c (incomplete_decl_finalize_hook): Remove.
17582         (wrapup_global_declarations): Update.
17583         * tree.c (lang_unsafe_for_reeval): Remove.
17584         (unsafe_for_reeval): Update.
17585         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
17586         Remove.
17587 objc:
17588         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
17589         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
17590
17591 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
17592
17593         * diagnostic.c (print_error_function): Remove.
17594         (default_print_error_function): Rename.
17595         (report_error_function): Update.
17596         * diagnostic.h (print_error_function): Remove.
17597         (default_print_error_function): Remove.
17598         * langhooks-def.h (struct diagnostic_context): Predeclare.
17599         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
17600         (LANG_HOOKS_INITIALIZER): Update.
17601         * langhooks.h (struct diagnostic context): Predeclare.
17602         (struct lang_hooks): New hook.
17603
17604 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17605
17606         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
17607         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
17608         !flag_pic.
17609         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
17610         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
17611         of PIC_OFFSET_TABLE_REGNUM thruout.
17612         * config/rs6000/rs6000.md: Likewise.
17613         * config/rs6000/darwin.h: Likewise.
17614
17615 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17616
17617         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
17618         unsigned HOST_WIDE_INT, not unsigned int.
17619
17620 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
17621
17622         PR middle-end/6096, middle-end/6098, middle-end/6099
17623         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
17624         CODE_LABELs.
17625         (fill_slots_from_thread): Likewise.
17626
17627 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
17628
17629         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
17630         floating fields in float regs.
17631         (function_arg_record_value_2): Likewise.
17632
17633 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
17634
17635         * config/mmix/mmix.md (define_constants): Remove misleading
17636         FIXME.  Add MMIX_fp_rO_OFFSET.
17637         ("nonlocal_goto_receiver"): Don't have stack-frame address of
17638         saved rO as part of the pattern.  Remove FIXME.
17639         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
17640         here, at output-time.
17641
17642 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
17643
17644         PR middle-end/6100
17645         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
17646         REG_BR_PRED.
17647         (output_v9branch): Likewise.
17648
17649 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
17650
17651         * gcc.c: Revert previous patch for now.
17652         * config/i386/djgpp.h: Likewise.
17653
17654 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
17655
17656         * config/mmix/crti.asm (_init): Register _fini with atexit.
17657         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
17658
17659 2002-03-31  Richard Henderson  <rth@redhat.com>
17660
17661         PR target/3997
17662         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
17663         (ASM_OUTPUT_DEF_FROM_DECLS): New.
17664
17665 2002-03-31  Richard Henderson  <rth@redhat.com>
17666
17667         * libgcc2.c (__bb_exit_func): Make static.
17668
17669         * config/alpha/alpha.md (trap): New.
17670
17671 2002-03-31  Richard Henderson  <rth@redhat.com>
17672
17673         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
17674         promoted argument types; build trap.
17675         (expand_builtin_trap): New.
17676         (expand_builtin): Use it.
17677         * stmt.c (expand_nl_goto_receivers): Likewise.
17678         * expr.h (expand_builtin_trap): Declare.
17679         * libfuncs.h (LTI_abort, abort_libfunc): New.
17680         * optabs.c (init_optabs): Init abort_libfunc.
17681
17682 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
17683
17684         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
17685         (LINK_COMMAND_SPEC): ... from here.
17686         (init_gcc_specs): Duplicate it here too, omitting
17687         shared_name in the second copy.
17688         (init_spec): Test for duplicate
17689         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
17690
17691 2002-03-30  David S. Miller  <davem@redhat.com>
17692
17693         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
17694         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
17695
17696 2002-03-30  Roger Sayle <roger@eyesopen.com>
17697             Richard Henderson  <rth@redhat.com>
17698
17699         * regmove.c (combine_stack_adjustments_for_block): Avoid
17700         emitting a stack adjustment of zero bytes.  Let delete_insn
17701         update bb->head.
17702
17703 2002-03-30  Richard Henderson  <rth@redhat.com>
17704
17705         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
17706         (sparc_emitting_epilogue): New.
17707         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
17708         * config/sparc/sparc-protos.h: Update.
17709         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
17710         (TARGET_SWITCHES): Update.
17711         * config/sparc/sparc.md (return): Remove.
17712         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
17713         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
17714         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
17715         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
17716         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
17717         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
17718         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
17719         Remove MASK_EPILOGUE.
17720         * doc/invoke.texi: Update.
17721
17722 2002-03-30  Daniel Berlin  <dan@dberlin.org>
17723
17724         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
17725         CPP will start the file for us.
17726
17727 2002-03-30  Richard Henderson  <rth@redhat.com>
17728
17729         PR target/5446
17730         * config/ia64/ia64.c (group_barrier_needed_p): Special case
17731         prologue_allocate_stack.
17732         (ia64_single_set): Use insn codes for recognition of special
17733         cases, not rtl matching.
17734         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
17735
17736 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
17737
17738         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
17739
17740 2002-03-30  Richard Henderson  <rth@redhat.com>
17741
17742         PR target/6032
17743         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
17744         or -fomit-frame-pointer with profiling.
17745         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
17746         (FUNCTION_PROFILER): Do nothing.
17747         (PROFILE_HOOK): New.
17748         * config/sparc/sparc.c (sparc_override_options): Don't check
17749         code models for profiling.
17750         (sparc_function_profiler): Remove.
17751         (sparc_profile_hook): New.
17752         * config/sparc/sparc-protos.h: Update.
17753
17754 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
17755
17756         PR optimization/6086
17757         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
17758         of SUBREG of volatile MEM or because the MEM was mode dependent,
17759         return CLOBBER instead of unmodified SUBREG.
17760
17761 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17762
17763         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
17764         when not optimizing.
17765
17766         * toplev.c (rest_of_compilation): Cann mark_constant_function
17767         only when optimizing.
17768
17769         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
17770         are NULL.
17771
17772         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
17773         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
17774         (try_optimize_cfg): clear all AUX fields.
17775
17776         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17777         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17778         (ix86_address_cost): Be prepared for SUBREGed registers.
17779         (legitimate_address_p): Accept SUBREGed registers.
17780
17781 2002-03-29  Richard Henderson  <rth@redhat.com>
17782
17783         PR target/5672
17784         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
17785
17786 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17787
17788         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
17789         for aggregate and TFmode types.
17790
17791 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
17792
17793         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
17794
17795 2002-03-29  Richard Henderson  <rth@redhat.com>
17796
17797         PR target/5886
17798         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
17799         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
17800
17801 2002-03-29  Richard Henderson  <rth@redhat.com>
17802
17803         PR target/6041
17804         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
17805         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
17806         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
17807         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
17808         conditional.
17809         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
17810
17811 2002-03-29  Dale Johannesen <dalej@apple.com>
17812
17813         * loop.c (combine_movables): Do allow combination of pseudos.
17814
17815 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
17816
17817         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
17818         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
17819         No functional change except ...
17820         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
17821         * doc/install.texi (*-*-freebsd*): Document port configuration.
17822
17823 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
17824
17825         * Makefile.in (convert.o, calls.o, expmed.o): Update.
17826         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
17827         Use new hooks.
17828         * builtin-types.def (BT_PTRMODE): Update.
17829         * c-common.c (type_for_size): Rename c_common_type_for_size.
17830         (type_for_mode): Similarly.
17831         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
17832         Use new hook.
17833         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
17834         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
17835         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
17836         Redefine.
17837         * c-typeck.c (common_type, comptypes, default_conversion):
17838         Use new hooks.
17839         * calls.c: Include langhooks.h.
17840         (emit_library_call_value_1): Use new hooks.  Avoid redundant
17841         calls.
17842         * convert.c: Include langhooks.h
17843         (convert_to_pointer, convert_to_integer): Use new hooks.
17844         * except.c (init_eh): Similarly.
17845         * expmed.c: Include langhooks.h.
17846         (expand_mult_add): Use new hooks.
17847         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
17848         try_casesi): Similarly.
17849         * fold-const.c (optimize_bit_field_compare, make_range,
17850         decode_field_reference, fold_truthop, fold): Similarly.
17851         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
17852         put_var_into_stack): Similarly.
17853         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
17854         LANG_HOOKS_TYPE_FOR_SIZE): New.
17855         (LANG_HOOKS_TYPES_INITIALIZER): Update.
17856         * langhooks.h (lang_hooks_for_types): New hooks.
17857         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
17858         * tree.c (get_unwidened, get_narrower): Similarly.
17859         * tree.h (type_for_mode, type_for_size): Remove.
17860         * varasm.c (force_const_mem): Use new hooks.
17861         * utils2.c (nonbinary_modular_operation): Update.
17862 objc:
17863         * objc-act.c (handle_impent): Update.
17864         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
17865         Redefine.
17866
17867 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
17868
17869         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
17870         * config/ia64/ia64.c (basereg_operand): New.
17871         * config/ia64/ia64-protos.h (basereg_operand): Declare.
17872         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
17873
17874 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
17875
17876         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
17877         unwind information when frame_pointer_needed.
17878         (mmix_assemble_integer): Tweak wording in comment.
17879
17880 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
17881
17882         * Makefile.in (except.o): Update.
17883         * except.c: Include langhooks.h.
17884         (init_eh): Use langhook.
17885         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
17886         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
17887         (LANG_HOOKS_INITIALIZER): Update.
17888         * langhooks.h (lang_hooks_for_types): New.
17889         (struct lang_hooks): Add it.
17890         * tree.c (make_lang_type_fn, make_lang_type): Remove.
17891         * tree.h (make_lang_type_fn, make_lang_type): Remove.
17892 config:
17893         * alpha/alpha.c: Include langhooks.h.
17894         (alpha_build_va_list): Use langhook.
17895         * d30v/d30v.c: Include langhooks.h.
17896         (d30v_build_va_list): Use langhook.
17897         * i386/i386.c: Include langhooks.h.
17898         (ix86_build_va_list): Use langhook.
17899         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
17900         * s390/s390.c: Include langhooks.h.
17901         (s390_build_va_list): Use langhook.
17902         * stormy16/stormy16.c: Include langhooks.h.
17903         (stormy16_build_va_list): Use langhook.
17904
17905 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
17906
17907         PR c++/5964
17908         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
17909         attributes.
17910         (length): Compute variable length for branches/calls/jumps here.
17911         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
17912         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
17913         define branch_type attribute.
17914         (divsi3_sp32): Maximum length is 6 not 7.
17915         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
17916         call_address_untyped_struct_value_sp32,
17917         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
17918         * config/sparc/sparc.c (empty_delay_slot): New function.
17919         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
17920         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
17921
17922 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
17923
17924         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
17925         nonzero_bits if not needed.
17926         (nonzero_bits) [XOR]: Likewise.
17927         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
17928         reg_last_set_mode and mode are both MODE_INT, but not equal.
17929         (record_value_for_reg): Compute reg_last_set_nonzero_bits
17930         in nonzero_bits_mode for MODE_INT modes.
17931
17932 2002-03-28  Richard Henderson  <rth@redhat.com>
17933
17934         PR target/5715
17935         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
17936         to GAS.  Correct drift between alternatives.
17937
17938 2002-03-28  Richard Henderson  <rth@redhat.com>
17939
17940         PR target/6087
17941         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
17942
17943 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
17944
17945         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
17946         emulation to the linker.
17947
17948 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
17949
17950         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
17951         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
17952
17953 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
17954
17955         * combine.c (simplify_and_const_int): Make sure to apply mask
17956         when force_to_mode returns a constant integer.  PR3311.
17957
17958 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17959
17960         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
17961
17962 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17963
17964         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
17965         and Objective-C Dialect Options.
17966
17967 2002-03-28  Richard Henderson  <rth@redhat.com>
17968
17969         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
17970         comparison should be done vs !=0 not >0 return code.  Tidy cases.
17971
17972 2002-03-28  Richard Henderson  <rth@redhat.com>
17973
17974         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
17975         on to c_expand_body.
17976         * c-tree.h (finish_function): Update decl.
17977         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
17978
17979 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
17980
17981         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
17982
17983 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
17984
17985         * rtlanal.c: Include flags.h
17986         (may_trap_p): Do not mark FP operations if trapping
17987         if !flag_trapping_math
17988         * Makefile.in (rtlanal.o): Add dependency on flag.h
17989         * ifcvt.c (noce_operand_ok): Avoid the lameness.
17990
17991 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
17992
17993         * mips.md: Use dconst1, not 1.0, as first argument of
17994         REAL_VALUE_LDEXP.  Don't use union real_extract.
17995
17996 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
17997
17998         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
17999         rather than $target.  Heed program_prefix and
18000         program_transform_name.  Search for gas in cross-compiler case too.
18001         "test -x" rather than "test -f".
18002         (gcc_cv_ld): Likewise.
18003         (gcc_cv_nm): Heed program_prefix and program_transform_name.
18004         (gcc_cv_objdump): Likewise.
18005         * configure: Regenerate.
18006
18007 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
18008
18009         * Makefile.in (attribs.o): Update.
18010         * attribs.c: Include langhooks.h.
18011         (decl_attributes): Use langhook.
18012         * c-decl.c (insert_default_attributes): Rename.
18013         * c-tree.h (c_insert_default_attributes): New.
18014         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
18015         (LANG_HOOKS_INITIALIZER): Update.
18016         * langhooks.h (struct lang_hooks): New hook.
18017         * tree.h (insert_default_attributes): Remove.
18018 objc:
18019         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
18020
18021 2002-03-27  Andreas Schwab  <schwab@suse.de>
18022
18023         * config/i386/i386.c (classify_argument): Also check for
18024         QUAL_UNION_TYPE.
18025
18026 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18027
18028         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
18029         any more.
18030
18031 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
18032
18033         * i960.md (ret): Set PC.
18034         (nonlocal_goto): Fix expander.
18035         * builtins.c (epxand_builin_longjmp): Check that we've emitted
18036         some jump or call.
18037
18038 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
18039
18040         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
18041         of libcall regions.
18042
18043 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
18044
18045         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
18046         assigning to BLOCK_FOR_INSN directly.
18047
18048 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
18049
18050         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
18051
18052 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
18053
18054         * c-common.c (c_expand_expr): Fix prototype.
18055         * c-common.h (c_expand_expr): Always declare, update.
18056         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
18057         * c-objc-common.c (c_objc_common_init): No global hook.
18058         * expr.c (expand_expr): Use langhook.
18059         * expr.h (enum expand_modifier): Conditionally declare.
18060         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
18061         (LANG_HOOKS_INITIALIZER): Update.
18062         * langhooks.c (lhd_expand_expr): New.
18063         * langhooks.h (struct lang_hooks): New hook.
18064         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
18065         (lang_independent_init): Don't default hook.
18066 objc:
18067         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
18068
18069 2002-03-27  Richard Henderson  <rth@redhat.com>
18070
18071         PR target/6054
18072         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
18073         TARGET_CONST_GP.  Simplify conditions.
18074
18075 2002-03-27  Richard Henderson  <rth@redhat.com>
18076
18077         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
18078         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
18079         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
18080
18081 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
18082
18083         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
18084         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
18085         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
18086         Remove unnecessary masks.
18087         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
18088         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
18089         -mwindows, -mdll switches and their negations.
18090
18091 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
18092
18093         * gcc-common.c (lang_mark_false_label_stack): Remove.
18094         * ggc.h (lang_mark_false_label_stack): Similarly.
18095
18096 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
18097
18098         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
18099
18100         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
18101         or __rtems_ is defined.
18102
18103 2002-03-26  Richard Henderson  <rth@redhat.com>
18104
18105         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
18106         if a non-trivial load was emitted.
18107         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
18108         in high+extra+low case.
18109
18110 2002-03-26  Richard Henderson  <rth@redhat.com>
18111
18112         * config.gcc (sparc*-solaris): Use float_format=sparc.
18113
18114 2002-03-26  Richard Henderson  <rth@redhat.com>
18115
18116         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
18117         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
18118         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
18119         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
18120         (WINT_TYPE_SIZE): Fix at 32.
18121
18122 2002-03-26  Richard Henderson  <rth@redhat.com>
18123
18124         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
18125         until after eh landing pad generation.
18126         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
18127         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
18128
18129 2002-03-26  Richard Henderson  <rth@redhat.com>
18130
18131         * expr.h (ADD_PARM_SIZE): One more convert for INC.
18132
18133 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
18134
18135         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
18136         and warning switches.
18137         (cc1_options):  Likewise.
18138
18139 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
18140
18141         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
18142         Restore more of the signal context.  Set no_reg_stack_frame.
18143         * config/ia64/unwind-ia64.c (unw_state_record):
18144         Add no_reg_stack_frame, comments.
18145         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
18146         (uw_update_context): Adjust bsp when unwinding from leaf,
18147         but not signal frame.
18148
18149 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
18150
18151         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
18152
18153 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
18154
18155         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
18156
18157 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
18158
18159         PR target/5621
18160         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
18161         "Add a pool_range attribute", which was lost during the ARM/Thumb
18162         merge.
18163
18164 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
18165
18166         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
18167         a register into the MAC16 accumulator.
18168
18169 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
18170
18171         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
18172         (Warning Options): Document -Wswitch-enum.
18173         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
18174         -Wswitch.
18175         (warn_switch_enum): Define variables.
18176         * flags.h (warn_switch_enum): Declare variables.
18177         * stmt.c (expand_end_case_type): When warn_switch_enum /
18178         -Wswitch-enum, perform switch checks.
18179         Fix PR c/5044.
18180
18181 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
18182
18183         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
18184         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
18185         (reload_muladdsi_compare0_scratch): Delete.
18186
18187 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
18188
18189         * doc/install.texi (*-*-freebsd*): Update.
18190
18191 2002-03-26  Richard Henderson  <rth@redhat.com>
18192
18193         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
18194         (SUB_PARM_SIZE): Cast DEC to ssizetype.
18195
18196         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
18197         types from the normal argument frame.
18198
18199         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
18200         variable sized objects by reference.
18201         (sparc_va_arg): Receive them by reference too.
18202
18203 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
18204
18205         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
18206         code to not restoring global registers.
18207
18208 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
18209
18210         * Makefile.in (ggc-common.o): Update.
18211         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
18212         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
18213         * c-tree.h (c_mark_tree): New.
18214         * ggc-common.c: Include langhooks.h.
18215         (gcc_mark_trees): Use new langhook.
18216         * ggc-callbacks.c: Delete file.
18217         * ggc.h (lang_mark_tree): Remove.
18218         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
18219         (LANG_HOOKS_INITIALIZER): Update.
18220         * langhooks.h (struct lang_hooks): New hook.
18221 objc:
18222         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
18223
18224 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
18225
18226         * doc/cpp.texi: Exclude entire Top node from printed manual.
18227         Move option index after directive index.  Insert page breaks
18228         before GFDL and concept index.  Index environment variables
18229         with command line options.
18230         * doc/cppenv.texi: Use @vtable for environment variable list.
18231         Add paragraph explaining semantics of empty elements in path
18232         variables.  Exclude a cross-reference to Fishkill from the
18233         manpage.  Remove an unnecessary cross-reference of the entry
18234         right above the referer.  Don't use @anchor in text that goes
18235         into manpage.
18236         * doc/cppopts.texi: Cross-reference the environment variables
18237         section, not the specific environment variable, for consistency.
18238
18239 2002-03-25  Richard Henderson  <rth@redhat.com>
18240
18241         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
18242         anywhere in the block.  Don't refer to insns that have been
18243         removed from the chain.  Iterate backward through the new insns.
18244         Don't refer to edges that have been removed.
18245
18246 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
18247
18248         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
18249         test for overflow of constant.
18250
18251 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
18252
18253         PR target/2623
18254         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
18255         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
18256         these patterns on arm_archv4.
18257
18258 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
18259
18260         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
18261         int".
18262
18263 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
18264
18265         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
18266         float_handled, float_handler, float_signal, set_float_handler,
18267         and do_float_handler.  Set handler for SIGFPE to crash_signal.
18268         * toplev.h: Don't prototype do_float_handler.
18269
18270         * c-lex.c: Fold parse_float into lex_number.  Make warning
18271         about portability of hex float constants more informative, and
18272         don't issue it on top of a syntax error.
18273         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
18274         their callers.
18275         * real.h: Define REAL_VALUE_ABS here...
18276         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
18277         simplify_unary_real, simplify_binary_real, and
18278         simplify_binary_is2orm1 into their callers.
18279         * tree.c: Fold build_real_from_int_cst_1 into caller.
18280
18281         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
18282
18283         * tsystem.h: Include float.h here...
18284         * libgcc2.c: ... not here.
18285
18286 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
18287
18288         Fixes for: PR bootstrap/3591, target/5676
18289         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
18290         defined.  Do not disable exceptions or rtti.
18291         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
18292         mcore.h.  Disable exceptions and rtti, since they are not
18293         supported by EPOC.
18294
18295 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
18296
18297         * c-decl.c (maybe_build_cleanup): Remove.
18298         * expr.c (expand_expr): Use langhook.
18299         * langhooks-def.h (lhd_return_null_tree,
18300         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
18301         (LANGHOOKS_INITIALIZER): Update.
18302         * langhooks.c (lhd_return_null_tree): New.
18303         * langhooks.h (struct lang_hooks): New hook.
18304         * tree-inline.c (initialize_inlined_parameters): Use langhook.
18305         * tree.h (maybe_build_cleanup): Remove.
18306
18307 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
18308
18309         * regrename.c (build_def_use): Move recog_memoized
18310         before extract_insn.
18311
18312 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
18313
18314         PR target/6043
18315         * expr.c (emit_group_store): Handle storing into CONCAT.
18316
18317 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
18318
18319         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
18320         corresponding MATCH_DUP.
18321
18322 2002-03-24  Richard Henderson  <rth@redhat.com>
18323
18324         * unroll.c (unroll_loop): Zero label_map.
18325
18326         * gcse.c: Include except.h.
18327         * Makefile.in (gcse.o): Update.
18328
18329 2002-03-24  Richard Henderson  <rth@redhat.com>
18330
18331         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
18332         Do resolve_unique_section before shared data clause.
18333
18334 2002-03-24  Richard Henderson  <rth@redhat.com>
18335
18336         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
18337
18338 2002-03-24  Richard Henderson  <rth@redhat.com>
18339
18340         * recog.c (peephole2_optimize): Split blocks when EH insns are
18341         generated in the middle of a block.  Do global life update if
18342         zapped EH edges.
18343
18344 2002-03-24  Richard Henderson  <rth@redhat.com>
18345
18346         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
18347
18348 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
18349
18350         preprocessor/3951
18351         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
18352         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
18353         (init_dependency_output): Don't make no_output decision here.
18354
18355 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
18356
18357         * stmt.c (check_for_full_enumeration_handling): Remove tests of
18358         warn_switch.  Update description.
18359         (expand_end_case_type): Call check_for_full_enumeration_handling
18360         when warn_switch.
18361
18362 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
18363
18364         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
18365         (m68hc11_split_move): Call it to see if the source and destination
18366         operands use the same direction auto inc/dec mode, otherwise make the
18367         source an offsetable memory operand and generate an add.
18368
18369 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
18370
18371         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
18372         register for operand 2.
18373         ("*subsi3_zero_extendqi"): Likewise.
18374         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
18375         bits so that it is compatible with a pop.
18376         ("*andhi3_gen"): Likewise.
18377         ("xorhi3"): Likewise.
18378
18379 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
18380
18381         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
18382         -pedantic here...
18383         (cpp_post_options): ... not here.
18384
18385 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
18386             Aldy Hernandez  <aldyh@redhat.com>
18387
18388         Removal of separate preprocessor cpp0.
18389
18390         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
18391         cpp0, install-common): Update.
18392         * c-common.c (flag_preprocess_only): New.
18393         (c_common_init): Preprocess for -E.
18394         * c-common.h (flag_preprocess_only): New.
18395         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
18396         * c-objc-common.c (c_init_decl_processing): Exit quickly
18397         for NULL return from c_common_init.
18398         * cpplib.h (cpp_preprocess_file): New.
18399         * cppmain.c (main, general_init, pfile, progname): Remove.
18400         (do_preprocessing): Rename cpp_preprocess_file, don't call
18401         cpp_finish.  Don't close stdout here.
18402         (setup_callbacks): Update prototype.
18403         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
18404         Update.
18405         * tradcpp.c (main): Ignore -quiet.
18406 objc:
18407         * lang-specs.h (default_compilers): Preprocess with cc1obj.
18408
18409 2002-03-24  Richard Henderson  <rth@redhat.com>
18410
18411         PR optimization/5742
18412         * machmode.def: Add inner mode field to complex modes.
18413         * config/mips/mips.c (mips_function_value): Always define.  Add
18414         new argument to handle libcalls.
18415         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
18416         (FUNCTION_VALUE): Likewise.
18417         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
18418         * config/mips/mips-protos.h: Update.
18419
18420 2002-03-23  Richard Henderson  <rth@redhat.com>
18421
18422         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
18423         * config/sparc/sparc-protos.h: Update.
18424         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
18425
18426 2002-03-23  Richard Henderson  <rth@redhat.com>
18427
18428         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
18429         _start or _init begins the text segment.
18430
18431 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
18432
18433         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
18434         not HOST_WIDEST_INT.
18435         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
18436
18437 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
18438
18439         PR java/5489
18440         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
18441         operand argument to output_return_instruction.
18442         * arm.c (arm_print_operand, case 'd'): If the operand is
18443         const_true_rtx then just return.
18444         (arm_print_operand, case 'D'): If the operand is const_true_rtx
18445         then abort.
18446
18447 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
18448
18449         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
18450         (Warning Options): Document -Wswitch-default.
18451         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
18452         -Wswitch.
18453         (warn_switch_default): Define variable.
18454         (warn_switch): Update comment.
18455         * flags.h (warn_switch_default): Declare variable.
18456         (warn_switch): Update comment.
18457         * stmt.c (expand_end_case): Check for and, when
18458         warn_switch_no_default, warn of a missing default case.
18459
18460 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
18461
18462         * real.h (N): Special case 128 bit doubles.
18463
18464         * combine.c (simplify_comparison): When widening modes, ignore
18465         sign extension on CONST_INTs.
18466
18467 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
18468
18469         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
18470         passed to adjust_address.  Fix comment formatting.
18471
18472
18473 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
18474
18475         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
18476         Always make REAL_VALUE_TYPE a struct containing an array of
18477         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
18478         big it is.  Don't declare or use union real_extract.
18479
18480         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
18481         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
18482         (print_operand), config/arm/arm.c (output_move_double),
18483         config/arm/arm.md (consttable_4, consttable_8),
18484         config/romp/romp.c (output_fpops), config/s390/s390.h
18485         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
18486         (xtensa_output_literal): Don't use union real_extract.
18487
18488         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
18489         (sfmode_constant_to_ulong), config/ns32k/merlin.h
18490         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
18491         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
18492         (PRINT_OPERAND): Don't use local version of union
18493         real_extract.
18494
18495         * config/convex/convex.c (check_float_value), config/vax/vax.c
18496         (vax_float_literal), config/m88k/m88k.md (divdf3),
18497         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
18498         config/pdp11/pdp11.c (output_move_quad): Don't do host
18499         arithmetic on target floating point quantities.
18500
18501         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
18502         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
18503
18504         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
18505         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
18506
18507         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
18508         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
18509         INFINITY.
18510         * print-rtl.c (print_rtx): Disable code which needs
18511         floating-point emulator.
18512         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
18513         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
18514         depending on HOST_FLOAT_FORMAT to be defined properly.
18515
18516         * config/1750a/1750a.c (get_double, float_label): Delete.
18517         (print_operand): Delete huge commented-out chunk.  Use
18518         REAL_VALUE_TO_DECIMAL.
18519         * config/1750a/1750a-protos.h: Delete prototypes of deleted
18520         functions.
18521         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
18522         IEEE_FLOAT_FORMAT.
18523         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
18524         Use REAL_VALUE_TO_DECIMAL as ELF version does.
18525         * config/m88k/m88k.c (real_power_of_2_operand,
18526         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
18527         real_extract out of the union; run the input through
18528         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
18529         from that into the union.
18530         * config/pdp11/pdp11.c (output_move_double): Rearrange
18531         parentheses to make automatic indenter happy.
18532
18533         * doc/tm.texi (Cross-compilation): Rename node to "Floating
18534         Point" and rewrite to describe current situation.  Also adjust
18535         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
18536         match code.
18537         * doc/rtl.texi: Adjust cross reference.
18538
18539 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
18540
18541         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
18542         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
18543         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
18544         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
18545         prevent use of sp as a reload register.
18546         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
18547         non_acc_reg_operand.
18548         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
18549         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
18550         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
18551         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
18552
18553 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
18554
18555         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
18556         * cpplex.c (unterminated): Delete.
18557         (parse_string): No string literal may extend over multiple
18558         lines.  Suppress the error when preprocessing assembly.
18559         * cppmain.c (scan_translation_unit): Strings are single-line.
18560
18561         * doc/cpp.texi: Update to match.
18562
18563 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
18564
18565         PR optimization/5854
18566         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
18567         Shut up warnings.
18568         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
18569         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
18570         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
18571         const0 if scratch register was not allocated.
18572         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
18573         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
18574         with GEN_INT (...).
18575         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
18576         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
18577         with GEN_INT (...) everywhere.  Remove constraints in define_split
18578         patterns.
18579         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
18580         require scratch register for setting 0 into regs/non-pushable memory.
18581
18582 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
18583
18584         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
18585         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
18586
18587 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
18588
18589         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
18590         * cppinit.c (cpp_create_reader):  On by default.
18591         (cpp_handle_option):  Handle -W[no-]endif-labels.
18592         (cpp_post_options):  Also enable if -pedantic.
18593         * cpplib.c (do_else):  Use it.
18594         (do_endif):  Likewise.
18595         * doc/cppopts.texi:  Document new option.
18596         * doc/invoke.texi:  Document new option.
18597
18598 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
18599
18600         * config/i386/i386.c, config/i386/i386.md: Change all occurences
18601         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
18602
18603 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
18604
18605         * flow.c (calculate_global_regs_live): Clear aux fields of
18606         ENTRY and EXIT.
18607
18608 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
18609
18610         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
18611         REG or MEM subregs, pass rtx * instead of rtx to it.
18612         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
18613         rtx * instead of rtx to alter_subreg.
18614         * config/m32r/m32r.c (gen_split_move_double): Likewise.
18615         * config/pj/pj.c (pj_output_rval): Likewise.
18616
18617 2002-03-22  Richard Henderson  <rth@redhat.com>
18618
18619         PR target/3177
18620         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
18621         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
18622         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
18623         (ia64_expand_prologue): Look at int_regs, not words, for number
18624         of incomming int regs.
18625
18626 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
18627
18628         * expr.c (expand_expr): A RESULT_DECL is part of a call.
18629
18630 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
18631
18632         * toplev.c (flag_loop_optimize, flag_crossjumping):
18633         New static variables.
18634         (rest_of_compilation): Conditionalize crossjumping and
18635         loop optimizer.
18636         (parse_options_and_default_flags): Default loop_optimize and
18637         crossjumping.
18638         (lang_independent_options): Add -fcrossjumping and -floop-optimize
18639         * invoke.texi (crossjumping, loop-optimize): Document.
18640
18641 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
18642
18643         * real.c (eiisneg): Move outside #ifdef NANS.
18644
18645 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
18646
18647         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
18648         frequencies match; avoid match on different loop depths.
18649         (try_crossjump_to_bb): Kill tests that no longer brings time
18650         savings.
18651         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
18652         updating code.
18653         (split_edge): Likewise.
18654
18655         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
18656         variable.
18657
18658         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
18659         * cfgrtl.c: Include insn-config.h
18660         (split_block) Dirtify block in presence of conditional execution
18661
18662 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
18663
18664         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
18665         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
18666         (function_arg): Constify CUMULATIVE_ARGS.
18667         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
18668         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
18669         (UNITS_PER_DOUBLE): New macro.
18670         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
18671         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
18672         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
18673         fp_regs and stack_words.
18674         (EABI_FLOAT_VARARGS_P): New macro.
18675         * config/mips/mips.c (struct mips_arg_info): New.
18676         (mips_arg_info): New function.
18677         (function_arg_advance): Use it.  Add adjustment instructions here
18678         rather than in function_arg.
18679         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
18680         for VOIDmode at the beginning of the function.
18681         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
18682         (function_arg_pass_by_reference): Likewise.
18683         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
18684         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
18685         (mips_va_start): Likewise.  Use the new stack_words field of
18686         CUMULATIVE_ARGS to set up overflow area.  Reformat.
18687         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
18688         doubles and other types, aligning the overflow pointer for non-doubles
18689         too.  Remove some code duplication.  Replace hard-coded constants.
18690
18691 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
18692
18693         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
18694         (CLASS_UNITS): Undefine.
18695         (CLASS_MAX_NREGS): Use FP_INC.
18696         * config/mips/mips.c (compute_frame_size): Likewise.
18697         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
18698
18699 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
18700
18701         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
18702         prototype, and handle lexing numbers and identifiers.
18703         (parse_identifier): Update to new form of parse_slow.
18704         (parse_number): Fast path only, use parse_slow otherwise.
18705         (_cpp_lex_direct): Update calls to parse_number.
18706
18707 2002-03-21  DJ Delorie  <dj@redhat.com>
18708
18709         * bb-reorder.c (make_reorder_chain_1): Protect against
18710         when redundant edges are omitted.
18711         * predict.c (dump_prediction): Likewise.
18712
18713 2002-03-21  Richard Henderson  <rth@redhat.com>
18714
18715         PR target/5996
18716         * fixinc/inclhack.def (solaris_stdio_tag): New.
18717         * fixinc/fixincl.x: Regenerate.
18718
18719 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
18720
18721         PR c/5597
18722         * c-typeck.c (process_init_element): Flag non-static
18723         initialization of a flexible array member as illegal.
18724
18725 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
18726
18727         * config/rs6000/t-linux64: New.
18728         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
18729         t-ppccomm.  Use t-rs6000 and t-linux64.
18730         (powerpc64-*-gnu* <tmake_file>): Likewise.
18731         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
18732         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
18733         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
18734
18735 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
18736
18737         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
18738         flag_really_no_inline instead of optimize == 0.
18739
18740         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
18741
18742         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
18743
18744         * flags.h (flag_really_no_inline): New.
18745
18746         * c-common.c (c_common_post_options): Initialize
18747         flag_really_no_inline.
18748
18749         * toplev.c (flag_really_no_inline): New.
18750
18751 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
18752
18753         * config/avr/avr.md (length): Fix length computation for
18754         conditional branches.
18755
18756 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
18757
18758         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
18759         sdbout.o, profile.o): Update.
18760         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
18761         langhook.
18762         * c-common.h (gettags): Move here from tree.h.
18763         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
18764         insert_block, getdecls, kept_level_p, global_bindings_p): New.
18765         * dbxout.c (dbxout_init): Use getdecls langhook.
18766         * expr.c (expand_expr): Use insert_block langhook.
18767         * fold-const.c: Include langhooks.h.
18768         (fold_range_test, fold_binary_op_with_conditional_arg,
18769         fold): Use global_bindings_p langhook.
18770         * integrate.c (expand_inline_function): Use insert_block langhook.
18771         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
18772         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
18773         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
18774         LANG_HOOKS_GETDECLS): New.
18775         (LANG_HOOKS_INITIALIZER): Update.
18776         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
18777         langhook.
18778         * langhooks.h (struct lang_hooks_for_decls): New.
18779         (struct lang_hooks): Update.
18780         * profile.c: Include langhooks.h.
18781         (output_func_start_profiler): Use new langhooks.
18782         * sdbout.c: Include langhooks.h.
18783         (sdbout_init, sdbout_finish): Use getdecls langhook.
18784         * stmt.c: Include langhooks.h.
18785         (expand_fixup, fixup_gotos): Use new langhooks.
18786         * stor-layout.c: Include langhooks.h.
18787         (variable_size): Use global_bindings_p langhook.
18788         * toplev.c (compile_file): Use getdecls langhook.
18789         * tree-inline.c (remap_block): Use insert_block langhook.
18790         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
18791         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
18792
18793 2002-03-21  Richard Henderson  <rth@redhat.com>
18794
18795         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
18796         constants in .data when -fpic.
18797
18798 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18799
18800         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
18801         where appropriate.
18802
18803 2002-03-21  Tom Tromey  <tromey@redhat.com>
18804
18805         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
18806
18807 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18808
18809         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
18810
18811         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
18812
18813 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
18814             Richard Henderson  <rth@redhat.com>
18815
18816         PR c/5354
18817         * c-common.c (c_expand_expr): Preserve result of a statement
18818         expression if needed.
18819
18820 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
18821
18822         PR bootstrap/4195
18823         * genrecog.c (maybe_both_true_mode): Remove.
18824         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
18825         * machmode.def (Pmode): Likewise.
18826
18827 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
18828
18829         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
18830         (nonlocal_mentioned_p_1): New function.
18831         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
18832         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
18833         (mark_constant_function): Recognize pure functions.
18834         * rtl.h (global_reg_mentioned_p): New prototype.
18835         * rtlanal.c (global_reg_mentioned_p,
18836         global_reg_mentioned_p_1): New function.
18837
18838 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18839
18840         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
18841         UNIX assert.h.
18842         * fixinc/fixincl.x: Regenerate.
18843
18844 2002-03-20  Jason Merrill  <jason@redhat.com>
18845
18846         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
18847
18848 2002-03-20  Michael Meissner  <meissner@redhat.com>
18849
18850         * doc/invoke.texi (Optimize Options): Document that -O2 sets
18851         -fstrict-aliasing.
18852
18853 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
18854
18855         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
18856         ".literal_position" directive before the constant pool.
18857
18858 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18859
18860         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
18861         Add Craig Rodrigues.
18862         Add Brad Lucier to testers.
18863
18864 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
18865
18866         PR target/4792
18867         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
18868         to if_then_else.
18869         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
18870         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
18871         instead of insn_extract.
18872
18873 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
18874
18875         PR bootstrap/4192
18876         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
18877
18878         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
18879         stmt if some case has been output.
18880
18881 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
18882
18883         PR c/5972
18884         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
18885         movsfcc_1, movdfcc_1): Add %O2.
18886         * config/i386/i386.c (print_operand): Handle %ON.
18887         Print . before float condition codes in Sun as cmov syntax.
18888         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
18889         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
18890         no longer true.
18891
18892 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
18893
18894         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
18895         return instruction if PC was popped.
18896
18897 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
18898
18899         * config/xtensa/xtensa.md: Remove unused type attributes.
18900         (adddi_carry, subddi_carry): Change type attribute to "multi".
18901
18902 2002-03-19  Dale Johannesen  <dalej@apple.com>
18903
18904         PR optimization/5999, middle-end/5731
18905         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
18906         multiplications by reciprocals.
18907
18908 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
18909
18910         * Makefile.in: Update.
18911         * c-common.c: Include langhooks.h.
18912         (inline_forbidden_p): Use new hook.
18913         * diagnostic.c: Include langhooks.h.
18914         (format_with_decl, announce_function,
18915         default_print_error_function): Use new hook.
18916         * dwarf2out.c (dwarf2_name): Use new hook.
18917         * function.c: Include langhooks.h.
18918         (init_function_start): Use new hook.
18919         * langhooks-def.h (lhd_decl_printable_name): New.
18920         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
18921         (LANGHOOKS_INITIALIZER): Update.
18922         * langhooks.c (lhd_decl_printable_name): New.
18923         * langhooks.h (struct lang_hooks): New hook.
18924         * toplev.c (decl_name, decl_printable_name): Remove.
18925         (open_dump_file): Use new hook.
18926         (process_options): Remove old hook.
18927         * tree.h (decl_printable_name): Remove.
18928 objc:
18929         * objc-act.c (objc_init): Remove old hook.
18930         (objc_printable_name): Export.
18931         * objc-act.h (objc_printable_name): New.
18932         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
18933
18934 2002-03-19  Jim Blandy  <jimb@redhat.com>
18935
18936         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
18937         the start_source_file debug hook, not the current line number.
18938
18939 2002-03-19  Richard Henderson  <rth@redhat.com>
18940
18941         * flow.c (EH_USES): Provide default.
18942         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
18943         * doc/tm.texi (EH_USES): New.
18944
18945         * config/ia64/ia64.c (ia64_eh_uses): New.
18946         * config/ia64/ia64-protos.h: Update.
18947         * config/ia64/ia64.h (EH_USES): New.
18948
18949 2002-03-19  Richard Henderson  <rth@redhat.com>
18950
18951         * varasm.c (output_constant_def): Fix stupid typo.
18952
18953 2002-03-19  Richard Henderson  <rth@redhat.com>
18954
18955         PR 5879
18956         * except.c (current_function_has_exception_handlers): New.
18957         * except.h: Declare it.
18958         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
18959         Combine tests that disable all sibcalls for the function.
18960
18961 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
18962
18963         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
18964         for INTEGER_CST.
18965
18966 2002-03-19  Richard Henderson  <rth@redhat.com>
18967
18968         PR 5977, 5991
18969         * config/ia64/ia64.c: Revert 2002-03-01 patch.
18970         * config/ia64/ia64.h (INIT_EXPANDERS): New.
18971
18972 2002-03-19  Jim Blandy  <jimb@redhat.com>
18973
18974         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
18975         name, even if the replacement list contains no tokens, as required
18976         by Dwarf.
18977
18978 2002-03-19  Jason Merrill  <jason@redhat.com>
18979
18980         * varasm.c (globalize_decl): Get the name from the RTL, not
18981         DECL_ASSEMBLER_NAME.
18982
18983         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
18984
18985 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
18986
18987         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
18988         subdi_carry): Define.
18989
18990 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
18991
18992         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
18993         about -fpic/-fPIC if extra_warnings set.
18994
18995 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
18996
18997         * expr.c (expand_expr): Sign-extend CONST_INT generated from
18998         TREE_STRING_POINTER.
18999         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
19000
19001 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19002
19003         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
19004         in favor of SP if FRAME_POINTER_REQUIRED is false.
19005
19006 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
19007
19008         * emit-rtl.c (gen_int_mode): New function.
19009         * rtl.h: Prototype for it.
19010         * combine.c (make_extraction, simplify_comparison), expmed.c
19011         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
19012         (convert_modes, store_field), optabs.c (expand_fix),
19013         simplify-rtx.c (neg_const_int, simplify_unary_real),
19014
19015         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
19016         Use it instead of GEN_INT (trunc_int_for_mode (...)).
19017
19018 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
19019
19020         PR c/5656
19021         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
19022         convert_parm_for_inlining.
19023         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
19024         Define.
19025         * langhooks-def.h: Likewise.
19026         * objc/objc-lang.c: Likewise.
19027         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
19028         function.
19029         * tree-inline.c (initialize_inlined_parameters):
19030         Call convert_parm_for_inlining lang hook if needed.
19031         * c-typeck.c (c_convert_parm_for_inlining): New function.
19032         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
19033
19034 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
19035
19036         * calls.c (precompute_arguments): Do not assume that temporaries
19037         can be destroyed after expanding the argument.
19038         (expand_call): Likewise.
19039
19040 2002-03-15  Eric Christopher  <echristo@redhat.com>
19041
19042         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
19043         Fix register preference on last change.
19044         * config/mips/mips.c (mips_return_in_memory): New function.
19045         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
19046         * config/mips/mips-protos.h: Declare.
19047         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
19048         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
19049
19050 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
19051
19052         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
19053         a register too.
19054         (anddi3, iorsi3): Likewise.
19055
19056         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
19057         use %gprel for symbols that are going to be placed in linkonce
19058         sections.
19059
19060         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
19061         RETURN_ADDRESS_POINTER_REGNUM to $ra.
19062         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
19063         not needed.  Disregard leaf_function_p().
19064         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
19065         mips16 frame pointer.
19066         * config/mips/mips.md (store ra): Only to small SP offsets.
19067         2001-08-22  Graham Stott  <grahams@redhat.com>
19068         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
19069         return a REG rtx for the return address register.
19070
19071 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
19072
19073         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
19074         constant-pool addresses as "mode-dependent".
19075         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
19076
19077 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
19078
19079         PR target/5740
19080         * expr.c (emit_group_load): Use extract_bit_field if
19081         needed for CONCAT arguments.
19082
19083 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
19084
19085         PR target/4863
19086         * arm.md (tablejump): Make this a define_expand.  For PIC add the
19087         offset to the base of the table.
19088         (thumb_tablejump): Matcher for Thumb tablejump insn.
19089         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
19090         as the difference of two labels.
19091         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19092         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
19093         tables in the code.
19094         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
19095         * arm.c (get_jump_table_size): If the table is not in the text
19096         section, return zero.
19097
19098 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
19099
19100         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
19101         of gen_rtx_SUBREG.
19102         (arm_reload_out_hi): Use gen_lowpart instead of
19103         gen_rtx_SUBREG to access QImode components.
19104         * config/arm/arm.md: Disable zero_extend split for QImode
19105         subregs in BIG_ENDIAN mode.
19106         (storehi_bigend): Match use of least significant byte.
19107         (storeinthi): Remove extraneous SUBREG.
19108         Add missing construction of operands[2].
19109         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
19110         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
19111         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
19112
19113 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
19114
19115         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
19116         any_operand.
19117
19118 2002-03-17  Richard Henderson  <rth@redhat.com>
19119
19120         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
19121         explicitly.
19122
19123 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
19124
19125         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
19126         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
19127
19128 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19129
19130         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
19131
19132         * predict.c (estimate_bb_frequencies): Delete unused variables.
19133
19134 2002-03-17  Richard Henderson  <rth@redhat.com>
19135
19136         * config/ia64/ia64.c (ia64_attribute_table): Move before
19137         targetm definition.  Make static.
19138
19139 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
19140
19141         * c-common.h (yyparse, c_common_parse_file): New.
19142         * c-lang.c: Include c-common.h.
19143         (LANG_HOOKS_PARSE_FILE): Redefine.
19144         * c-lex.c: Include c-common.h.
19145         (yyparse): Rename c_common_parse_file.  Call yyparse.
19146         * c-parse.in (yyparse): Remove macro.
19147         * c-tree.h (yyparse_1): Remove.
19148         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
19149         (LANG_HOOKS_INITIALIZER): Update.
19150         * langhooks.h (struct lang_hoooks): New hook parse_file.
19151         * toplev.c (compile_file): Use parse_file hook.
19152         * tree.h (yyparse): Remove.
19153         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
19154
19155 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
19156
19157         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
19158         float_truncate, not fix.
19159         ("*truncdfsf2_real"): Ditto.
19160         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
19161
19162         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
19163
19164 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
19165
19166         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
19167         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
19168         where appropriate.  Make the second reference to
19169         leaf_function_p a function call, as intended.  Reindented.
19170
19171         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
19172         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
19173
19174         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
19175         add register to non-constant into sp.
19176
19177         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
19178         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
19179         (mips16_gp_pseudo_rtx): Lose.
19180         (INIT_EXPANDERS): Deleted.
19181         * config/mips/mips.c (mips_init_machine_status): New.
19182         (mips_free_machine_status): New.
19183         (mips_mark_machine_status): New.
19184         (override_options): Set them.
19185         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
19186         (struct machine_function): ... new.  Replaced all references.
19187         (mips_add_gc_roots): Don't mark them.
19188         (embedded_pic_fnaddr_reg): New, extracted from...
19189         (embedded_pic_offset): ... here.
19190         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
19191         (movsi): Likewise.
19192
19193 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
19194
19195         * cppinit.c: Revert -MD removal.
19196
19197 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19198
19199         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
19200         soft registers by default for 68HC12.
19201         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
19202         when compiling with -fomit-frame-pointer.
19203         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
19204         (expand_epilogue): Likewise.
19205         (m68hc11_gen_rotate): Use exg when rotating by 8.
19206
19207 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19208
19209         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
19210         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
19211         (splits): Remove unused add splits.
19212         ("*addhi3_68hc12"): Tune constraints.
19213         ("addhi_sp"): Try to use X instead of Y in all cases and if the
19214         constant fits in 8-bits and D is dead use abx/aby instructions.
19215         ("*addhi3"): Remove extern declaration of ix_reg.
19216         ("*subsi3"): Optimize and provide new split.
19217         ("subhi3"): Cleanup.
19218         ("*subhi3_sp"): Avoid saving X if we know it is dead.
19219         (arith splits): For 68hc12 save the address register on the stack
19220         and do the arithmetic operation with a pop.
19221
19222 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19223
19224         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
19225         allocating QImode in address registers.
19226         ("*movqi_m68hc11"): Likewise.
19227
19228 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
19229
19230         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
19231
19232 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
19233
19234         * cppinit.c (print_help): Display -MD and -MMD.
19235         Don't display usage string.  Update assertion syntax and
19236         typo.
19237         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
19238         (cpp_handle_option): Update.
19239
19240 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
19241
19242         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
19243         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
19244         and define it so that regardless of target CPU size,
19245         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
19246         of "int" rather than "long."
19247
19248 2002-03-15  Richard Henderson  <rth@redhat.com>
19249
19250         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
19251         size as a tree.
19252
19253 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19254
19255         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
19256         ("tstqi" split): Avoid using memory for tstqi on address register.
19257         (splits): Remove constraints.
19258         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
19259         ("cmpdf", "cmpsf"): Remove since not used.
19260         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
19261         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
19262
19263 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19264
19265         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
19266         ("neghi2"): Tighten constraints.
19267         ("one_cmplsi2"): Optimize and simplify split.
19268         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
19269
19270 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19271
19272         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
19273         and split of AND operation to clear the upper bits.
19274         ("*logicalsi3_zextqi"): Likewise.
19275         ("*logicallhi3_zexthi_ashift8"): Likewise.
19276         ("*logicalsi3_silshr16"): Likewise.
19277         ("logicalsi3_silshl16"): Likewise.
19278         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
19279
19280 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19281
19282         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
19283         (m68hc11_indirect_p): New function.
19284         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
19285         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
19286         TARGET_M6812.
19287         (asm_print_register): Likewise.
19288         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
19289         (m68hc11_indirect_p): Declare.
19290         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
19291         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
19292         (TARGET_SWITCHES): New option -mrelax.
19293         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
19294         destination.
19295         ("iorsi3", "xorsi3"): Likewise.
19296         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
19297         ("*andhi3_mem"): New to handle destination in memory with bclr
19298         and a scratch register.
19299         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
19300         ("*andhi3_const"): New when operand2 is constant.
19301         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
19302         ("*andhi3_gen"): Cleanup of the old "andhi3".
19303         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
19304         ("xorqi3"): Update constraints.
19305
19306 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19307
19308         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
19309         for reg_equiv_memory_loc when the operand is a register that does
19310         not get a hard register (stack location).
19311         (tst_operand): After reload, accept all memory operand.
19312         (symbolic_memory_operand): Fix detection of symbolic references.
19313         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
19314         accept symbols and any constant.
19315
19316 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19317
19318         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
19319         note on the insn that sets the soft frame register.
19320         (must_parenthesize): ix and iy are also reserved names.
19321         (print_operand_address): One more place where parenthesis are required
19322         to avoid confusion with register names.
19323         (m68hc11_gen_movhi): Allow push of stack pointer.
19324         (m68hc11_check_z_replacement): Fix handling of parallel with a
19325         clobber.
19326         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
19327         the replacement register is.
19328         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
19329         and D8_REGS classes.
19330         (MODES_TIEABLE_P): All modes are tieable except QImode.
19331
19332 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19333
19334         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
19335         (___subdi3): Likewise.
19336         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
19337         (__map_data_section): Optimize 68hc11 case.
19338
19339 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
19340
19341         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
19342         than a shift to avoid adding a register with itself.
19343         (m68hc11_memory_move_cost): Take into account NO_REGS.
19344         (m68hc11_register_move_cost): Update and use memory move cost
19345         for soft registers.
19346         (m68hc11_address_cost): Make cost of valid offset not 0 so that
19347         it gives more opportunities to cse to optimize.
19348         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
19349         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
19350
19351 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
19352
19353         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
19354         * c-common.def (CLEANUP_STMT): New tree node.
19355         * c-common.h (CLEANUP_DECL): New macro.
19356         (CLEANUP_EXPR): Likewise.
19357         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
19358         * expr.c (expand_expr): Tidy.
19359         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
19360         * tree-inline.c (initialize_inlined_parameters): Clean up
19361         new local variables.
19362
19363 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
19364
19365         PR bootstrap/4128
19366         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
19367         before movrXX only, use reg_overlap_mentioned_p.
19368         Only special case NE if just one insn can be generated.
19369
19370 2002-03-15  Jason Merrill  <jason@redhat.com>
19371
19372         * varasm.c (assemble_variable): Call resolve_unique_section before
19373         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
19374         of error_mark_node.
19375
19376 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
19377
19378         PR target/5170
19379         * arm.md (split pattern for thumb shiftable immediates): Add comment
19380         explaining non-obvious test.
19381
19382 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
19383
19384         PR target/5712
19385         * arm.md (movaddr, movaddr_insn): Delete.
19386
19387 2002-03-15  Jason Merrill  <jason@redhat.com>
19388
19389         * toplev.c (wrapup_global_declarations): Clarify variable handling.
19390         -fkeep-static-consts doesn't apply to comdats.
19391
19392 2002-03-14  Richard Henderson  <rth@redhat.com>
19393
19394         * c-decl.c: Include c-pragma.h.
19395         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
19396         (finish_function): Tidy.
19397         * c-pragma.c: Include c-common.h.
19398         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
19399         (handle_pragma_weak): Use them.
19400         (init_pragma): Register pending_weaks.
19401         * c-pragma.h (maybe_apply_pragma_weak): Declare.
19402         * print-tree.c (print_node): Print DECL_WEAK.
19403         * varasm.c (mark_weak_decls): Remove.
19404         (remove_from_pending_weak_list): Remove.
19405         (add_weak): Remove.
19406         (asm_emit_uninitialised): Call globalize_decl for weak commons.
19407         (weak_decls): Make a tree_list.
19408         (declare_weak): Cons weak_decls directly.
19409         (globalize_decl): Remove weak_decls elements directly.
19410         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
19411         symbols.  Don't pretend to handle aliases.
19412         (init_varasm_once): Update weak_decls registry.
19413         * Makefile.in: Update dependencies.
19414
19415 2002-03-14  Richard Henderson  <rth@redhat.com>
19416
19417         PR target/5312
19418         * config/ia64/ia64.c: Include tm_p.h last.
19419         (gen_nop_type): Remove duplicate definition.
19420         (cycle_end_fill_slots): Set sched_data for second L slot.
19421         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
19422         (nop_cycles_until): Fix typos.
19423
19424 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
19425
19426         PR optimization/5891
19427         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
19428
19429 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
19430
19431         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
19432           descriptors correctly.
19433
19434 2002-03-14  Michael Meissner  <meissner@redhat.com>
19435
19436         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
19437         100, allowing MAX_UNROLLED_INSNS to be overridden.
19438
19439         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
19440         --param.
19441
19442         * unroll.c (params.h): Include.
19443         (MAX_UNROLLED_INSNS): Delete, now in params.h.
19444
19445         * doc/invoke.texi (--param max-unroll-insns): Document.
19446
19447         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
19448
19449 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
19450
19451         * arm.md: Fix warnings about constraints in peepholes and splits.
19452
19453 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
19454
19455         * cpphash.h (struct lexer_state): Remove line_extension member.
19456         * cpplib.c (dequote_string, do_linemarker): New functions.
19457         (linemarker_dir): New data object.
19458         (DIRECTIVE_TABLE): No longer need to interpret #line in
19459         preprocessed source.  Delete obsolete comment about return
19460         values of handlers.
19461         (end_directive, directive_diagnostics, _cpp_handle_directive):
19462         Don't muck with line_extension.
19463         (directive_diagnostics): No need to issue warnings for
19464         linemarkers here.
19465         (_cpp_handle_directive): Issue warnings for linemarkers here,
19466         when appropriate.  Dispatch linemarkers to do_linemarker, not
19467         do_line.
19468         (do_line): Code to handle linemarkers split out to do_linemarker.
19469         Convert escape sequences in filename argument, both places.
19470
19471         * cppmacro.c (quote_string): Rename cpp_quote_string and
19472         export.  All callers changed.
19473         * cpplib.h (cpp_quote_string): Prototype.
19474         * cppmain.c (print_line): Call cpp_quote_string on to_file
19475         before printing it.
19476
19477         * doc/cpp.texi: Document that escapes are now interpreted in
19478         #line and in linemarkers, and that non-printing characters are
19479         converted to octal escapes when linemarkers are generated.
19480
19481 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
19482
19483         * emit-rtl.c (try_split): Use delete_insns.
19484         * recog.c (split_all_insns): Fix terminating condition.
19485
19486 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
19487             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
19488
19489         PR target/5828
19490         * arm.c (arm_output_epilogue): Fix floating-point register save
19491         adjustment when using a frame pointer.
19492
19493 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
19494
19495         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
19496         * config/mips/mips.c (compute_frame_size): Retrofit them here.
19497         (save_restore_insns, mips_expand_epilogue): And here.
19498         (build_mips16_call_stub): And here.
19499         (mips_function_value): Use the new macros to decide whether a single
19500         or complex float can be returned in floating-point registers.  Return
19501         a parallel rtx in the complex case.
19502
19503 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
19504
19505         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
19506         call after liveness analysis.
19507
19508         * recog.c (split_insn): Use delete_insn_and_edges.
19509
19510         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
19511         instructions to have branch prediction notes.
19512         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
19513
19514 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
19515
19516         * configure.in: Don't pass -Wno-long-long to a ADA compiler
19517         that doesn't support it.
19518         * configure: Regenerate.
19519
19520 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
19521
19522         PR target/5626
19523         * config/sparc/sparc.md (normal_branch, inverted_branch,
19524         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
19525         inverted_fp_branch): Adjust calls to output_cbranch.
19526         Set length attribute.
19527         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
19528         output_v9branch.  Set length attribute.
19529         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
19530         predicates.
19531         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
19532         (output_cbranch): Likewise.  Handle far branches.
19533         (output_v9branch): Handle far branches.
19534         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
19535         Adjust prototypes.
19536         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
19537         noov_compare64_op predicates.
19538
19539 2002-03-13  Jason Merrill  <jason@redhat.com>
19540
19541         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
19542         into the function and constify it.
19543         * gthr-dce.h, gthr-solaris.h: Likewise.
19544
19545 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
19546
19547         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
19548         * config/rs6000/rs6000.c (rs6000_va_arg): Use
19549         std_expand_builtin_va_arg if not ABI_V4.
19550
19551 2002-03-13  Jason Merrill  <jason@redhat.com>
19552
19553         * varasm.c (globalize_decl): New fn.
19554         (assemble_start_function): Use it.
19555         (asm_emit_uninitialized): Use it.
19556         (assemble_alias): Use it.
19557         (assemble_variable): Use it.
19558
19559 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
19560
19561         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
19562         2002-03-12 internal visibility change.
19563         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
19564         visibility into SYMBOL_REF_FLAG.
19565
19566 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
19567
19568         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
19569         VOIDmode operand.  Add compile-time optimization for constant results.
19570
19571 2002-03-12  Jason Merrill  <jason@redhat.com>
19572
19573         * c-typeck.c (convert_for_assignment): Don't allow conversions
19574         between pointers and references.  Only allow lvalues to convert to
19575         reference.
19576
19577 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
19578
19579         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
19580         before prologue, to avoid scheduling problems.
19581
19582 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
19583
19584         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
19585         (ELIMINABLE_REGS): Add sfp->sp.
19586         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
19587
19588 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
19589
19590         PR optimization/5892
19591         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
19592
19593 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
19594
19595         * loop.c (basic_induction_var): Don't call convert_modes if mode
19596         classes are different.
19597
19598 2002-03-12  Richard Henderson  <rth@redhat.com>
19599
19600         PR optimization/5901
19601         * function.c (reposition_prologue_and_epilogue_notes): Position
19602         the markers after/before the last/first insn not deleted.
19603
19604 2002-03-12  Richard Henderson  <rth@redhat.com>
19605
19606         PR optimization/5878
19607         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
19608         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
19609         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
19610
19611         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
19612         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
19613         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
19614
19615         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
19616         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
19617         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
19618         also.  Don't set it if not flag_pic.
19619         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
19620         to be INVALID_REGNUM when not used.
19621
19622 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
19623
19624         * expmed.c (store_bit_field): Reset alias set for memory.
19625         (extract_bit_field): Same.
19626
19627 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19628
19629         * c-common.c (c_tree_code_type, c_tree_code_length,
19630         c_tree_code_name, add_c_tree_codes): Delete.
19631         * c-common.h (add_c_tree_codes): Delete.
19632         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
19633         Define.
19634         * c-objc-common.c (c_objc_common_init): Don't call
19635         add_c_tree_codes, instead set lang_unsafe_for_reeval.
19636         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
19637         objc_tree_code_name, add_objc_tree_codes): Delete.
19638         (objc_init): Don't call add_objc_tree_codes.
19639         * objc/objc-lang.c (tree_code_type, tree_code_length,
19640         tree_code_name): Define.
19641         * toplev.c (lang_independent_init): Don't set
19642         tree_code_length[IDENTIFIER_NODE].
19643         * tree.c (tree_code_type, tree_code_length, tree_code_name):
19644         Delete definitions, moved to language front-ends.
19645         * tree.def (IDENTIFIER_NODE): Hardwire the length.
19646         * tree.h (tree_code_type, tree_code_length, tree_code_name):
19647         Const-ify.
19648         (tree_code_length): Change type to unsigned char.
19649
19650 2002-03-12  Richard Henderson  <rth@redhat.com>
19651
19652         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
19653         internal visibility change.
19654
19655 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
19656
19657         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
19658         validize_mem() instead of change_address to avoid clobbering
19659         memory attributes.
19660
19661 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
19662
19663         * c-lex.h (position_after_whitespace): Remove.
19664
19665 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
19666
19667         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
19668         (lex_string): Use unsigned char pointers.
19669
19670 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
19671
19672         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
19673         is not a valid memory_operand.
19674
19675 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
19676
19677         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
19678         * config/xtensa/lib1funcs.asm: Fix copyright to include
19679         special case for libgcc files.
19680         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
19681         (__divsi3): Likewise.
19682         (__umodsi3): Likewise.
19683         (__modsi3): Likewise.
19684         * config/xtensa/lib2funcs.S: Fix copyright to include
19685         special case for libgcc files.
19686
19687 2002-03-12  Tom Rix  <trix@redhat.com>
19688
19689         * collect2.c (resolve_lib_name): Move outside of
19690         OBJECT_FORMAT_COFF ifdef.
19691         (ignore_library): Same.
19692
19693 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
19694
19695         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
19696
19697 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
19698
19699         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
19700         to function_section before writing out the constant pool.
19701
19702 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
19703
19704         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
19705         zero_constant.
19706         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
19707
19708 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
19709
19710         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
19711         (adddi3): Likewise.
19712         (movdf): Likewise.
19713         (movdi): Likewise.
19714         (cmpsi splitter): Likewise.
19715         (modsi3): Fail if <= 0.
19716         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
19717         redundant test when HOST_BITS_PER_WIDE_INT != 32.
19718         (reg_or_sub_cint64_operand): Likewise.
19719         (num_insns_constant_wide): Optimize sign extension.
19720         (rs6000_legitimize_address): Likewise.
19721
19722 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
19723
19724         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
19725         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
19726
19727 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
19728
19729         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
19730         address calculation.
19731
19732 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
19733
19734         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
19735         scratch register to DImode / TImode.
19736         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
19737         register used does not overlap the target.
19738
19739 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19740
19741         * Makefile.in (debug.o): Depend on debug.h.
19742         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
19743         * debug.c (do_nothing_debug_hooks): Likewise.
19744         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
19745         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
19746         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
19747         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
19748         * dwarfout.c (dwarf_debug_hooks): Likewise.
19749         * integrate.c (output_inline_function): Likewise.
19750         * objc/objc-act.c (synth_module_prologue): Likewise.
19751         * sdbout.c (sdb_debug_hooks): Likewise.
19752         * toplev.c (debug_hooks): Likewise.
19753         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19754
19755 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19756
19757         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
19758         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
19759         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
19760         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
19761         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
19762         * defaults.h (POINTER_SIZE): Define.
19763         * doc/tm.texi (POINTER_SIZE): Document default.
19764
19765 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19766
19767         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
19768
19769 2002-03-11  Richard Henderson  <rth@redhat.com>
19770
19771         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
19772         if rebuild_label_notes_after_reload.
19773
19774 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
19775
19776         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
19777         emit pic register load if "internal" visibility.
19778         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
19779         (cris_expand_builtin_va_arg): Do all computations on trees.
19780
19781 2002-03-11  Richard Henderson  <rth@redhat.com>
19782
19783         * rtlanal.c: Include recog.h.
19784         (keep_with_call_p): Fix thinko.
19785         * Makefile.in (rtlanal.o): Update dependencies.
19786
19787 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
19788
19789         * genflags.c (gen_insn): Use IS_VSPACE.
19790         * genoutput.c (output_insn_data): Likewise.
19791         (process_template): Likewise.
19792
19793 2002-03-11  Richard Henderson  <rth@redhat.com>
19794
19795         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
19796
19797 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
19798
19799         * Makefile.in: Update.
19800         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
19801         Update documentation.
19802         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
19803         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
19804
19805 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
19806
19807         * Makefile.in: Give texi2pod its input file as a command line
19808         argument, not on stdin.
19809
19810 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
19811             Daniel Berlin  <dan@dberlin.org>
19812
19813         C++ alias analysis improvement.
19814         * alias.c (record_component_aliases): Record aliases for base
19815         classes too.
19816
19817 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
19818
19819         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
19820
19821 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
19822
19823         * toplev.c (vms_fopen): Remove, not needed.
19824
19825         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
19826
19827         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
19828
19829         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
19830         for FP, already done later.
19831
19832         * toplev.c (debug_args): Add entry for VMS_DEBUG.
19833         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
19834
19835 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
19836
19837         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
19838         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
19839         LARGEST_EXPONENT_IS_NORMAL for the given mode.
19840         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
19841         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
19842         (ediv, emul, eldexp, esqrt): Likewise.
19843         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
19844         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
19845         (saturate): New function.
19846         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
19847         (make_nan): Use a saturation value instead of a NaN if
19848         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
19849         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
19850         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
19851         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
19852         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
19853         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
19854         !ROUND_TOWARDS_ZERO.
19855         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
19856         (ROUND_TOWARDS_ZERO): Document.
19857
19858 2002-03-11  Andreas Jaeger  <aj@suse.de>
19859
19860         * cfg.c (dump_flow_info): Remove unused variable.
19861
19862 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
19863
19864         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
19865         computations on trees.
19866
19867 2002-03-10  Richard Henderson  <rth@redhat.com>
19868
19869         PR 5693:
19870         * reload.c (copy_replacements_1): New.
19871         (copy_replacements): Use it to recurse through the rtx.
19872
19873 2002-03-10  Richard Henderson  <rth@redhat.com>
19874
19875         * loop.c (strength_reduce): Compute number of iterations as
19876         unsigned HOST_WIDE_INT.
19877
19878 2002-03-10  Richard Henderson  <rth@redhat.com>
19879
19880         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
19881         to move away from the end of the block.
19882
19883 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
19884
19885         PR preprocessor/5899
19886         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
19887
19888 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19889
19890         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
19891
19892         * attribs.c (decl_attributes): Fix signed/unsigned warning.
19893
19894 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
19895
19896         * config/mmix/mmix.c: Improve comments.
19897         (mmix_target_asm_function_prologue): Drop variable
19898         empty_stack_frame.  Don't allocate unused slot above fp.
19899         (mmix_target_asm_function_epilogue): Mirror prologue changes.
19900         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
19901         brace in first column.
19902         (enum reg_class): Ditto.
19903         (FIRST_PARM_OFFSET): Now 0.
19904         (USER_LABEL_PREFIX): Remove #if 0:d definition.
19905
19906 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19907
19908         * combine.c (make_extraction): Fix error in last change.
19909
19910 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19911
19912         * c4x.c (c4x_fp_reglist): Const-ify.
19913         * cris.c (cris_print_operand): Likewise.
19914         * i386.c (ix86_va_arg): Likewise.
19915         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
19916         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
19917         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
19918         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
19919         * mcore.h (regno_reg_class): Likewise.
19920         * mips.c (gen_int_relational): Likewise.
19921         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
19922         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
19923         * pdp11.c (move_costs): Likewise.
19924         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
19925         * s390.c (s390_branch_condition_mnemonic, regclass_map):
19926         Likewise.
19927         * s390.h (regclass_map): Likewise.
19928         * sh.c (shift_amounts): Likewise.
19929         * sh.md (rotlsi3): Likewise.
19930
19931 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
19932
19933         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
19934         (ne0+5): Use new clobber to generate proper shift pattern.
19935         Patch by Michael Matz <matz@kde.org>.
19936
19937 2002-03-09  Andreas Schwab  <schwab@suse.de>
19938
19939         * gcc.c (validate_all_switches): Also handle `%W{...}'.
19940
19941 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
19942
19943         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
19944
19945 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
19946
19947         PR middle-end/5877
19948         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
19949         even for non-representable constants.
19950
19951 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19952
19953         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
19954         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
19955         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
19956         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
19957         (pop_function_context): Compute MAY_SHARE parameter for
19958         fixup_var_refs.
19959         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
19960         (gen_mem_addressof): Call fixup_var_refs with new parm.
19961
19962         * combine.c (make_extraction): Don't make extension of CONST_INT.
19963
19964 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
19965
19966         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
19967         in o32 and o64 ABIs.
19968         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
19969         but getting fixed-size structs passed in registers regardless of
19970         padding in o32 and o64 ABIs.
19971
19972         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
19973         offset before loading address of argument passed by transparent
19974         reference.
19975
19976 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19977
19978         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
19979
19980 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
19981
19982         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
19983         marker such that registers after it are saved.
19984
19985 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19986
19987         * sparc.c (arith_4096_operand): Fix error in last change.
19988
19989 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
19990
19991         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
19992         defaults for MEABI.
19993
19994 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
19995
19996         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
19997         vectors.
19998
19999 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
20000
20001         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
20002
20003 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
20004
20005         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
20006         removed; fix return value.
20007         * combine.c (combine_instructions): Dirtify blocks where we failed to
20008         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
20009         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
20010
20011 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20012
20013         * gcse.c (insert_insn_end_bb): Fix typo in last change.
20014
20015 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
20016
20017         * recog.c (peephole2_optimize): Re-distribute EH edges.
20018
20019 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
20020
20021         * expr.c (expand_expr): Use unsave lang hook.
20022         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
20023         (LANG_HOOKS_INITIALIZER): Update.
20024         * langhooks.h (struct lang_hooks): New hook unsave.
20025         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
20026         (unsave_expr_1): Remove unused lang_unsave_expr_now.
20027         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
20028         (unsave_expr_now): Remove.
20029         * tree.h (unsave_expr_now, lang_unsave,
20030         lang_unsave_expr_now): Remove.
20031         (lhd_unsave): New.
20032
20033 2002-03-08  Andreas Jaeger  <aj@suse.de>
20034
20035         * flow.c (propagate_block_delete_insn): Remove unused variable.
20036
20037 2002-03-08  Kazu Hirata  <kazu@hxi.com>
20038
20039         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
20040         insn length for memory load/store.
20041
20042 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
20043
20044         * doc/install.texi (--with-libiconv-prefix): Document.
20045
20046 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
20047
20048         * doc/sourcebuild.texi: Fix typo.
20049
20050 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
20051
20052         PR c/3711
20053         * builtins.c (std_expand_builtin_va_arg): Do all computations on
20054         trees.
20055
20056 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20057
20058         * rtl.c (copy_most_rtx): Move from here ...
20059         * emit-rtl.c (copy_most_rtx): ... to here.
20060
20061 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
20062
20063         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
20064         SUBTARGET_CPP_SIZE_SPEC.
20065         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
20066
20067         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
20068
20069 2002-03-07  Matt Hiller  <hiller@redhat.com>
20070
20071         * gensupport.c (first_dir_md_include): Renamed from include;
20072         change all references.
20073         (last_dir_md_include): Renamed from last_include; change all
20074         references.
20075         (init_md_reader): Unconditionally initialize base_dir whether or
20076         not filename is a relative path.
20077
20078 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
20079
20080         * config/fp-bit.c (_unord_f2): Compile it in even if
20081         US_SOFTWARE_GOFAST is enabled.
20082
20083         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
20084         NULL_RTX.  Set all HFmode operations as NULL_RTX.
20085         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
20086         NULL_RTX, try reversing the comparison and the operands.
20087
20088 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
20089
20090         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
20091         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
20092         and MATCH_OP_DUP.
20093
20094 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
20095
20096         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
20097
20098 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
20099
20100         * basic-block.h (fixup_abnormal_edges): Declare.
20101         * reload1.c (fixup_abnormal_edges): New function.
20102         * reg-stack.c (convert_regs): Use it.
20103
20104         * gcse.c (insert_insn_end_bb): Handle trapping insns.
20105
20106         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
20107
20108 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
20109
20110         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
20111         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
20112         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
20113         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
20114         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
20115         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
20116         unless x and y could be infinite.
20117         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
20118         Check that the common type of both arguments is a real, even for
20119         targets without unordered comparisons.  Allow an integer argument
20120         to be compared against a real.
20121         (expand_tree_builtin): Use expand_unordered_cmp.
20122         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
20123         * cse.c (fold_rtx): Likewise.  Fix indentation.
20124         * fold-const.c (fold_real_zero_addition_p): New.
20125         (fold): Use it, and the new HONOR_... macros.
20126         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
20127         * jump.c (reversed_comparison_code_parts): After searching for
20128         the true comparison mode, use HONOR_NANS to decide whether it
20129         can be safely reversed.
20130         (reverse_condition_maybe_unordered): Remove IEEE check.
20131         * simplify-rtx.c (simplify_binary_operation): Use the new macros
20132         to decide which simplifications are valid.  Allow the following
20133         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
20134         and (a - -b) to (a + b).
20135         (simplify_relational_operation): Use HONOR_NANS.
20136         * doc/tm.texi: Document the MODE_HAS_... macros.
20137
20138 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
20139
20140         * combine.c (simplify_comparison): If simplifying a logical shift
20141         right and compare with constant, force the comparison to unsigned.
20142
20143 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
20144
20145         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
20146
20147         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
20148         -mabi=no-altivec
20149         (alt_reg_names): Remove % for vrsave.
20150
20151 2002-03-06  Richard Henderson  <rth@redhat.com>
20152
20153         PR optimization/5844
20154         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
20155         if used indicates we've already emitted one copy of an operand.
20156         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
20157         (gen_split): Supply a non-null used.
20158
20159 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
20160
20161         * reload1.c (reload): Unshare all rtl after reload is done.
20162
20163         * simplify-rtx.c (simplify_plus_minus): Do not abort,
20164         but simply fail if the expression is too complex to simplify.
20165         (simplify_gen_binary): Handle simplify_plus_minus failures.
20166
20167 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
20168
20169         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
20170         consistently call delete_trivially_dead_insns after CSE and GCSE;
20171         fix DFI_life dumping; do jump threading after liveness; do crossjumping
20172         after liveness2; update comment in last crossjumping.
20173         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
20174
20175 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
20176
20177         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
20178         after completing fast dead code elimination.
20179
20180         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
20181         COMPARE operator.
20182
20183 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
20184
20185         * version.c:  Fix misplaced leading blanks on first line.
20186
20187 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
20188
20189         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
20190
20191 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
20192
20193         * cfgcleanup.c (mentions_nonequal_regs): New function.
20194         (thread_jump): Use it.
20195         * toplev.c (rest_of_compilation): Run jump threading after
20196         liveness.
20197
20198 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
20199
20200         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
20201         patch.
20202
20203 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
20204
20205         * predict.c (estimate_bb_frequencies): Do not reload the
20206         frequencies from notes.
20207
20208 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
20209
20210         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
20211         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
20212
20213         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
20214         delete_noop_moves): Return indeger.
20215         * flow.c (ndead): New variable.
20216         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
20217         BB argument; update callers.
20218         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
20219         (life_analysis): Do not call purge_all_dead_edges.
20220         (update_life_info): Return number of deleted insns; print statistics.
20221         (update_life_info_in_dirty_blocks): likewise.
20222         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
20223         return number of insns deleted.
20224
20225         * cse.c: Include timevar.h
20226         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
20227         iterate until stabilizes; print statistics; return number of killed
20228         insns.
20229         * Makefile.in: (cse.o): Add timevar.h dependency
20230         * rtl.h (delete_trivially_dead_insns): New.
20231         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
20232         * toplev.c (rest_of_compilation): Update callers.
20233
20234         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
20235         (try_optimize_cfg): Do not update liveness.
20236         (cleanup-cfg): Loop until try_optimize_cfg and dead code
20237         removal stabilizes; use delete_trivially_dead_insns.
20238
20239         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
20240
20241 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
20242
20243         * cppmain.c (setup_callbacks): Disable #pragma and #ident
20244         callbacks when processing assembly language.
20245
20246 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20247
20248         * pa.h (ASM_FILE_END): Define.
20249         * som.h (ASM_FILE_END): Delete.
20250
20251         * pa.c (function_arg): Don't pass floats in general registers in
20252         indirect calls if TARGET_ELF32.
20253
20254 2002-03-05  Richard Henderson  <rth@redhat.com>
20255
20256         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
20257
20258 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
20259
20260         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
20261
20262 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
20263
20264         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
20265         -r command line.  Don't hide any symbols if not building
20266         shared libgcc.
20267
20268 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
20269
20270         * cfg.c (dump_flow_info): Warn about profile mismatches.
20271         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
20272         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
20273
20274 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
20275
20276         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
20277         wide volatile memory by parts.
20278
20279 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
20280
20281         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
20282         is NULL.
20283
20284 2002-03-05  Richard Henderson  <rth@redhat.com>
20285
20286         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
20287
20288 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
20289
20290         * toplev.c (documented_lang_options): Document more
20291         language-specific options.
20292         * doc/invoke.texi (Warning Options): Correct documentation for
20293         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
20294         * c-decl.c (c_decode_option): Use a table to handle warning options.
20295
20296 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
20297
20298         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
20299         parameter to mmix_encode_section_info.
20300         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
20301         relocatably.  Always produce ELF, not mmo if linking relocatably.
20302         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
20303         first is non-zero, don't add symbol prefix.
20304         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
20305         prototype accordingly.
20306
20307 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
20308
20309         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
20310
20311 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
20312
20313         * configure.in: Increase required makeinfo version to 4.1.
20314         * configure: Regenerate.
20315
20316 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
20317
20318         * .cvsignore: Remove *.info* and genrtl*; these files are generated
20319         elsewhere now.
20320
20321 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
20322
20323         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
20324         * doc/invoke.texi: Fix @math uses.
20325
20326 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
20327
20328         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
20329         removal
20330
20331 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
20332
20333         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
20334         (powerpc-*-eabisimaltivec*): Same.
20335
20336         * config/rs6000/t-ppcendian: New.
20337
20338 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
20339
20340         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
20341         nonimmediate_src_operand and nonimmediate_lsrc_operand to
20342         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
20343
20344 2002-03-03  Richard Henderson  <rth@redhat.com>
20345
20346         * toplev.c (rest_of_decl_compilation): Revert last two changes.
20347
20348 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
20349
20350         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
20351         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
20352         tree.c, config/m68k/m68k.c:
20353         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
20354         REAL_ARITHMETIC blocks unconditional.  Delete some further
20355         #ifdef blocks predicated on REAL_ARITHMETIC.
20356         * flags.h, toplev.c: Delete remaining references to
20357         flag_pretend_float.
20358
20359         * doc/invoke.texi: Remove documentation of -fpretend-float.
20360         * doc/tm.texi: Describe the various REAL_* macros as provided by
20361         real.h, not by the target configuration files.
20362
20363         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
20364         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
20365         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
20366         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
20367         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
20368         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
20369         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
20370         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
20371         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
20372         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
20373         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
20374         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
20375         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
20376         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
20377         config/xtensa/xtensa.h:
20378         Do not define, undefine, or mention in comments any of
20379         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
20380         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
20381         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
20382         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
20383         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
20384         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
20385         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
20386         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
20387         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
20388
20389 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20390
20391         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
20392         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
20393         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
20394         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
20395         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
20396         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
20397         Delete.
20398         * defaults.h (BITS_PER_WORD): Define.
20399         * doc/tm.texi (BITS_PER_WORD): Document default value.
20400
20401         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
20402         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
20403         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
20404
20405 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20406
20407         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
20408         lieu of explicit sizeof/sizeof.
20409         * i386.c (override_options, ix86_init_mmx_sse_builtins,
20410         ix86_expand_builtin): Likewise.
20411         * mips.c (mips_add_gc_roots): Likewise.
20412         * mmix.c (mmix_output_condition): Likewise.
20413         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
20414         altivec_init_builtins): Likewise.
20415         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
20416         * cppexp.c (Nsuff, parse_number): Likewise.
20417         * cppinit.c (builtin_array_end): Likewise.
20418         * gcc.c (n_default_compilers, process_command): Likewise.
20419         * genpreds.c (output_predicate_decls): Likewise.
20420         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
20421         * lcm.c (N_ENTITIES): Likewise.
20422         * stor-layout.c (set_sizetype): Likewise.
20423
20424 2002-03-03  Richard Henderson  <rth@redhat.com>
20425
20426         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
20427         for types or labels.
20428
20429 2002-03-03  Richard Henderson  <rth@redhat.com>
20430
20431         * c-decl.c (start_decl): Initialized variables are not common.
20432
20433 2002-03-02  Per Bothner  <per@bothner.com>
20434
20435         * gcc.c (option_map):  Suport new --bootclasspath option.
20436         --CLASSPATH is now just an alias for --classpath.
20437
20438 2002-03-02  Richard Henderson  <rth@redhat.com>
20439
20440         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
20441         load if "internal" visibility.
20442         * doc/extend.texi: Document visibility meanings.
20443
20444 2002-03-02  Richard Henderson  <rth@redhat.com>
20445
20446         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
20447         to functions as well.
20448
20449 2002-03-02  Richard Henderson  <rth@redhat.com>
20450
20451         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
20452         (handle_visibility_attribute): Don't call assemble_visibility.
20453         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
20454         without asmspec.  Invoke assemble_alias when needed.
20455         * varasm.c (maybe_assemble_visibility): New.
20456         (assemble_start_function, assemble_variable, assemble_alias): Use it.
20457
20458 2002-03-02  Richard Henderson  <rth@redhat.com>
20459
20460         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
20461         invoke ENCODE_SECTION_INFO with first call flag.
20462
20463         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
20464         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
20465         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
20466         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
20467         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
20468         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
20469         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
20470         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
20471         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
20472         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
20473         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
20474         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
20475         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
20476         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
20477         config/mcore/mcore-protos.h, config/mcore/mcore.c,
20478         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
20479         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
20480         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
20481         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
20482         config/sh/sh.h, config/sparc/sparc.h,
20483         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
20484         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
20485         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
20486         FIRST argument.  As needed, examine it and do nothing.
20487
20488         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
20489         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
20490         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
20491
20492         * config/arm/t-pe (pe.o): Add dependencies.
20493
20494 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20495
20496         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
20497         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
20498         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
20499         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
20500         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
20501         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
20502         * defaults.h (BITS_PER_UNIT): Define.
20503         * doc/tm.texi (BITS_PER_UNIT): Document default value.
20504
20505 2002-03-02  Kazu Hirata  <kazu@hxi.com>
20506
20507         * config/h8300/h8300-protos.h: Add a prototype for
20508         compute_a_shift_length.
20509         * config/h8300/h8300.c (h8300_asm_insn_count): New.
20510         (compute_a_shift_length): Likewise.
20511         (h8300_adjust_insn_length): Do not adjust insn length of shift
20512         insns.
20513         * config/h8300/h8300.md (anonymous shift patterns): Use
20514         compute_a_shift_length.
20515
20516 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20517
20518         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
20519         trunc_int_for_mode.
20520
20521         * emit-rtl.c (offset_address): Call update_temp_slot_address.
20522
20523 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20524
20525         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
20526         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
20527         * flags.h (flag_zero_initialized_in_bss): Declare.
20528         * toplev.c (flag_zero_initialized_in_bss): New flag.
20529         (lang_independent_options): Add flag_zero_initialized_in_bss.
20530         * tree.c (initializer_zerop): New function.
20531         * tree.h (initializer_zerop): Declare.
20532         * varasm.c (assemble_variable): If we can emit bss, put zero
20533         initializers in the bss section.
20534
20535 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
20536
20537         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
20538         like more than one symbol per .weak directive.
20539
20540 2002-03-01  Richard Henderson  <rth@redhat.com>
20541
20542         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
20543         adjust argument_pointer by pretend_args_size.
20544         (ia64_va_start): Adjust va_start address by -pretend_args_size.
20545
20546 2002-03-01  Kazu Hirata  <kazu@hxi.com>
20547
20548         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
20549
20550 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
20551
20552         * toplev.c (rest_of_compilation): Delete dead jumptables before
20553         loop.
20554         * flow.c (delete_dead_jumptables): Make global.
20555         * rtl.h (delete_dead_jumptables): Declare.
20556
20557 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
20558
20559         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
20560         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
20561         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
20562
20563 2002-03-01  Kazu Hirata  <kazu@hxi.com>
20564
20565         * config/h8300/h8300-protos.h: Fix formatting.
20566         * config/h8300/h8300.c: Likewise.
20567         * config/h8300/h8300.h: Likewise.
20568
20569 2002-03-01  Kazu Hirata  <kazu@hxi.com>
20570
20571         * config/h8300/h8300.c (print_operand): Support 16-bit
20572         constant addresses.
20573         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
20574
20575 2002-02-28  Richard Henderson  <rth@redhat.com>
20576
20577         * expmed.c (store_bit_field): Prevent generation of CONCATs;
20578         pun complex values as integers; use gen_lowpart instead of
20579         gen_rtx_SUBREG.
20580         (extract_bit_field): Likewise.
20581
20582 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
20583             David Edelsohn  <edelsohn@gnu.org>
20584
20585         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
20586         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
20587         (SUPPORTS_WEAK): Likewise.
20588         * output.h (add_weak): Add tree param.
20589         * varasm.c (add_weak): Likewise.  Save decl.
20590         (struct weak_syms): Add decl field.
20591         (mark_weak_decls): New function.
20592         (init_varasm_once): ggc_add_root mark_weak_decls.
20593         (assemble_start_function): Use ASM_WEAKEN_DECL.
20594         (assemble_variable): Likewise.
20595         (assemble_alias): Likewise.
20596         (declare_weak): Pass decl to add_weak.
20597         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
20598         (remove_from_pending_weak_list): Declare and define for
20599         ASM_WEAKEN_DECL.
20600         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
20601         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
20602         * defaults.h (SUPPORTS_WEAK): Likewise.
20603         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
20604         .weak for code sym.  Do emit .size for descriptor sym.
20605         (ASM_DECLARE_FUNCTION_SIZE): Define.
20606         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
20607         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
20608         .lglobl unless TARGET_XCOFF.  Formatting fixes.
20609         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
20610         .weak for code sym.
20611         (HANDLE_PRAGMA_WEAK): Remove.
20612         (ASM_WEAKEN_LABEL): Remove.
20613         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
20614
20615 2002-03-01  Jason Merrill  <jason@redhat.com>
20616
20617         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
20618         (TARGET_EXPR_CLEANUP): New macro.
20619
20620 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
20621
20622         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
20623         to take ptr_extend into account as third type of extension.
20624         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
20625         fields used by SUBREG_PROMOTED_UNSIGNED_P.
20626         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
20627         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
20628         * calls.c (precompute_arguments): Use new macro.
20629         (expand_call): Ditto.
20630         * combine.c (nonzero_bits): Ditto.
20631         (record_promoted_value): Ditto.
20632         * expr.c (store_expr): Ditto.
20633         (expand_expr): Ditto.
20634         * function.c (assign_parms): Ditto.
20635
20636 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
20637
20638         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
20639         override -shared and -shared-libgcc.
20640
20641 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
20642
20643         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
20644         of "ultrasparc".
20645         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
20646         to be broken.
20647
20648 2002-02-28  Richard Henderson  <rth@redhat.com>
20649
20650         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
20651         4 cycle latency from MM producers.
20652         (ia64_internal_sched_reorder): Likewise with pipeline flush.
20653
20654 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
20655
20656         * mklibgcc.in: Don't use GNU make extension.
20657
20658 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
20659
20660         * c-parse.in (STATIC): New terminal.
20661         (scspec): New non-terminal.  Update productions accordingly.
20662         (program): Remove bogus ifc / end ifc.
20663         (array_declarator): Simplify production using STATIC.
20664
20665 2002-02-28  Jim Meyering  <meyering@lucent.com>
20666
20667         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
20668         \a still means TARGET_BELL.
20669
20670 2002-02-28  Richard Henderson  <rth@redhat.com>
20671
20672         * haifa-sched.c (sched_emit_insn): New.
20673         (schedule_block): Use last_scheduled_insn to track last insn.
20674         * sched-int.h (sched_emit_insn): Prototype.
20675         * config/ia64/ia64.c (last_issued): Remove.
20676         (ia64_variable_issue): Don't set it.
20677         (nop_cycles_until): Use sched_emit_insn.
20678
20679 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
20680
20681         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
20682         extended constants.
20683
20684 2002-02-28  Kazu Hirata  <kazu@hxi.com>
20685
20686         * config/h8300/h8300.c: Fix formatting.
20687         * config/h8300/h8300.h: Likewise.
20688
20689 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
20690
20691         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
20692         which may overwrite the high byte of the frame pointer.
20693
20694 2002-02-28  Bo Thorsen  <bo@suse.de>
20695
20696         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
20697         (STARTFILE_SPEC): Add 64 bit files.
20698         (ENDFILE_SPEC): Likewise.
20699
20700 2002-02-28  Jason Merrill  <jason@redhat.com>
20701
20702         * c-decl.c (finish_function): Only warn about missing return
20703         statement with -Wreturn-type.
20704
20705 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
20706
20707         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
20708
20709         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
20710         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
20711
20712 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
20713
20714         * basic-block.h (BB_REACHABLE): Renumber.
20715         (BB_DIRTY, BB_NEW): New flags.
20716         (clear_bb_flags): Declare.
20717         (update_life_info_in_dirty_blocks): Declare.
20718         * cfg.c (clear_bb_flags): New function.
20719         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
20720         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
20721         reorder_insns, emit_insn_after): Mark block as dirty.
20722         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
20723         (update_life_info_in_dirty_blocks): New function.
20724         * recog.c (apply_change_group): Dirtify block.
20725
20726         * cse.c (cse_insn): Reorder emitting of jump insn to keep
20727         cfg consistent.
20728         * gcse.c (delete_null_pointer_checks): Likewise.
20729
20730         * toplev.c (dump_file_index): Move cse2 after bp,
20731         add DFI_null
20732         (dump_file_info): Similary.
20733         (rest_of_compilation): Avoid most of CFG rebuilds;
20734         do first if converision after null pointer checks, do cse2
20735         after branch prediction; avoid full liveness rebuild after
20736         initializing subregs.
20737         * invoke.texi (-d options): Document -du, renumber.
20738
20739         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
20740         (notice_new_block): Do not set BB_UPDATE_LIFE.
20741         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
20742          merge_blocks_move_successor_nojumps, merge_blocks,
20743          try_crossjump_to_edge): Likewise.
20744         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
20745         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
20746         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
20747         (merge_of_block): Do not use life_data_ok.
20748         (find_if_case_1): Do not use SET_UPDATE_LIFE.
20749         (if_convert): Use BB_DIRTY mechanizm to update life.
20750         * lcm.c (optimize_mode_switching): Update
20751         update_life_info_in_dirty_blocks
20752
20753 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
20754
20755         * Makefile.in (integrate.o): Update.
20756         * c-decl.c (copy_lang_decl): Rename.
20757         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
20758         * integrate.c: Include langhooks.h.
20759         (copy_decl_for_inlining): Update to use langhook.
20760         * langhooks-def.h (lhd_do_nothing_t,
20761         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
20762         (LANG_HOOKS_INITIALIZER): Update.
20763         * langhooks.c (lhd_do_nothing_t): New.
20764         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
20765         * tree.h (copy_lang_decl): Remove.
20766 objc:
20767         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
20768
20769 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
20770
20771         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
20772         POST_DEC, and POST_MODIFY.
20773
20774 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
20775
20776         * c-typeck.c (digest_init): Remove unused parameter; all
20777         callers changed.
20778
20779 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
20780
20781         * expmed.c (expand_shift): Correctly test for low part of a
20782         subreg.
20783
20784 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
20785
20786         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
20787         insn UIDs with insn addresses.
20788
20789 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
20790
20791         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
20792         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
20793         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
20794         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
20795         gcc.c, toplev.c: Delete code implementing -traditional mode.
20796
20797         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
20798         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
20799         Document removal of -traditional mode for compilation, and
20800         remove documentation only relevant to that mode.
20801
20802         * config/nextstep.h, config/ptx4.h, config/svr4.h,
20803         config/convex/convex.h, config/d30v/d30v.h,
20804         config/i386/dgux.h, config/i386/osf1elf.h,
20805         config/i386/osfelf.h, config/i386/osfrose.h,
20806         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
20807         config/m68k/hp310.h, config/m88k/dgux.h,
20808         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
20809         config/m88k/m88k.h, config/m88k/openbsd.h,
20810         config/mips/abi64.h, config/mips/osfrose.h,
20811         config/mips/svr4-5.h, config/mips/svr4-t.h,
20812         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
20813         config/stormy16/stormy16.h: Remove all references to
20814         -traditional from target specs.  Delete all mention of the
20815         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
20816         delete a couple of commented-out definitions of
20817         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
20818         to -traditional.
20819
20820         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
20821         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
20822
20823 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
20824
20825         * mklibgcc.in: Don't use \n in a line subject to
20826         interpretation by echo.
20827
20828 2002-02-27  Graham Stott  <grahams@redhat.com>
20829
20830         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
20831         Constify NAME.
20832
20833         * loop.c (prescan_loop): Handle PARALLEL.
20834
20835         * unroll.c (loop_iterations): Return 0 if the add_val for
20836         a BIV is REG.
20837
20838         * final.c (output_operand_lossage): Constify PFX_STR.
20839
20840         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
20841
20842 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
20843
20844         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
20845         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
20846
20847 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
20848
20849         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
20850
20851 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
20852
20853         * cpplex.c (_cpp_lex_token): Handle directives in macro
20854         arguments.
20855         * cpplib.c (_cpp_handle_directive): Save and restore state
20856         if parsing macro args when entering a directive.
20857         * cppmacro.c (collect_args): No need to handle directives
20858         in macro arguments.
20859         (enter_macro_context, replace_args): Use the original macro
20860         definition in case it was redefined whilst collecting arguments.
20861 doc:
20862         * cpp.texi: Update.
20863
20864 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
20865
20866         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
20867         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
20868         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
20869         method on AIX.
20870         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
20871         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
20872         (load_toc_v4_PIC_2): Same.
20873
20874 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
20875
20876         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
20877
20878 2002-02-26  Richard Henderson  <rth@redhat.com>
20879
20880         * config/alpha/alpha.md (ashldi_se): Re-enable.
20881
20882 2002-02-26  Richard Henderson  <rth@redhat.com>
20883
20884         * config/alpha/alpha.c (alpha_encode_section_info): Examine
20885         MODULE_LOCAL_P; improve commentary.
20886
20887 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
20888
20889         * doc/cpp.texi: Clarify documentation of relationship between
20890         #line and #include.
20891
20892 2002-02-26  Kazu Hirata  <kazu@hxi.com>
20893
20894         * config/h8300/h8300-protos.h: Update the prototype for
20895         compute_logical_op_length.  Add the prototype for
20896         compute_logical_op_cc.
20897         * config/h8300/h8300.c (compute_logical_op_length): Figure out
20898         code from operands.
20899         (compute_logical_op_cc): New.
20900         * config/h8300/h8300.md: Combine all the logical op patterns
20901         in HImode and SImode.  Use compute_logical_op_cc.
20902
20903 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
20904
20905         * config/i386/i386.c (print_operand): Don't append ATT-style
20906         length suffixs to x87 opcodes when in Intel mode.
20907
20908 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
20909
20910         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
20911         (init_emit_once): Update calls.
20912         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
20913         (init_syntax_once): Prototype.
20914
20915 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
20916
20917         * pa-linux.h (LIB_SPEC): Update definition.
20918         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
20919
20920 2002-02-26  Richard Henderson  <rth@redhat.com>
20921
20922         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
20923         if we emitted a stop bit.
20924
20925 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
20926
20927         * configure.in (libgcc_visibility): Substitute.
20928         * configure: Rebuilt.
20929         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
20930         defined symbols .hidden.
20931
20932 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
20933
20934         * attribs.c (c_common_attribute_table): Add visibility.
20935         (handle_visibility_attribute): New function.
20936         * varasm.c (assemble_visibility): New function.
20937         * output.h (assemble_visibility): Add prototype.
20938         * tree.h (MODULE_LOCAL_P): Define.
20939         * crtstuff.c (__dso_handle): Use visibility attribute.
20940         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
20941         for MODULE_LOCAL_P symbols too.
20942         * config/ia64/ia64.c (ia64_encode_section_info): Handle
20943         MODULE_LOCAL_P symbols the same way as local symbols.
20944         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
20945         into .sdata/.sbss by the user.
20946         * doc/extend.texi (Function Attributes): Document visibility
20947         attribute.
20948
20949 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
20950
20951         PR debug/5770
20952         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
20953         STRING_CST initializer spanning the whole variable without
20954         embedded zeros.
20955         If expand_expr returned MEM, don't use it.
20956
20957 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
20958
20959         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
20960         generate a die for the lexical block.
20961
20962 2002-02-26  Kazu Hirata  <kazu@hxi.com>
20963
20964         * config/h8300/h8300-protos.h: Add a prototype for
20965         compute_logical_op_length.
20966         * config/h8300/h8300.c (compute_logical_op_length): New.
20967         * config/h8300/h8300.md (anonymous logical patterns): Use
20968         compute_logical_op_length for length.
20969
20970 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
20971
20972         * dwarf2out.c (modified_type_die): Do not call type_main_variant
20973         for vectors.
20974         (gen_type_die): Same.
20975
20976         * attribs.c (handle_vector_size_attribute): Set debug information.
20977
20978 2002-02-26  Daniel Egger  <degger@fhm.edu>
20979
20980         * config/rs6000/rs6000.md: Swap define_insn attributes to
20981         fix incorrect generation of merge high instructions instead
20982         of merge low.
20983
20984 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
20985
20986         * c-typeck.c (really_start_incremental_init): Use
20987         bitsize_zero_node for vectors.
20988
20989 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
20990
20991         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
20992         ("*set_vrsave_internal"): Same.
20993
20994 2002-02-25  Richard Henderson  <rth@redhat.com>
20995
20996         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
20997         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
20998
20999 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
21000
21001         PR target/5755
21002         * config/i386/i386.c (ix86_return_pops_args): Only pop
21003         fake structure return argument if it was passed on the stack.
21004
21005 2002-02-25  Jason Merrill  <jason@redhat.com>
21006
21007         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
21008         RESULT_DECL.
21009
21010 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
21011
21012         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
21013         link with shared_name only.
21014         * doc/invoke.texi (Link Options): Document new behavior.
21015
21016 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
21017
21018         * c-typeck.c (push_init_level): Handle vectors.
21019
21020 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
21021
21022         * config/sparc/sparc.c (const64_high_operand): Zero-extend
21023         operands of SPARC_SETHI_P.
21024         (input_operand): Likewise.
21025         (sparc_emit_set_const32): Likewise.
21026         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
21027         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
21028         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
21029         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
21030         (movdi_insn_sp64_vis): Likewise.
21031         (movdi split, movdf split): Use SETHI32.
21032         * doc/md.texi: Document SPARC constraints L, M and N.
21033
21034 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
21035
21036         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
21037         ("*set_vrsave_internal"): use mfspr for Darwin.
21038
21039         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
21040         gen_get_vrsave_internal.
21041
21042 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21043
21044         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
21045
21046 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
21047
21048         * cpplex.c (cpp_interpret_charconst): Get signedness or
21049         otherwise of wide character constants correct.
21050         * cppexp.c (lex): Get signedness of wide charconsts correct.
21051
21052 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21053
21054         * optabs.c (widen_operand): Only call convert_modes for
21055         promoted SUBREG if signedness matches.
21056         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
21057
21058 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
21059
21060         * cpplib.c (glue_header_name): Use local buffer to build up
21061         header name.
21062
21063 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
21064
21065         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
21066
21067 2002-02-23  Kazu Hirata  <kazu@hxi.com>
21068
21069         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
21070         H8/300[HS] separately.
21071         * config/h8300/h8300.md: Remove the early clobber constraint
21072         from bit field patterns.
21073
21074 2002-02-23  Kazu Hirata  <kazu@hxi.com>
21075
21076         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
21077         register_operand.
21078         (mulhisi3): Likewise.
21079         (umulqisi3): Likewise.
21080         (umulhisi3): Likewise.
21081
21082 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
21083
21084         * cppinit.c (output_deps): Correct test for stdout output.
21085         (init_dependency_output): Cure warning.
21086
21087 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21088
21089         * expr.c (store_expr): When converting expression to promoted
21090         equivalent type, allow using SUBREG_REG of TARGET as the target
21091         of the expansion of EXP.
21092         * loop.c (basic_induction_var, case SUBREG): Always look inside.
21093         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
21094         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
21095         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
21096         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
21097
21098 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
21099
21100         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
21101         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
21102         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
21103
21104 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
21105
21106         PR optimization/5747
21107         * loop.c (scan_loop): Update reg info if move_movables created new
21108         pseudos.
21109
21110 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
21111
21112         * gcc.c (init_gcc_spec): Revert last change.
21113
21114 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
21115
21116         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
21117         gpc_reg_operand constraint.
21118
21119 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
21120
21121         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
21122         Simplify comparison of `low'.
21123         (add_operand): Fix formatting.
21124         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
21125         (mask_operand): Disallow mask to wrap in 64-bit mode.
21126         (rs6000_stack_info): Remove redundant test setting push_p.
21127         (output_toc): Fix formatting.
21128         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
21129         cc_reg_not_cr0_operand constraint.
21130         (booldi3, boolcdi3 splitters): Same.
21131
21132 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
21133
21134         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
21135
21136 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
21137
21138         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
21139         gcc invoked with -shared-libgcc.
21140
21141 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
21142
21143         PR c++/5748
21144         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
21145         decl if any of elements was TREE_USED.
21146
21147 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
21148
21149         * config/sparc/sol2.h: Don't include sys/mman.h.
21150         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
21151         (arith_4096_operand): Don't throw high bits away.
21152         (const64_operand): Take sign extension of CONST_INTs into account.
21153         (const64_high_operand, sparc_emit_set_const32): Likewise.
21154         (GEN_HIGHINT64): Likewise.
21155         (sparc_emit_set_const64_quick1): Likewise.
21156         (const64_is_2insns): Likewise.
21157         (print_operand): Use trunc_int_for_mode for sign extension.
21158         * config/sparc/sparc.h (SMALL_INT32): Likewise.
21159         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
21160         chars.  Assume CONST_INT is already properly sign-extended.
21161         (movdi split): Sign-extend each SImode part.
21162         (andsi3 split): Don't mask high bits off, so that result
21163         remains properly sign-extend.
21164         (iorsi3 split): Likewise.
21165         (xorsi3 split): Likewise.
21166
21167 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
21168
21169         * fold-const.c (fold): Fix typo in comments.
21170
21171 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
21172
21173         * Makefile.in (langhooks.o): Update dependencies.
21174
21175 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
21176
21177         * langhooks.c: Include flags.h.
21178
21179 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
21180
21181         * testsuite/gcc.dg/attr-alwaysinline.c: New.
21182
21183         * c-common.c (c_common_post_options): Set inline trees by
21184         default.
21185
21186         * doc/extend.texi (Function Attributes): Document always_inline
21187         attribute.
21188         Update documentation about inlining when not optimizing.
21189
21190         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
21191
21192         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
21193         unless DECL_ALWAYS_INLINE.
21194
21195         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
21196         unless DECL_ALWAYS_INLINE.
21197         (c_disregard_inline_limits): Disregard if always_inline set.
21198
21199         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
21200         Disregard if always_inline set.
21201         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
21202         unless DECL_ALWAYS_INLINE.
21203
21204         * attribs.c (handle_always_inline_attribute): New.
21205         (c_common_attribute_table): Add always_inline.
21206
21207         * config/rs6000/altivec.h: Add prototypes for builtins
21208         requiring the always_inline attribute.
21209
21210 2002-02-21  Eric Christopher  <echristo@redhat.com>
21211
21212         * expmed.c (store_bit_field): Try to simplify the subreg
21213         before generating a new one when when the mode size of
21214         value is less than maxmode.
21215
21216 2002-02-21  Richard Henderson  <rth@redhat.com>
21217
21218         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
21219         than gen_rtx_PLUS to form the sum.
21220         * explow.c (force_reg): Rearrange to not allocate new pseudo
21221         when force_operand returns a register.
21222         * expr.c (expand_assignment): Allow offset_rtx expansion to
21223         return a sum.  Do not force addresses into registers.
21224         (expand_expr): Likewise.
21225         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
21226         to canonicalize arithmetic that didn't simpify.
21227         (simplify_plus_minus): New argument force; update
21228         all callers.  Don't split CONST unless we can do something with it,
21229         and wouldn't lose the constness of the operands.
21230
21231         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
21232         that we generated earlier.
21233
21234 2002-02-21  Tom Tromey  <tromey@redhat.com>
21235
21236         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
21237         (output_line_info): Use constant `1', with a long explanatory
21238         comment.
21239         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
21240
21241 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
21242
21243         * jump.c (redirect_jump): If old label has no UID, don't try to
21244         delete it.
21245
21246 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
21247
21248         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
21249         If input is constant, do shifts at compile time.
21250
21251 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
21252
21253         * doc/extend.texi: Fix some more overfull hboxes.
21254
21255 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
21256
21257         PR optimization/4994
21258         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
21259         register moves.
21260
21261 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
21262
21263         PR c++/4574
21264         * expr.h (expand_and): Add mode argument.
21265         * expmed.c (expand_and): Add mode argument.
21266         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
21267         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
21268         * except.c (expand_builtin_extract_return_addr): Likewise.
21269         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
21270         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
21271         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
21272         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
21273         * config/c4x/c4x.md: Use GEN_INT (x) instead of
21274         gen_rtx (CONST_INT, VOIDmode, x).
21275
21276 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
21277
21278         PR c/4697:
21279         * stmt.c (warn_if_unused_value): Move side effects test once more.
21280
21281 2002-02-20  Torbjorn Granlund  <tege@swox.com>
21282
21283         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
21284         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
21285
21286 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
21287
21288         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
21289         SUBREG or ZERO_EXTEND.
21290
21291 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
21292
21293         * sh.h (current_function_anonymous_args): Remove.
21294         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
21295         of current_function_varargs and current_function_stdarg is set.
21296         * sh.c (sh_expand_prologue): Check current_function_varargs /
21297         current_function_stdarg / TARGET_SH5 instead of
21298         current_function_anonymous_args.
21299
21300         * sh64.h (TARGET_VERSION): Define.
21301
21302 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
21303
21304         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
21305         VRSAVE_REGNO on TARGET_ALTIVEC.
21306
21307 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
21308
21309         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
21310         bits of SImode const_int.
21311         (includes_rshift_p): Likewise.
21312         (print_operand): Call mask_operand and mask64_operand with correct
21313         mode.
21314         (rs6000_output_function_epilogue): Pad traceback table to word.
21315         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
21316         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
21317         mask64_operand with correct mode.
21318         (FUNCTION_ARG_REGNO_P): Correct parentheses.
21319
21320 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
21321
21322         PR debug/4461
21323         * varasm.c (get_pool_constant_mark): New.
21324         * rtl.h (get_pool_constant_mark): Add prototype.
21325         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
21326         be represented if it has not been output.
21327
21328 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
21329
21330         * combine.c (do_SUBST): Sanity check substitutions of
21331         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
21332         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
21333         CONST_INT into its operand.
21334         (known_cond): Likewise, for ZERO_EXTEND.
21335         * simplify-rtx.c (simplify_unary_operation): Fix condition to
21336         allow for simplification of wide modes.  Reject CONST_INTs in
21337         ZERO_EXTEND when their actual mode is not given.
21338
21339 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
21340
21341         * c-decl.c (pushdecl): If no global declaration is found for an
21342         extern declaration in block scope, try a limbo one.
21343
21344 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
21345
21346         PR c++/4401
21347         * c-common.c (pointer_int_sum): Moved from...
21348         * c-typeck.c (pointer_int_sum): ...here.
21349         * c-common.h (pointer_int_sum): Add prototype.
21350
21351 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
21352
21353         PR c++/5713
21354         * c-decl.c (duplicate_decls): Return 0 if issued error about
21355         redeclaration.
21356
21357 2002-02-20  Roger Sayle  <roger@eyesopen.com>
21358             Jakub Jelinek  <jakub@redhat.com>
21359
21360         PR c/4389
21361         * tree.c (host_integerp): Ensure that the constant integer is
21362         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
21363         when pos is zero or non-zero respectively.  Clarify comment.
21364         * c-format.c (check_format_info_recurse): Fix host_integerp
21365         usage; the pos argument should be zero when assigning to a
21366         signed HOST_WIDE_INT.
21367
21368 2002-02-20  Richard Henderson  <rth@redhat.com>
21369
21370         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
21371         of the operand, rather than assuming TImode.
21372         (ix86_expand_binop_builtin): Cope with commutative patterns
21373         using nonimmediate_operand for both operands.
21374         (ix86_expand_timode_binop_builtin): Likewise.
21375         (ix86_expand_store_builtin): Validate operand 1.
21376         (ix86_expand_unop1_builtin): Likewise.
21377
21378 2002-02-20  Philip Blundell  <philb@gnu.org>
21379
21380         PR 5705
21381         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
21382
21383 2002-02-20  Richard Henderson  <rth@redhat.com>
21384
21385         PR c/5615
21386         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
21387
21388 2002-02-20  Tom Tromey  <tromey@redhat.com>
21389
21390         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
21391         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
21392         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
21393         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
21394         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
21395         unconditionally.
21396
21397 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
21398
21399         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
21400           for (const_int 0) in X not just INTVAL.
21401
21402 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
21403
21404         * doc/extend.texi: Avoid or reduce overfull hboxes.
21405
21406 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
21407
21408         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
21409         operations if the field does not start at a mode boundary.
21410
21411 2001-02-20      Joel Sherrill <joel@OARcorp.com>
21412
21413         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
21414         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
21415         Also done for -Acpu and -Amachine.
21416
21417 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
21418
21419         * cppinit.c (init_dependency_output): Take deps output file
21420         from -o if none given with -MF.  Suppress normal output.
21421         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
21422         * doc/cpp.texi, doc/invoke.texi: Update.
21423
21424 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
21425
21426         * toplev.c (output_quoted_string): Write unprintable
21427         characters with octal escapes.
21428
21429 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
21430
21431         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
21432         really_call_used[VRSAVE_REGNO] if not Altivec.
21433
21434 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
21435
21436         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
21437         MODE_MASK.
21438         (constant_pool_expr_1): Fix formatting.
21439         (rs6000_legitimize_reload_address): Likewise.
21440
21441 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21442
21443         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
21444         now that we have one.
21445
21446 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
21447
21448         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
21449         end of first block of bitfields (which was only seven bits);
21450         rename dummy to unused_1; remove comment which is no longer true.
21451
21452 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
21453
21454         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
21455
21456 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
21457
21458         PR 5399
21459         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
21460         if generating PIC.
21461
21462         PR 5054
21463         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
21464         arm_is_longcall_p rather than inspecting call-type cookie
21465         directly.
21466         (call_value_insn) [TARGET_THUMB]: Likewise.
21467
21468 2002-02-19  Graham Stott  <grahams@redhat.com>
21469
21470         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
21471
21472 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
21473
21474         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
21475         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
21476         (FP_SAVE_INLINE): Delete.
21477
21478         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
21479         * config/rs6000/eabi.asm: Remove ABI save restore routines.
21480         * config/rs6000/t-ppccomm: Build crtsavres.o.
21481         * config/rs6000/crtsavres.asm: New file.
21482
21483 2002-02-19  Philip Blundell  <philb@gnu.org>
21484
21485         * config/arm/arm.c (use_return_insn): Don't reject interrupt
21486         functions.
21487         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
21488         (output_return_instruction): Allow interrupt functions to return with
21489         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
21490         (arm_expand_prologue): Subtract 4 before stacking LR in an
21491         interrupt function.
21492
21493 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
21494
21495         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
21496         decl, not just FUNCTION_DECL.
21497         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
21498         (arm_assemble_integer): Likewise.
21499         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
21500         marked local.
21501
21502 2002-02-19  matthew green  <mrg@eterna.com.au>
21503
21504         * config.gcc (sparc-*-netbsdelf*): Enable target.
21505         (sparc64-*-netbsd*): New target.
21506         * config/sparc/netbsd-elf.h: New file.
21507         * config/sparc/t-netbsd64: New file.
21508
21509 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
21510
21511         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
21512
21513 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
21514
21515         * doc/invoke.texi: explicitly list the style guidelines that
21516         -Weffc++ checks for.
21517
21518 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
21519
21520         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
21521
21522 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
21523
21524         PR other/5718
21525         * gcc.c (cpp_unique_options): Treat -o as indicating object file
21526         only if not -E.  If -E, pass -o through to the preprocessor.
21527
21528 2002-02-19  Kazu Hirata  <kazu@hxi.com>
21529
21530         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
21531         register number with an appropriate macro.
21532
21533 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
21534
21535         * doc/rtl.texi (Constants): Close @code tag.
21536
21537 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
21538
21539         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
21540         ("mmx_uavgv4hi3"): Same.
21541         ("pmulhrwv4hi3"): Same.
21542
21543         * tree-inline.c (walk_tree): Handle vectors.
21544
21545         * c-common.c (constant_expression_warning): Handle vectors.
21546         (overflow_warning): Same.
21547
21548         * sched-deps.c (sched_analyze_2): Handle vectors.
21549
21550         * rtlanal.c (rtx_unstable_p): Handle vectors.
21551         (rtx_varies_p): Same.
21552         (count_occurrences): Same.
21553         (regs_set_between_p): Same.
21554         (modified_between_p): Same.
21555         (modified_in_p): Same.
21556         (volatile_insn_p): Same.
21557         (volatile_refs_p): Same.
21558         (side_effects_p): Same.
21559         (may_trap_p): Same.
21560         (inequality_comparisons_p): Same.
21561         (replace_regs): Same.
21562         (computed_jump_p_1): Same.
21563
21564         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
21565         argument.
21566         (inner_mode_array): New.
21567         (copy_rtx): Handle vectors.
21568         (copy_most_rtx): Same.
21569         (rtx_equal_p): Same.
21570         (get_mode_alignment): Adjust for vectors.
21571
21572         * resource.c (mark_referenced_resources): Handle vectors.
21573         (mark_set_resources): Same.
21574
21575         * reload1.c (eliminate_regs): Handle vectors.
21576         (elimination_effects): Same.
21577         (scan_paradoxical_subregs): Same.
21578
21579         * reload.c (subst_reg_equivs): Handle vectors.
21580
21581         * regrename.c (scan_rtx): Handle vectors.
21582
21583         * regclass.c (reg_scan_mark_refs): Handle vectors.
21584
21585         * recog.c (find_single_use_1): Handle vectors.
21586
21587         * local-alloc.c (equiv_init_varies_p): Handle vectors.
21588         (contains_replace_regs): Same.
21589         (memref_referenced_p): Same.
21590
21591         * integrate.c (copy_rtx_and_substitute): Handle vectors.
21592         (subst_constants): Same.
21593
21594         * genattrtab.c (attr_copy_rtx): Handle vectors.
21595         (encode_units_mask): Same.
21596         (clear_struct_flag): Same.
21597         (count_sub_rtxs): Same.
21598
21599         * gcse.c (want_to_gcse_p): Handle vectors.
21600         (oprs_unchanged_p): Same.
21601         (hash_expr_1): Same.
21602         (oprs_not_set_p): Same.
21603         (expr_killed_p): Same.
21604         (compute_transp): Same.
21605         (store_ops_ok): Same.
21606
21607         * function.c (purge_addressof_1): Do not allow paradoxical subregs
21608         of vectors.
21609         (fixup_var_refs_1): Same.
21610         (instantiate_virtual_regs_1): Same.
21611
21612         * fold-const.c (operand_equal_p): Handle vectors.
21613         (fold): Same.
21614         (rtl_expr_nonnegative_p): Same.
21615
21616         * flow.c (mark_used_regs): Handle vectors.
21617
21618         * df.c (df_uses_record): Handle vectors.
21619
21620         * cselib.c (cselib_subst_to_values): Handle vectors.
21621         (cselib_mem_conflict_p): Same.
21622         (hash_rtx): Same.
21623
21624         * cse.c (canon_reg): Handle vectors.
21625         (fold_rt): Same.
21626         (cse_process_notes): Same.
21627         (count_reg_usage): Same.
21628         (canon_hash): Same.
21629
21630         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
21631
21632         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
21633
21634         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
21635         (gen_rtx): Handle CONST_VECTOR.
21636         (gen_const_vector_0): New.
21637         (copy_rtx_if_shared): CONST_VECTORs can be shared.
21638         (reset_used_flags): Same.
21639         (copy_insn_1): Same.
21640         (initializer_constant_valid_p): Handle VECTOR_CST.
21641
21642         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
21643
21644         * doc/rtl.texi (Constants): Document const_vector.
21645         (CONST0_RTX): Update for vectors.
21646         (RTL sharing): Same.
21647
21648         * print-tree.c (print_node): Add case for VECTOR_CST.
21649
21650         * tree.h (TREE_VECTOR_CST_ELTS): New.
21651         (struct tree_vector): New.
21652         (union tree_node): Add vector node.
21653         (build_vector): Add prototype.
21654
21655         * tree.def (VECTOR_CST): New.
21656
21657         * tree.c (build_vector): New.
21658
21659         * expmed.c (make_tree): Handle CONST_VECTOR.
21660
21661         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
21662         (CONST_VECTOR_ELT): New.
21663         (CONST_VECTOR_NUNITS): New.
21664
21665         * machmode.h (GET_MODE_INNER): New.
21666         (DEF_MACHMODE): Accept 8th arg.
21667
21668         * machmode.def: Add 8th argument for vector inner mode.
21669         Add inner vector modes for vectors.
21670
21671         * rtl.def (VEC_CONST): Remove.
21672         (CONST_VECTOR): New.
21673
21674         * expr.c (clear_storage): Allow vectors.
21675         (is_zeros_p): Handle VECTOR_CST.
21676
21677         * varasm.c (output_constant_pool): Handle vectors.
21678         (rtx_const): Add veclo and vechi fields.
21679         (kind): Add RTX_VECTOR.
21680         (decode_rtx_const): Add case for vector.
21681
21682         * config/rs6000/rs6000-protos.h: Add zero_constant.
21683
21684         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
21685         constants.  Force easy vector constants into memory.
21686         (easy_vector_constant): New.
21687         (emit_easy_vector_constant): New.
21688         (rs6000_legitimize_reload_address): Do not generate bad reloads on
21689         darwin.
21690
21691         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
21692         instruction does.
21693         ("altivec_lvxl"): Same.
21694         (altivec_lvebx): Same.
21695         (altivec_lvehx): Same.
21696         (altivec_lvewx): Same.
21697         ("*movv4si_const0"): New.
21698         ("*movv4sf_const0"): New.
21699         ("*movv8hi_const0"): New.
21700         ("*movv16qi_const0"): New.
21701
21702 2002-02-18  Kazu Hirata  <kazu@hxi.com>
21703
21704         * config/h8300/h8300.c (notice_update_cc): Use
21705         cc_status.value2.
21706
21707 2002-02-18  Kazu Hirata  <kazu@hxi.com>
21708
21709         * config/h8300/h8300.md (divmod patterns): Change the
21710         constraints for operands[1] to register_operand.
21711
21712 2002-02-18  Kazu Hirata  <kazu@hxi.com>
21713
21714         * config/h8300/h8300-protos.h: Remove the prototype for
21715         p_operand.
21716         * config/h8300/h8300.c (p_operand): Remove.
21717         * config/h8300/h8300.md: Replace p_operand with
21718         const_int_operand.
21719
21720 2002-02-18 Philip Blundell <pb@nexus.co.uk>
21721
21722         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
21723         comment.
21724         (output_return_instruction): Allow use of LDR to unstack
21725         return addresss even for interrupt handlers or when
21726         interworking.  If compiling for ARMv5, use interworking-safe
21727         return instructions by default.  Remove duplicated code and
21728         lengthy "strcat" sequences.
21729
21730 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
21731
21732         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
21733         (LINK_EH_SPEC): Define.
21734         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
21735
21736 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
21737
21738         * config/s390/s390.c (s390_emit_prologue): Do not set the
21739         frame_related flag for call-clobbered registers.
21740
21741 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
21742
21743         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
21744         (construct_container): Fix handling of SSE operands.
21745         (ix86_expand_builtin): Fix handling of 64bit pointers.
21746         (mmx_maskmovq_rex): New pattern.
21747
21748 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
21749
21750         * regrename.c (kill_set_value): Handle subregs properly.
21751
21752 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
21753
21754         * objc/objc-act.c (handle_impent): Remove leading '*'
21755         from objc_class_name.
21756
21757 2002-02-17  Richard Henderson  <rth@redhat.com>
21758
21759         * config/alpha/alpha.c (some_small_symbolic_operand,
21760         some_small_symbolic_operand_1, split_small_symbolic_operand,
21761         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
21762         Handle small SYMBOL_REFs anywhere, not just inside memories.
21763         * config/alpha/alpha-protos.h: Update.
21764         * config/alpha/alpha.h (PREDICATE_CODES): Update.
21765         * config/alpha/alpha.md (small symbolic operand splitter): Update.
21766
21767 2002-02-17  Roland McGrath  <roland@frob.com>
21768
21769         * config.gcc (powerpc-*-gnu-gnualtivec*,
21770         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
21771         * config/rs6000/gnu.h: New file.
21772         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
21773         Grok "gnu" in rs6000_abi_name.
21774         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
21775         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
21776         Grok -mcall-gnu analogous to -mcall-linux et al.
21777         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
21778         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
21779         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
21780
21781 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
21782
21783         PR c/3444:
21784         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
21785         shortening.
21786
21787 2002-02-17  Philipp Thomas  <pthomas@suse.de>
21788
21789         * config/cris/cris.h: Undefine STARTFILE_SPEC and
21790         ENDFILE_SPEC before (re)defining them.
21791
21792 2002-02-17  Kazu Hirata  <kazu@hxi.com>
21793
21794         * config/h8300/h8300.c: Fix formatting.
21795         * config/h8300/h8300.h: Likewise.
21796
21797 2002-02-17  Philipp Thomas  <pthomas@suse.de>
21798
21799         * doc/tm.texi: Explain why empty strings should not be
21800         marked for translation.
21801
21802 2002-02-17  Philipp Thomas  <pthomas@suse.de>
21803
21804         * final.c (output_operand_lossage): Changed to accept
21805         printf style arguments. Change calls where necessary.
21806         * output.h (output_operand_lossage): Change declaration
21807         accordingly. Update copyright.
21808         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
21809         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
21810         Update copyright date where necessary.
21811
21812         * config/i386/i386.c (print_operand): Likewise. Remove use of
21813         sprintf.
21814
21815         * config/cris/cris.c (cris_operand_lossage): Likewise.
21816         Rename parameter so that exgettext recognizes it as
21817         translatable message.
21818         (LOSE_AND_RETURN): Rename parameter to msgid.
21819
21820 2002-02-17  Kazu Hirata  <kazu@hxi.com>
21821
21822         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
21823         hard coded register number with an appropriate macro.
21824         (HARD_REGNO_MODE_OK): Likewise.
21825         (ARG_POINTER_REGNUM): Likewise.
21826         (STATIC_CHAIN_REGNUM): Likewise.
21827         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
21828         * config/h8300/h8300.md (define_constants): Define more
21829         register numbers.
21830
21831 2002-02-17  Philipp Thomas  <pthomas@suse.de>
21832
21833         * config/i386/i386.h: Don't mark empty strings for translation.
21834
21835 2002-02-16  H.J. Lu <hjl@gnu.org>
21836
21837         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
21838
21839 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
21840
21841         * cppinit.c (merge_include_chains): Check for brack being
21842         NULL before attempting to merge it with qtail.
21843
21844 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
21845
21846         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
21847         DBX_DEBUG.
21848
21849 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21850
21851         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
21852
21853 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21854
21855         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
21856         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
21857         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
21858
21859 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21860
21861         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
21862         now only if !TARGET_FIX.
21863         (*movsi_nt_vms_fix): New pattern.
21864
21865 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
21866
21867         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
21868         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
21869         (alpha_sa_mask, alpha_sa_size): Reflect above change.
21870         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
21871         (alpha_start_function, alpha_expand_epilogue): Likewise.
21872         (unicosmk_gen_dsib): Likewise.
21873
21874 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21875
21876         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
21877
21878 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
21879
21880         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
21881         check_and_change_labels, s390_final_chunkify): Delete.
21882         (s390_split_branches, s390_chunkify_pool): New functions.
21883         (s390_function_prologue): Call them.
21884
21885         * config/s390/s390.h (S390_REL_MAX): Delete.
21886         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
21887
21888         * config/s390/s390.md (cjump, icjump, jump): Fix length
21889         attribute calculation.
21890
21891
21892 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
21893
21894         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
21895         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
21896
21897 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
21898
21899         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
21900         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
21901         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
21902
21903 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
21904
21905         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
21906
21907 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
21908
21909         * reload.c (find_dummy_reload): Check that an output register
21910         is valid for its mode.
21911
21912 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
21913
21914         * combine.c (known_cond): After replacing the REG of a SUBREG, try
21915         to simplify it.
21916
21917         * function.c (assign_parms): Demote promoted argument passed by
21918         transparent reference.
21919
21920 2001-02-14      Joel Sherrill <joel@OARcorp.com>
21921
21922         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
21923         -Acpu() and -Amachine() to eliminate warnings.
21924
21925 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
21926
21927         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
21928
21929 2002-02-14  Kazu Hirata  <kazu@hxi.com>
21930
21931         * config/h8300/h8300-protos.h: Update the prototype for
21932         const_costs.
21933         * config/h8300/h8300.c (const_costs): Treat SET as a little
21934         more expensive operation.
21935         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
21936         reference to const_costs.
21937
21938 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
21939
21940         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
21941
21942 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
21943
21944         PR c/5503:
21945         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
21946         use arguments from newtype.
21947
21948 2002-02-13  Eric Christopher  <echristo@redhat.com>
21949
21950         * config/mips/mips.c (override_options): Add check for march/mipsX
21951         on the same command line. Fix error message in cpu processing.
21952         Remove architecture and ISA checks.
21953
21954 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
21955
21956         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
21957
21958         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
21959
21960 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
21961
21962         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
21963         alternatives.
21964         ("*movv8hi_internal1"): Same.
21965         ("*movv16qi_internal1"): Same.
21966         ("*movv4sf_internal1"): Same.
21967
21968         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
21969         not push_reload for altivec modes.
21970
21971 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
21972
21973         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
21974         all RTEMS targets including removal of #includes from config/*/rtems*.h
21975         file and adding them to tm_file setting. Added xm_defines=POSIX to
21976         many targets.
21977         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
21978         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
21979         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
21980         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
21981         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
21982         config/m68k/rtemself.h: Ditto.
21983         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
21984         config/mips/rtems64.h: Ditto.
21985         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
21986         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
21987         Ditto.
21988         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
21989         config/sparc/rtemself.h: Ditto.
21990         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
21991         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
21992         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
21993         more like arm-elf.
21994         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
21995         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
21996         target made more similar to i386-elf.
21997         * config/i386/t-rtems-i386: Added soft float support and multilibs.
21998         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
21999         be similar to config/m68k/t-m68kelf.
22000         * gthr-rtems.h: Encapsulate with extern "C" for C++.
22001
22002 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
22003
22004         * regmove.c (kill_value): Handle subregs.
22005
22006 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
22007
22008         * i386.md (mul patterns): Allow memory operand to be first;
22009         add expanders where needed; fix constraints.
22010         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
22011         Allow memory operand to be the first.
22012
22013         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
22014         operands.
22015
22016 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
22017
22018         PR c/5681:
22019         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
22020         GET_MODE (x).
22021
22022 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
22023
22024         PR optimization/5547:
22025         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
22026         all valid IA-32 address modes involving non-scaled %ebx and
22027         GOT/GOTOFF as displacement.
22028
22029 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
22030
22031         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
22032         after emitting ltorg insns.
22033
22034         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
22035         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
22036         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
22037         *abssf2): Fix "op_type" attribute.
22038
22039 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
22040
22041         * mkconfig.sh: Avoid using a subshell redirect.
22042         ($output.T): Change to $(output)T.
22043         (ENABLE_NLS): Remove unneeded undef.
22044
22045         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
22046         * config/alpha/x-vms (libsubdir): Define.
22047
22048         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
22049         register frame procedures. Optimize retrieving context.
22050
22051         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
22052         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
22053         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
22054
22055 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22056
22057         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
22058         Make same change as for find_base_value.
22059
22060 2002-02-13  Kazu Hirata  <kazu@hxi.com>
22061
22062         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
22063         of QImode and SImode.
22064
22065 2002-02-13  Kazu Hirata  <kazu@hxi.com>
22066
22067         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
22068         length computation of movsi.
22069         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
22070
22071 2002-02-13  Kazu Hirata  <kazu@hxi.com>
22072
22073         * config/h8300/h8300.md (subqi3): Tighten the predicate for
22074         operands[2] to register_operand.
22075
22076 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
22077
22078         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
22079
22080 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
22081
22082         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
22083         for altivec_lvx* and altivec_stvx*.
22084         ("*movv4si_internal"): Add constraint for loading from GPRs.
22085         ("*movv8hi_internal1"): Same.
22086         ("*movv16qi_internal1"): Same.
22087         ("*movv4sf_internal1"): Same.
22088
22089         * config/rs6000/rs6000.c (altivec_register_operand): New.
22090
22091         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
22092         altivec_register_operand.
22093
22094 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
22095
22096         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
22097         handle SYMBOL_REF.
22098
22099 2002-02-13  Stan Shebs  <shebs@apple.com>
22100
22101         * c-typeck.c (digest_init): Handle vectors.
22102         (really_start_incremental_init): Same.
22103         (pop_init_level): Same.
22104         (process_init_element): Same.
22105
22106         * varasm.c (output_constant): Same.
22107
22108         * expr.c (clear_storage): Same.
22109         (store_constructor): Same.
22110
22111 2002-02-12  Eric Christopher  <echristo@redhat.com>
22112
22113         * explow.c (hard_function_value): Add comment explaining
22114         signed/unsigned comparison.
22115
22116 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
22117
22118         * jump.c (never_reached_warning): Add finish argument.
22119         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
22120         real insn after end.
22121         * rtl.h (never_reached_warning): Adjust prototype.
22122         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
22123         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
22124         never_reached_warning.
22125
22126 2002-02-12  Graham Stott  <grahams@redhat.com>
22127
22128         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
22129
22130 2002-02-12  Kazu Hirata  <kazu@hxi.com>
22131
22132         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
22133         logical shifts on H8/300.
22134         (shift_alg_si): Improve several shifts on H8/300.
22135         (get_shift_alg): Likewise.
22136
22137 2002-02-12  Graham Stott  <grahams@redhat.com>
22138
22139         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
22140
22141 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22142
22143         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
22144         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
22145
22146 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
22147
22148         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
22149         non-CONST_INT through default_assemble_integer.
22150         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
22151         <case 8>: Abort for CONST_DOUBLE.
22152
22153 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22154
22155         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
22156         is specified.
22157         * config/pa/pa-linux.h (LIB_SPEC): Delete.
22158         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
22159
22160 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
22161
22162         * config/stormy16/stormy16.md (zero_extendqihi2): New.
22163
22164 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
22165
22166         * regrename.c (regrename_optimize): Don't accept a
22167         part-clobbered register if the replaced register is not part
22168         clobbered.
22169
22170         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
22171         take padding into account when computing the argument value.
22172
22173         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
22174
22175         * combine.c (try_combine): Apply substitutions in
22176         CALL_INSN_FUNCTION_USAGE too.
22177
22178 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
22179
22180         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
22181         __builtin_altivec_abs*.
22182         (bdesc_abs): New.
22183
22184         * config/rs6000/rs6000.h (rs6000_builtins): Add
22185         ALTIVEC_BUILTIN_ABS*.
22186
22187         * config/rs6000/altivec.h: Use const char for builtins expecting
22188         literals.
22189         (vec_abs): New versions for C and C++.
22190         (vec_abss): Same.
22191
22192 2002-02-10  Kazu Hirata  <kazu@hxi.com>
22193
22194         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
22195         using Pmode.
22196
22197 2002-02-10  Kazu Hirata  <kazu@hxi.com>
22198
22199         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
22200         constant definition from h8300.md.
22201         (FRAME_POINTER_REGNUM): Likewise.
22202         * config/h8300/h8300.md (define_constants): Add FP_REG.
22203
22204 2002-02-10  Kazu Hirata  <kazu@hxi.com>
22205
22206         * config/h8300/h8300.c (print_operand): Remove redundant code.
22207
22208 2002-02-10  Kazu Hirata  <kazu@hxi.com>
22209
22210         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
22211         * config/h8300/h8300.c (byte_reg): Make it static.
22212
22213 2002-02-10  Richard Henderson  <rth@redhat.com>
22214
22215         PR c/5623
22216         * c-typeck.c (incomplete_type_error): Handle flexible array members.
22217
22218 2002-02-10  Richard Henderson  <rth@redhat.com>
22219
22220         PR c++/5624
22221         * tree.c (append_random_chars): Don't abort if main_input_filename
22222         does not exist.
22223
22224 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
22225
22226         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
22227
22228 2002-02-10  Kazu Hirata  <kazu@hxi.com>
22229
22230         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
22231         (pushhi1): Likewise.
22232
22233 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
22234
22235         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
22236         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
22237
22238 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
22239
22240         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
22241         remove MASK_VIS.
22242         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
22243
22244 2002-02-09  Kazu Hirata  <kazu@hxi.com>
22245
22246         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
22247         a half of an SImode register on H8/300.
22248
22249 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
22250
22251         * i386.md (movdi_2): Add missing '!'.
22252
22253 2002-02-09  Kazu Hirata  <kazu@hxi.com>
22254
22255         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
22256         definitions.
22257
22258 2002-02-09  Kazu Hirata  <kazu@hxi.com>
22259
22260         * config/h8300/h8300.md (length): Correct the distance valid
22261         for the short branch.
22262
22263 2002-02-09  Kazu Hirata  <kazu@hxi.com>
22264
22265         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
22266
22267 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
22268
22269         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
22270         registers in SImode.
22271         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
22272         part-clobbered.
22273
22274         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
22275         patch.
22276
22277         Contribute sh64-elf.
22278         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
22279         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
22280         (sh_cannot_modify_jumps_p): New function.
22281         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
22282         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
22283         (sh_ms_bitfield_layout_p): New function.
22284         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
22285                     Zack Weinberg  <zack@codesourcery.com>
22286         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
22287         expand_simple_binop instead of expand_binop.
22288         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
22289         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
22290         use of .quad and .uaquad.
22291         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
22292         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
22293         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
22294         * config/sh/sh.md (movdi_const, movdi_const_32bit,
22295         movdi_const_16bit): Make sure all CONSTs have modes.
22296         (sym2PIC): Ditto, but by adjusting all callers.
22297         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
22298         if the prologue calls the SHmedia argument decoder or register
22299         saver.
22300         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
22301         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
22302         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
22303         (sh_expand_epilogue): Don't emit USE of return target register.
22304         (prepare_move_operands): Legitimize DImode PIC addresses.
22305         (sh_media_register_for_return): Skip tr0, used to initialize the
22306         PIC register.
22307         (sh_expand_prologue): Remove explicit USE of return register.
22308         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
22309         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
22310         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
22311         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
22312         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
22313         EXTRA_CONSTRAINT_T.
22314         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
22315         (MOVI_SHORI_BASE_OPERAND_P): New.
22316         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
22317         (EXTRA_CONSTRAINT_T): Define in terms of them.
22318         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
22319         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
22320         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
22321         alternatives supporting TARGET_REGS.
22322         (UNSPEC_GOTPLT): New constant.
22323         (movdi split): Move incrementing of LABEL_NUSES...
22324         (movdi_const, movdi_const_32bit): Here.  Use
22325         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
22326         (movdi_const_16bit): New.
22327         (call, call_value) [flag_pic]: Use GOTPLT.
22328         (call_pop, call_value_pop): New expands.
22329         (call_pop_compact, call_pop_rettramp): New insns.
22330         (call_value_pop_compact, call_value_pop_rettramp): New insns.
22331         (sibcall) [flag_pic]: Use GOT.
22332         (builtint_setjmp_receiver): Remove bogus, unused expand.
22333         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
22334         (*pt, *ptb, ptrel): New insns.
22335         (sym2GOT): Handle DImode GOT.
22336         (sym2GOTPLT, symGOTPLT2reg): New expands.
22337         (sym2PIC): New expand.
22338         (shcompact_return_tramp): Use GOTPLT to return trampoline.
22339         (shcompact_return_tramp_i): Use return register explicitly.
22340         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
22341         disable flag_reorder_blocks.
22342         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
22343         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
22344         clobbers, for clarity.
22345         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
22346         restoring of r0 in macl as MAYBE_DEAD.
22347         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
22348         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
22349         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
22350         alter_subreg all over.
22351         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
22352         reload, instead of emitting instructions that would require
22353         reloading.
22354         (casesi_load_media): Add missing modes.
22355         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
22356         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
22357         as used if the argument decoder is called.
22358         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
22359         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
22360         Pmode, then extend it to DImode if necessary.
22361         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
22362         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
22363         constants in FPU-enabled SHmedia, let them be loaded from memory.
22364         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
22365         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
22366         Adjust whitespace in assembly output templates.
22367         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
22368         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
22369         mode of if_then_else.
22370         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
22371         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
22372         sh.h.
22373         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
22374                     Joern Rennecke <amylaar@redhat.com>
22375         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
22376         (SUBTARGET_CPP_PTR_SPEC): New.
22377         (SUBTARGET_CPP_SPEC): Remove.
22378         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
22379         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
22380         Fix typo in previous checkin.
22381         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
22382         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
22383         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
22384                     Alexandre Oliva  <aoliva@redhat.com>
22385         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
22386         what single FP register can hold for SHmedia target.
22387         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
22388                     Alexandre Oliva  <aoliva@redhat.com>
22389         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
22390         Do not split into SUBREG.
22391         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
22392         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
22393         and added new functions as specified in SH5 ABI r9.
22394         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
22395         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
22396         8-byte boundary.
22397         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
22398         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
22399         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
22400         and consttable_window_ends.
22401         2001-06-03  Graham Stott  <grahams@redhat,com>
22402         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
22403         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
22404         * config/sh/sh.c (print_operand): Handle floating-point pair,
22405         vector and matrix registers.
22406         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
22407         vector modes into account.
22408         * config/sh/sh.md (movv2sf): Split move between registers into
22409         movdf.
22410         (movv4sf, movv16sf): Introduce insns that get split only after
22411         reload.
22412         * config/sh/shmedia.h: Fix Copyright dates.
22413         * config/sh/ushmedia.h: Likewise.  Move loop counter
22414         declarations into conditionals that uses them.
22415         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
22416         loop boundary.
22417         * config/sh/sshmedia.h: Fix Copyright dates.
22418         (sh_media_PUTCFG): Fix constraints.
22419         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
22420         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
22421         ptrmemfunc_vbit_in_delta for SH5.
22422         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
22423         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
22424         * invoke.texi: Likewise.
22425         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
22426         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
22427         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
22428         GCC_pop_shmedia_regs_nofpu): New global symbols.
22429         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
22430         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
22431         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
22432         compact function with nonlocal labels.
22433         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
22434         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
22435         (initial_elimination_offset): Account for their stack space.
22436         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
22437         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
22438         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
22439         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
22440         least one of the operands to be a register.
22441         (movv2sf): Likewise.  Renamed to movv2sf_i.
22442         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
22443         prepare_move_operands() before emitting SHmedia insns.
22444         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
22445         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
22446         Don't save nor initialize r12.  Don't mis-align the stack.
22447         Pad the code with a nop.
22448         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
22449         stack.
22450         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
22451         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
22452         [__SHMEDIA__]: Implement.
22453         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
22454         * config/sh/sh.md: Set latency of `pt' closer to reality.
22455         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
22456         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
22457         Set move, load and store type attributes.
22458         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
22459         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
22460         profiling.
22461         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
22462         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
22463         * config/sh/sh.c (sh_media_register_for_return): New function.
22464         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
22465         branch-target register.
22466         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
22467         * config/sh/sh.md (return_media_i): Use any call-clobbered
22468         branch-target register.
22469         (return_media): If r18 wasn't copied in the prologue, copy it
22470         here.
22471         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
22472         Clear class FP0_REGS.
22473         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
22474         from elf.h.
22475         2001-03-08  DJ Delorie  <dj@redhat.com>
22476         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
22477         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
22478         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
22479         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
22480         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
22481         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
22482         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
22483         return value correctly for call_cookie.
22484         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
22485         * config/sh/crt1.asm (start): Modified so as to call
22486         ___setup_argv_and_call_main.
22487         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
22488         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
22489         SHmedia mode.
22490         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
22491         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
22492         (STRIP_NAME_ENCODING): Use it.
22493         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
22494         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
22495         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
22496         prepare_scc_operands().
22497         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
22498         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
22499         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
22500         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
22501         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
22502         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
22503         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
22504         used in shcompact_incoming_args.
22505         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
22506         change.
22507         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
22508         mode.
22509         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
22510         Adjust accordingly.
22511         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
22512         Simplify.  Adjust.  Add sanity check.
22513         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
22514         FPU_SINGLE_BIT.
22515         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
22516         TARGET_SHCOMPACT.
22517         (udivsi3, divsi3): Use them.
22518         (force_mode_for_call): New insn.
22519         (call, call_value, sibcall_value): Emit it before SHcompact
22520         calls.
22521         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
22522         * config/sh/sh.md (call, call_value, sibcall): Make sure the
22523         call cookie is non-NULL before taking its value.
22524         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
22525         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
22526         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
22527         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
22528         block.
22529         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
22530         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
22531         temporary for stack adjusts.  Use MACL and MACH to pass
22532         arguments to shcompact_incoming_args.
22533         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
22534         clobber r1.
22535         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
22536         (nested_trampoline): Load static chain address into r1.
22537         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
22538         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
22539         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
22540         fp_arith_reg_operand().
22541         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
22542         * config/sh/sh.md (casesi): Sign-extend the first two operands,
22543         and use signed compares for them.
22544         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
22545         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
22546         ones properly aligned.
22547         (find_barrier): Account for extra alignment needed for 8-byte wide
22548         constants.
22549         (machine_dependent_reorg): Require a label for the second 4-byte
22550         constant after an 8-byte one.
22551         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
22552         change.
22553         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
22554         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
22555         last_float when switching float modes.
22556         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
22557         auto-increment for general-purpose registers.
22558         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
22559         result.
22560         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
22561         for stack adjust.
22562         * config/sh/sh.c (sh_builtin_saveregs): Support using all
22563         registers for varargs.
22564         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
22565         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
22566         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
22567         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
22568         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
22569         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
22570         call_cookie accordingly.
22571         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
22572         (SHCOMPACT_BYREF): Likewise.
22573         (SHCOMPACT_FORCE_ON_STACK): New macro.
22574         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
22575         (sh_builtin_saveregs): Likewise.
22576         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
22577         shcompact_incoming_args): Use new shift values.  Support
22578         sequences of consecutive and non-consecutive pushes/pops.
22579         * config/sh/sh.md (return): Don't explicitly use PR_REG.
22580         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
22581         * config/sh/sh.h (TEXT_SECTION): Define.
22582         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
22583         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
22584         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
22585         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
22586         return values on FPU-enabled SHmedia.
22587         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
22588         FPU-enabled SHmedia.
22589         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
22590         value is returned in a non-FP reg and is not returned by
22591         reference.
22592         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
22593         jump_ind.
22594         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
22595         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
22596         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
22597         quad-aligned to be passed by callee-copy reference.
22598         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
22599         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
22600         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
22601         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
22602         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
22603         copying low-numbered FP regs to r7 and r8.
22604         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
22605         FP regs to general-purpose regs only if the copy was passed on the
22606         stack.
22607         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
22608         copying FP reg to r9.
22609         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
22610         copy FP regs to general-purpose regs only in outgoing calls.
22611         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
22612         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
22613         HOST_WIDE_INT.
22614         * config/sh/sh.h (struct sh_args): Document all fields.
22615         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
22616         passed partially on the stack should not consider making
22617         sibcalls.
22618         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
22619         stack_regs only for incoming calls.  When passing FP args,
22620         make sure there are FP regs available before modifying
22621         call_cookie.
22622         (SHCOMPACT_BYREF): Pass double args in general-purpose
22623         registers by reference.
22624         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
22625         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
22626         attempt to generate sibcalls if the caller got any arguments
22627         by reference.
22628         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
22629         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
22630         to 8-byte boundaries.
22631         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
22632         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
22633         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
22634         stored in the stack.
22635         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
22636         for the offsets to have the ISA bit set.
22637         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
22638         invocation.  Use beq instead of bgt to mark end of sequence of
22639         loads.
22640         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
22641         bgt to mark end of sequence of stores.
22642         * config/sh/sh.c (arith_operand): Don't check whether
22643         CONST_OK_FOR_J for now.
22644         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
22645         instead of long for conversion.
22646         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
22647         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
22648         before passing it to fprintf.
22649         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
22650         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
22651         Call set_fpscr before reading/writing SR.
22652         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
22653         Call set_fpscr.
22654         * config/sh/lib1funcs.asm: Add `.align 2' directives before
22655         SHmedia code.
22656         (FMOVD_WORKS): Define on SH5 with FPU.
22657         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
22658         setting.
22659         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
22660         _fpscr_values.
22661         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
22662         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
22663         address.
22664         (ia_main_table): Ditto.
22665         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
22666         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
22667         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
22668         the definitions from sh.h.
22669         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
22670         TARGET_SH5.
22671         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
22672         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
22673         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
22674         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
22675         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
22676         Increment LABEL_NUSES.
22677
22678         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
22679         TARGET_SH5.
22680         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
22681         defined.
22682         * config/sh/elf.h (SIZE_TYPE): Likewise.
22683         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
22684         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
22685         shcompact_incoming_args): Load switch table addresses using
22686         datalabel.
22687         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
22688         (NO_BUILTIN_SIZE_TYPE): Define.
22689         (SIZE_TYPE): Don't define.
22690         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
22691         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
22692         definition of __SH5__=32 for -m5-compact-nofpu.
22693         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
22694         ADDR_DIFF_VEC.
22695         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
22696         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
22697         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
22698         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
22699         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
22700         (INSN_LENGTH_ALIGNMENT): Likewise.
22701         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
22702         * config/sh/sh.md (call, call_value, sibcall): Simplify
22703         copying of non-branch-target register.
22704         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
22705         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
22706         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
22707         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
22708         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
22709         floating-point values as structs.
22710         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
22711         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
22712         general-purpose register.
22713         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
22714         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
22715         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
22716         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
22717         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
22718         (ENCODE_SECTION_INFO): Enclose variables and constants in
22719         DATALABEL unspecs.
22720         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
22721         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
22722         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
22723         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
22724         only for LABEL_REFs.  For SYMBOL_REFs, prepend
22725         SH_DATALABEL_ENCODING to the symbol name.
22726         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
22727         convert_mode().
22728         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
22729         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
22730         UNSPEC_DATALABEL.
22731         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
22732         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
22733         (DATALABEL_REF_P): Don't require CONST.
22734         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
22735         REL label.
22736         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
22737         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
22738         right.
22739         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
22740         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
22741         Use shallow_copy_rtx and PUT_MODE to change the mode of
22742         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
22743         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
22744         on SHmedia using GENERAL_REGs.
22745         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
22746         bltu_media_i): Fix reversion of conditions.
22747         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
22748         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
22749         * config/sh/sh.c (output_far_jump): Save r13 in macl.
22750         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
22751         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
22752         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
22753         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
22754         (GCC_nested_trampoline): Likewise.
22755         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
22756         * config/sh/sh.c (gen_datalabel_ref): Define.
22757         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
22758         (INITIALIZE_TRAMPOLINE): Likewise.
22759         (TRAMPOLINE_ADJUST_ADDRESS): Define.
22760         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
22761         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
22762         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
22763         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
22764         (ic_invalidate): Adjust for SH5.
22765         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
22766         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
22767         _nested_trampoline.
22768         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
22769         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
22770         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
22771         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
22772         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
22773         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
22774         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
22775         * config/sh/sh.c (target_reg_operand): Match only target-branch
22776         registers and pseudos that aren't virtual registers.
22777         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
22778         Copy operands that don't match target_reg_operand to pseudos.
22779         (call_media, call_value_media, sibcall_media): Use
22780         target_reg_operand instead of target_operand.
22781         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
22782         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
22783         * config/sh/sh.c (target_reg_operand): Match hardware registers
22784         other than branch-target registers.
22785         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
22786         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
22787         (fpscr_values) [SH5 == 32]: Define.
22788         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
22789         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
22790         Handle function addresses coming in SUBREGs.
22791         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
22792         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
22793         shcompact_return_trampoline): Use datalabel where appropriate.
22794         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
22795         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
22796         general-purpose register to copy one branch-target register to
22797         another.
22798         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
22799         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
22800         SYMBOL_REFs with VOIDmode.
22801         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
22802         bltu_media_i): New insns.
22803         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
22804         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
22805         (INIT_CUMULATIVE_ARGS): Likewise.
22806         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
22807         * machmode.def (V16SFmode): New mode.
22808         * c-common.c (type_for_mode): Support V2SF and V16SF.
22809         * tree.c (build_common_tree_nodes_2): Likewise.
22810         * tree.h (tree_index): Likewise.
22811         * calls.c (emit_call_1): Take args_so_far.  Adjust all
22812         callers.  Introduce CALL_POPS_ARGS.
22813         * tm.texi (CALL_POPS_ARGS): Document.
22814         * config/sh/crt1.asm: Implement in SHmedia mode.
22815         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
22816         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
22817         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
22818         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
22819         Implement divsi and udivsi in SHmedia mode.  Introduce
22820         SHcompact trampolines.
22821         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
22822         only in SHmedia64.
22823         (regno_reg_class): Rewrite.
22824         (fp_reg_names): Remove.
22825         (sh_register_names, sh_additional_register_names): New.
22826         (print_operand): Added `u'.  Support SUBREGs in addresses.
22827         Add parentheses around shifted CONSTs.
22828         (output_file_start): Output .mode and .abi directives.
22829         (shiftcosts, addsubcosts, multcosts): Adjust.
22830         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
22831         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
22832         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
22833         bytes, not registers.  Take into account the need for the
22834         SHcompact incoming args trampoline.  Adjust all callers.
22835         (sh_expand_prologue): Take stack_regs into account.  Call
22836         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
22837         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
22838         stack aligned as per SH5 ABI.
22839         (sh_builtin_saveregs): Support SH5 ABI.
22840         (sh_build_va_list, sh_va_start): Likewise.
22841         (initial_elimination_offset): Take alignment into account.
22842         Compute location of PR according to the SH5 stack frame.
22843         (arith_reg_operand): Reject branch-target registers.
22844         (shmedia_6bit_operand): New.
22845         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
22846         (target_reg_operand): Match DImode only.  Accept SUBREGs.
22847         (target_operand): New.
22848         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
22849         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
22850         SIBCALL_REGS for SHmedia.
22851         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
22852         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
22853         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
22854         (TARGET_SWITCHES): New SH5 flags.
22855         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
22856         VALID_REGISTER_P to disable unsupported registers.
22857         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
22858         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
22859         (FUNCTION_ARG_PADDING): Define.
22860         (FASTEST_ALIGNMENT): Adjust.
22861         (SH_REGISTER_NAMES_INITIALIZER): New.
22862         (sh_register_names): Declare.
22863         (DEBUG_REGISTER_NAMES): Define.
22864         (REGISTER_NAMES): Define based on sh_register_names.
22865         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
22866         (sh_additional_register_names): Declare.
22867         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
22868         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
22869         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
22870         (REGISTER_NATURAL_MODE): Define.
22871         (FIRST_PSEUDO_REGISTER): Adjust.
22872         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
22873         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
22874         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
22875         (VECTOR_MODE_SUPPORTED_P): Define.
22876         (REG_CLASS_CONTENTS): Adjust.
22877         (SMALL_REGISTER_CLASSES): Adjust.
22878         (REG_ALLOC_ORDER): Adjust.
22879         (INDEX_REG_CLASS): Adjust.
22880         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
22881         (CONST_OK_FOR_LETTER_P): Adjust.
22882         (PREFERRED_RELOAD_CLASS): Adjust.
22883         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
22884         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
22885         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
22886         (FIRST_FP_PARM_REG): Adjust.
22887         (CALL_POPS_ARGS): Define.
22888         (FUNCTION_ARG_REGNO_P): Adjust.
22889         (struct sh_args): New fields.
22890         (GET_SH_ARG_CLASS): Adjust.
22891         (INIT_CUMULATIVE_ARGS): Adjust.
22892         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
22893         (FUNCTION_ARG_ADVANCE): Adjust.
22894         (FUNCTION_ARG): Adjust.
22895         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
22896         (FUNCTION_ARG_CALLEE_COPIES): Define.
22897         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
22898         (STRICT_ARGUMENT_NAMING): Define.
22899         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
22900         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
22901         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
22902         (SETUP_INCOMING_VARARGS): Adjust.
22903         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
22904         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
22905         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
22906         (SUBREG_OK_FOR_INDEX_P): Adjust.
22907         (EXTRA_CONSTRAINT_S): Update.
22908         (EXTRA_CONSTRAINT_T): New.
22909         (EXTRA_CONSTRAINT): Adjust.
22910         (GO_IF_LEGITIMATE_INDEX): Adjust.
22911         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
22912         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
22913         (MOVE_MAX): Adjust.
22914         (MAX_MOVE_MAX): Define.
22915         (Pmode): Adjust.
22916         (CONST_COSTS): Adjust.
22917         (REGISTER_MOVE_COST): Adjust.
22918         (BRANCH_COST): Adjust.
22919         (TEXT_SECTION_ASM_OP): Adjust.
22920         (DBX_REGISTER_NUMBER): Adjust.
22921         (ASM_OUTPUT_DOUBLE_INT): New.
22922         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
22923         (PREDICATE_CODES): Adjust.
22924         (PROMOTE_MODE): Adjust.
22925         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
22926         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
22927         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
22928         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
22929         (DR0_REG, DR2_REG, DR4_REG): Renumber.
22930         (TR0_REG, TR1_REG, TR2_REG): New.
22931         (XD0_REG): Renumber.
22932         (UNSPEC_COMPACT_ARGS): New.
22933         (type): Added pt and ptabs.
22934         (length): Default to 4 on SHmedia.  Default pt length to 12
22935         and     20 on SHmedia32 and SHmedia64, respectively.
22936         (pt): New function unit.
22937         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
22938         Add whitespace between operands of SHmedia instructions.
22939         (movdicc): Fix.
22940         (adddi3_media, addsi3_media): Adjust constraints.
22941         (subsi3) [SHmedia]: Force operand 1 into a register.
22942         (udivsi3_i1_media, udivsi3_i4_media): New.
22943         (udivsi3): Support SHmedia.
22944         (divsi3_i1_media, divsi3_i4_media): New.
22945         (divsi3): Support SHmedia.
22946         (anddi3, iordi3, xordi3): Adjust constraints.
22947         (zero_extendhidi2, zero_extendqidi2): New.
22948         (extendsidi2, extendhidi2, extendqidi2): New.
22949         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
22950         (pop_e, pop_fpul, pop_4): Likewise.
22951         (movsi_media): Support FP and BT registers.
22952         (movsi_media_nofpu): New.  Adjust splits to DImode.
22953         (lduw, ldub): Renamed to zero_extend* above.
22954         (movqi_media): Fix typo.
22955         (movdi_media): Support FP and BT registers.
22956         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
22957         (movdi_const_32bit): New.
22958         (shori_media): Require immediate operand.  Use `u' for output.
22959         (movdf_media, movsf_media): Simplified.
22960         (movdf_media_nofpu, movsf_media_nofpu): New.
22961         (movdf, movsf): Adjust
22962         (movv2sf, movv2sf, movv16sf): New.
22963         (beq_media, beq_media_i): Adjust constraints.  Don't use
22964         scratch BT register.
22965         (bne_media, bne_media_i): Likewise.
22966         (bgt_media, bgt_media_i): Likewise.
22967         (bge_media, bge_media_i): Likewise.
22968         (bgtu_media, bgtu_media_i): Likewise.
22969         (bgeu_media, bgeu_media_i): Likewise.
22970         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
22971         bunordered): Emit jump insn.  Force operands to registers when
22972         needed.
22973         (jump_media, jump): Simplify.
22974         (call_compact, call_compact_rettramp): New.
22975         (call_value_compact, call_value_compact_rettramp): New.
22976         (call_media, call_value_media): Simplify.
22977         (sibcall_compact, sibcall_media): New.
22978         (call, call_value): Adjust for SHmedia and SHcompact.
22979         (sibcall, sibcall_value, untyped_call): Likewise.
22980         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
22981         (indirect_jump): Adjust for SHmedia.
22982         (casesi_jump_media): New.
22983         (nop): Re-enable for SHmedia.
22984         (call_site): Restrict to SH1.
22985         (casesi): Adjust for SHmedia.
22986         (casesi_shift_media, casesi_load_media): New.
22987         (return): Explicitly use PR register.  Call return trampoline
22988         on SHcompact.
22989         (return_i): Explicitly use PR register.
22990         (shcompact_return_tramp, shcompact_return_tramp_i): New.
22991         (return_media): Adjust.
22992         (shcompact_incoming_args): New.
22993         (epilogue): Adjust.
22994         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
22995         (movstrsi): Disable on SH5.
22996         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
22997         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
22998         (subsf3, subsf3_media): Likewise.
22999         (mulsf3, mulsf3_media, mac_media): Likewise.
23000         (divsf3, divsf3_media): Likewise.
23001         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
23002         (floatsisf2, fux_truncsfsi2): Likewise.
23003         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
23004         constraints.
23005         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
23006         (cmpunsf_media, cmpsf): Likewise.
23007         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
23008         (abssf2, abssf2_media): Likewise.
23009         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
23010         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
23011         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
23012         (floatsidf2, fix_truncdfsi2): Likewise.
23013         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
23014         constraints.
23015         (cmpeqdf_media, cmpgtdf_media): Likewise.
23016         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
23017         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
23018         (absdf2, absdf2_media): Likewise.
23019         (extendsfdf2, extendsfdf2_media): Likewise.
23020         (truncsfdf2, truncsfdf2_media): Likewise.
23021         * config/sh/sh64.h: New file.
23022         * config/sh/t-sh64: New file.
23023         * config/sh/shmedia.h: New file.
23024         * config/sh/ushmedia.h: New file.
23025         * config/sh/sshmedia.h: New file.
23026         * configure.in: Added sh64-*-elf.
23027         * configure: Rebuilt.
23028         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
23029         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
23030         (reg_class_from_letter): Use `b' for TARGET_REGS.
23031         (print_operand): Support `%M', `%m', `AND' and
23032         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
23033         (andcosts): Adjust for SHmedia.
23034         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
23035         Likewise.
23036         (target_reg_operand): New function.
23037         * config/sh/sh-protos.h (target_reg_operand): Declare.
23038         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
23039         FP registers on SH5.
23040         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
23041         on SH4.
23042         (TARGET_REGISTER_P): New macro.
23043         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
23044         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
23045         (EXTRA_CONSTRAINT_S): New macro.
23046         (EXTRA_CONSTRAINT): Adjust.
23047         (FLOAT_TYPE_SIZE): Define to 32.
23048         (Pmode): DImode on SHmedia.
23049         (CONST_COSTS): Adjust for SHmedia literals.
23050         (PREDICATE_CODES): Added target_reg_operand.
23051         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
23052         * config/sh/sh.md: Remove all attrs from SHmedia insns.
23053         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
23054         (cmpdi): Accept SHmedia.
23055         (movdicc_false, movdicc_true): New insns.
23056         (movdicc): New expand.
23057         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
23058         no_new_pseudos.
23059         (addsi3_media): Match `S' constraint.
23060         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
23061         (negdi2): Expand for SHmedia.
23062         (one_cmpldi2): New expand.
23063         (zero_extendsidi2): Change from expand to insn.
23064         (extendsidi2): Add constraints.
23065         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
23066         LD/ST address.  Fix SI immediate loading split.
23067         (movhi_media, movqi_media, lduw, ldub): New insns.
23068         (movhi, movqi): Accept SHmedia.
23069         (shori_media, movdi_media): Relax input constraints.  Split
23070         symbolic constants.
23071         (movdf_media, movsf_media): New insn.  New split to movdi.
23072         (movdf, movsf): Match on SHmedia.
23073         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
23074         bgeu_media): New insns and splits.  New insns with `_i' suffix.
23075         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
23076         (bunordered): New expand.
23077         (jump_compact): Renamed from `jump'.
23078         (jump_media): New insn.
23079         (jump): New expand.
23080         (call_media, call_value_media): New insns.
23081         (call, call_value): Adjust.
23082         (indirect_jump_compact): Renamed from `indirect_jump'.
23083         (indirect_jump_media): New insn.
23084         (indirect_jump): New expand.
23085         (untyped_call, return): Accept SHmedia.
23086         (return_media): New insn.
23087         (prologue, epilogue, blockage): Accept SHmedia.
23088         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
23089         (sunordered): New expand.
23090         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
23091         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
23092         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
23093         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
23094         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
23095         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
23096         abssf2_media): New insns.
23097         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
23098         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
23099         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
23100         floatdidf2, floatsidf2_media, fix_truncdfdi2,
23101         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
23102         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
23103         absdf2_media): New insns.
23104         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
23105         (extendsfdf2_media, truncdfsf2_media): New insns.
23106         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
23107         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
23108         * config/sh/sh.h (CONST_OK_FOR_J): Document.
23109         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
23110         * config/sh/sh.md (adddi3): New expand.
23111         (adddi3_media, adddi3z_media): New insns.
23112         (adddi3_compact): Renamed from adddi3.
23113         (addsi3_media): Use add.l r63 to add constant zero.
23114         (subdi3): New expand.
23115         (subdi3_media): New insn.
23116         (subdi3_compact): Renamed from subdi3.
23117         (mulsidi3): New expand.
23118         (mulsidi3_media): New insn.
23119         (mulsidi3_compact): Renamed from mulsidi3.
23120         (umulsidi3): New expand.
23121         (umulsidi3_media): New insn.
23122         (umulsidi3_compact): Renamed from umulsidi3.
23123         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
23124         (ashlsi3, ashrsi3, lshrsi3): Use them.
23125         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
23126         (ashldi3, ashrdi3, lshrdi3): Use them.
23127         (zero_extendsidi2): New expand.
23128         (extendsidi2): New insn.
23129         (movsi_media): New insn.  Split to movdi to load constants.
23130         (movsi): Enable for shmedia.
23131         (movdi_media): New insn.  Use shori_media to load wide constants.
23132         (short_media): New insn.
23133         (movdi): Enable for shmedia.
23134         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
23135         * config/sh/sh.h (CPP_SPEC): Added `m5'.
23136         (SUBTARGET_CPP_SPEC): Added `!m5'.
23137         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
23138         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
23139         to all other SH variants.
23140         (TARGET_DEFAULT): Set to SH1_BIT.
23141         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
23142         (BITS_PER_WORD): Raise to 64 on shmedia.
23143         (MAX_BITS_PER_WORD): Change to 64.
23144         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
23145         (INT_TYPE_SIZE): Keep as 32.
23146         (UNITS_PER_WORD): Raise to 8 on shmedia.
23147         (MIN_UNITS_PER_WORD): Keep as 4.
23148         (POINTER_SIZE): Raise to 64 on shmedia.
23149         (CONST_OK_FOR_J): New macro.
23150         (CONST_OK_FOR_LETTER_P): Use it.
23151         (processor_type): Add PROCESSOR_SH5.
23152         * config/sh/sh.md: Conditionalize all expands, insns and
23153         splits to TARGET_SH1.
23154         (cpu): Added sh5.
23155         (addsi3_compact): Renamed from...
23156         (addsi3): Now an expand.
23157         (addsi3_media, subsi3_media): New insns.
23158         (subsi3): Don't negate constants with SHmedia.
23159
23160         * hooks.c: New file.
23161         * hooks.h: New file.
23162         * Makefile.in (HOOKS_H): New.
23163         (TARGET_DEF_H): Added $(HOOKS_H).
23164         (OBJS): Added hooks.o.
23165         (cfgcleanup.o, bb-reorder.o): Added target.h.
23166         (hooks.o): Added dependencies.
23167         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
23168         (TARGET_INITIALIZER): this.
23169         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
23170         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
23171         * bb-reorder.c: Include target.h.
23172         (reorder_basic_blocks): Skip if cannot modify jumps.
23173         * cfgcleanup.c: Include target.h.
23174         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
23175
23176 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
23177
23178         * config/mips/mips.md (casesi_internal, casesi_internal_di):
23179         Protect jump delay slot instructions with .set noreorder and
23180         .set nomacro.
23181
23182 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
23183
23184         * config/mips/mips.md (casesi_internal_di): Calculate
23185         the index into the target offset table correctly.
23186
23187 2002-02-08  Richard Henderson  <rth@redhat.com>
23188
23189         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
23190         * final.c (output_addr_const): Accept and discard SUBREG.
23191         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
23192         mark them unknown instead.
23193         (simplify_subtraction): Handle RTX_UNKNOWN.
23194         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
23195
23196 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
23197
23198         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
23199
23200 2002-02-08  Richard Henderson  <rth@redhat.com>
23201
23202         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
23203
23204 2002-02-08  Andreas Jaeger  <aj@suse.de>
23205
23206         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
23207         * config/i386/t-linux64: New file.
23208
23209 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
23210
23211         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
23212         * c-parse.in (compstmt): Clear last_expr_type.
23213
23214 2002-02-07  Richard Henderson  <rth@redhat.com>
23215
23216         * loop.c (strength_reduce): Sink final_value when not
23217         eliminating a biv.
23218
23219 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
23220
23221         * config/sparc/freebsd.h: Fix mismatched spec {.
23222
23223 2002-02-07  Richard Henderson  <rth@redhat.com>
23224
23225         * cfgrtl.c: Include recog.h and insn-config.h.
23226         (keep_with_call_p): Fix general_operand invocation.
23227         * Makefile.in (cfgrtl.o): Update dependencies.
23228
23229 2002-02-07  Kazu Hirata  <kazu@hxi.com>
23230
23231         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
23232         comment.  Accept HImode only if TARGET_H8300.
23233
23234 2002-02-07  Eric Christopher  <echristo@redhat.com>
23235
23236         * config/mips/crtn.asm: Cleanup #ifdefs.
23237
23238 2002-02-07  Eric Christopher  <echristo@redhat.com>
23239
23240         * config/mips/crti.asm: Add changes for mips16. mips16 uses
23241         register 7 as RA instead of $31.
23242         * config/mips/crtn.asm: Ditto.
23243         * config/mips/mips.c (mips_move_2words): Add case for
23244         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
23245         (compute_frame_size): Fix typo.
23246         (save_restore_insns): Ditto.  Make documentation about using
23247         register $7 as return register more precise.
23248         (mips_expand_epilogue): Fix comment. Add code to work around not
23249         being able to add to the stack pointer directly.
23250         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
23251         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
23252         epilogue.
23253
23254 2002-02-07  Tom Rix  <trix@redhat.com>
23255
23256         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
23257         immediates in ldu and stdu DS opcode field.
23258         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
23259         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
23260         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
23261
23262 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
23263
23264         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
23265         offset for stack bias.
23266
23267 2002-02-07  H.J. Lu <hjl@gnu.org>
23268
23269         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
23270
23271 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
23272
23273         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
23274
23275 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
23276
23277         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
23278         * i386.c (x86_order_regs_for_local_alloc): New global function.
23279         * i386.h (REG_ALLOC_ORDER): CLeanup.
23280         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
23281
23282 2002-02-07  Richard Henderson  <rth@redhat.com>
23283
23284         PR optimization/2463
23285         * alias.c (find_base_value): Recall base values for fixed hard regs.
23286         * loop.c (loop_regs_update): Don't use single_set on non-insns.
23287
23288 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
23289
23290         * config/mips/mips.md (define_delay) [mips16]: Adjust required
23291         length.
23292
23293 2002-02-06  Richard Henderson  <rth@redhat.com>
23294
23295         PR c/5609
23296         * stmt.c (resolve_operand_name_1): Take more care with mixed
23297         named and unnamed operands.
23298
23299 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
23300             Jan Hubicka  <jh@suse.cz>
23301
23302         * loop.c (remove_constant_addition): Avoid clobbering a shared
23303         CONST expression.
23304
23305 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
23306
23307         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
23308         * config/s390/t-linux64: New file.
23309         * config/s390/libgcc-glibc.ver: New file.
23310
23311 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
23312
23313         * config/s390/linux64.h: Delete file.
23314         * config/s390/s390x.h: New file.
23315         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
23316         as target header file.
23317         * config/s390/linux.h (TARGET_VERSION): Define depending on
23318         DEFAULT_TARGET_64BIT.
23319         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
23320         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
23321         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
23322         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
23323         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
23324         (EXTRA_SPEC): New define.
23325         * config/s390/s390.h (TARGET_VERSION): Define depending on
23326         DEFAULT_TARGET_64BIT.
23327         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
23328
23329 2002-02-06  Jason Merrill  <jason@redhat.com>
23330
23331         * c-decl.c (finish_function): Warn about a non-void function with
23332         no return statement and no abnormal exit.
23333         (current_function_returns_abnormally): New variable.
23334         (start_function): Clear it.
23335         (struct c_language_function): Add returns_abnormally.
23336         (push_c_function_context): Save it.
23337         (pop_c_function_context): Restore it.
23338         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
23339         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
23340         an explicit return type.
23341         * c-tree.h: Declare current_function_returns_abnormally.
23342         (C_FUNCTION_IMPLICIT_INT): New macro.
23343         * c-typeck.c (build_function_call): Set it.
23344         (c_expand_return): Set current_function_returns_value even if the
23345         value is erroneous.
23346
23347 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
23348
23349         PR c/5420:
23350         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
23351         unsafe for reevaluation.
23352
23353 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
23354
23355         PR c/5482:
23356         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
23357         EXPR_STMT, but COMPOUND_STMT, recurse into it.
23358
23359 2002-02-06  Richard Henderson  <rth@redhat.com>
23360
23361         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
23362         be a general_operand.  Dest for function value must be a pseudo.
23363
23364 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
23365
23366         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
23367         as SYMBOL_REFs from the constant pool.
23368
23369 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
23370
23371         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
23372         passed by invisible reference.
23373
23374 2002-02-05  Richard Henderson  <rth@redhat.com>
23375
23376         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
23377
23378 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
23379
23380         Implement using "base addresses" in insn operands as default.
23381         * config/mmix/mmix.c (mmix_conditional_register_usage): if
23382         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
23383         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
23384         used to read the rtx value.
23385         (mmix_target_asm_function_epilogue): Fix spacing.
23386         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
23387         (mmix_legitimate_address): Ditto.
23388         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
23389         should be loaded with a GETA insn.  Don't allocate needless extra
23390         char for nul termination and fix misleading comment.
23391         (mmix_print_operand_address): Handle constants if
23392         TARGET_BASE_ADDRESSES.
23393         (mmix_output_register_setting): Use base addressing if
23394         TARGET_BASE_ADDRESSES and the number of insns is 3.
23395         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
23396         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
23397         to use R as constraint, add LDA to match s.
23398         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
23399         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
23400         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
23401         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
23402         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
23403         order with other fixed registers.
23404         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
23405         other parameter/call-clobbered registers.
23406         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
23407         -mbase-addresses, -mno-base-addresses.
23408         (MMIX Options): Ditto.
23409
23410 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23411
23412         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
23413
23414 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
23415
23416         * config/rs6000/altivec.h: Change elem to _S_elem.
23417
23418 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
23419
23420         * config/netbsd.h (WCHAR_TYPE): Define.
23421         (WCHAR_TYPE_SIZE): Ditto.
23422         (WINT_TYPE): Ditto.
23423         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
23424         (WCHAR_UNSIGNED): Ditto.
23425         (WCHAR_TYPE_SIZE): Ditto.
23426         (WINT_TYPE): Ditto.
23427         * config/arm/netbsd.h: Likewise.
23428         * config/i386/netbsd-elf.h: Likewise.
23429         * config/i386/netbsd.h: Likewise.
23430         * config/m68k/netbsd-elf.h: Likewise.
23431         * config/m68k/netbsd.h: Likewise.
23432         * config/ns32k/netbsd.h: Likewise.
23433         * config/sparc/netbsd.h: Likewise.
23434         * config/vax/netbsd.: Likewise.
23435
23436 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
23437
23438         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
23439         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
23440         (TARGET_INITIALIZER): this.
23441         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
23442         (BITFIELD_NBYTES_LIMITED): Markup fix.
23443         * tree.h (default_ms_bitfield_layout_p): Declare.
23444         (record_layout_info): Added prev_field.
23445         * tree.c (default_ms_bitfield_layout_p): New fn.
23446         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
23447         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
23448         * stor-layout.c: Include target.h.
23449         (start_record_layout): Initialize prev_field.
23450         (place_field): Handle MS bit-field layout, and disregard
23451         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
23452         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
23453         * Makefile.in (stor-layout.o): Adjust dependencies.
23454
23455 2002-02-05  Jason Merrill  <jason@redhat.com>
23456
23457         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
23458
23459 2002-02-05  Andreas Jaeger  <aj@suse.de>
23460
23461         * crtstuff.c: Fix comments.
23462
23463 2002-02-05  Richard Henderson  <rth@redhat.com>
23464
23465         PR fortran/3393
23466         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
23467         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
23468
23469         PR fortran/3392
23470         * config/mips/mips.c (function_arg): Handle TImode.
23471         (function_arg_advance): Likewise.
23472
23473 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
23474
23475         * config/rs6000/altivec.h (vec_step_help): Rename to
23476         __vec_step_help.
23477
23478 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
23479
23480         * config/rs6000/altivec.h: Fix typos.
23481
23482 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
23483
23484         * config/arm/netbsd.h: Correct a comment.
23485
23486 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
23487
23488         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
23489         building void typed builtins.
23490
23491         * config/rs6000/altivec.h (vec_ld*): Fix typos.
23492         (vec_step): Implement for C++.
23493
23494 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23495
23496         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
23497
23498 2002-02-04  Richard Henderson  <rth@redhat.com>
23499
23500         * combine.c (nonzero_bits): Re-introduce special case for
23501         sp/fp/ap wrt REGNO_POINTER_ALIGN.
23502
23503 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
23504
23505         * doc/extend.texi: Warn about unsupported usage of altivec
23506         builtins.
23507
23508         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
23509         (altivec_predicate_*): New.
23510
23511         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
23512         Add C++ version of vec_*() functions.
23513
23514         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
23515         (bdesc_2arg): Remove altivec predicates.
23516         (altivec_expand_builtin): Handle predicates.
23517         (altivec_init_builtins): Handle predicates.
23518         (altivec_expand_predicate_builtin): New.
23519
23520 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23521
23522         * pa.c (DO_FRAME_NOTES): Move forward.
23523         (store_reg): Revise handling of frame notes.
23524         (load_reg): Likewise.
23525         (set_reg_plus_d): Likewise.
23526         (hppa_expand_prologue): Likewise.
23527         (hppa_expand_epilogue): Likewise.
23528
23529 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23530
23531         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
23532
23533 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
23534
23535         PR c/4475, c++/3780:
23536         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
23537         * c-common.h (SWITCH_TYPE): Define.
23538         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
23539         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
23540         Rename spareness variable to sparseness.
23541         (expand_end_case_type): Renamed from expand_end_case, use orig_type
23542         if non-NULL instead of TREE_TYPE (orig_index).
23543         * tree.h (expand_end_case_type): Renamed from expand_end_case.
23544         (expand_end_case): Define using expand_end_case_type.
23545         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
23546         to expand_end_case_type.
23547         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
23548
23549 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23550
23551         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
23552         (BIGGEST_ALIGNMENT): Change to 128.
23553
23554 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23555
23556         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
23557
23558 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23559
23560         * pa.md (call_internal_reg_64bit): Remove unused variable.
23561
23562 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
23563
23564         * config/arm/arm.h (machine_function): Add uses_anonymous_args
23565         field.
23566         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
23567         * config/arm/arm.c (current_function_anonymous_args): Delete,
23568         replace uses with cfun->machine->uses_anonymous_args.
23569         (arm_reorg): Do not reset uses_anonymous_args.
23570
23571         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
23572         any geenral register.
23573
23574 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
23575
23576         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
23577         the entry block.
23578
23579 2002-02-04  Richard Henderson  <rth@redhat.com>
23580
23581         * combine.c (force_to_mode): Remove STACK_BIAS code.
23582         (nonzero_bits): Likewise.  Replace sp/fp special case with
23583         REGNO_POINTER_ALIGN.
23584
23585         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
23586         (HARD_FRAME_POINTER_REGNUM): New.
23587         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
23588         (FIXED_REGS, CALL_USED_REGS): Update.
23589         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
23590         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
23591         (HARD_REGNO_NREGS): Update for SFP.
23592         (STACK_POINTER_OFFSET): Include bias here ...
23593         (FIRST_PARM_OFFSET): ... not here.
23594         (STACK_BIAS): Remove.
23595         (INIT_EXPANDERS): New.
23596         (STARTING_FRAME_OFFSET): Do not include bias.
23597         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
23598         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
23599         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
23600         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
23601         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
23602         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
23603         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
23604         (MUST_SAVE_REGISTER): Likewise.
23605         (sparc_flat_function_prologue): Likewise.
23606         (sparc_flat_function_epilogue): Likewise.
23607         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
23608         (sparc_init_modes): SFP is GENERAL_REGS.
23609         (sparc_builtin_saveregs): SFP does not have bias applied.
23610
23611 2002-02-04  Richard Henderson  <rth@redhat.com>
23612
23613         * config/alpha/alpha.c (current_function_is_thunk): Don't check
23614         current_function_is_thunk.
23615         (alpha_sa_mask): Distinguish between current_function_is_thunk
23616         called from ASM_OUTPUT_MI_THUNK and not.
23617         (alpha_does_function_need_gp): Thunks always need gp.
23618         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
23619         (alpha_output_mi_thunk_osf): New.
23620         * config/alpha/alpha-protos.h: Update.
23621         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
23622
23623 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
23624
23625         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
23626         function types, not when they're taken away.
23627
23628 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
23629
23630         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
23631         CODE_LABEL and jump table when replacing a table jump with a
23632         simple jump.
23633
23634 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
23635
23636         * config/s390/s390-protos.h (legitimize_la_operand,
23637         s390_secondary_input_reload_class, s390_plus_operand,
23638         s390_expand_plus_operand): Add prototypes.
23639
23640         config/s390/s390.c (s390_secondary_input_reload_class,
23641         s390_plus_operand, s390_expand_plus_operand): New functions.
23642
23643         (struct s390_address): New member 'pointer'.
23644         (s390_decompose_address): Compute it.
23645         (legitimate_la_operand_p): Use it.
23646         (legitimize_la_operand): New function.
23647         (movti, movdi, movdf splitters): Call it.
23648
23649         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
23650         (PREDICATE_CODES): Add s390_plus_operand.
23651
23652         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
23653         (la_ccclobber): Allow GENERAL_REGS as output operand.
23654
23655         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
23656         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
23657         (*la_64, *la_31, reload_indi, reload_insi): ... these.
23658
23659 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
23660
23661         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
23662         register names for regular asm () construct.
23663
23664 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
23665
23666         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
23667         registers.
23668
23669 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
23670
23671         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
23672         pat for recog.
23673
23674 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
23675
23676         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
23677         constant pool to be identical by string address and index.
23678
23679 2002-02-04  Anthony Green  <green@redhat.com>
23680
23681         * output.h (SECTION_OVERRIDE): Define.
23682         * varasm.c (named_section): Obey SECTION_OVERRIDE.
23683
23684 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
23685
23686         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
23687         by existing arm*-*-netbsd* (a.out) target.
23688         (ns32k-*-netbsdelf*): Likewise.
23689         (sparc-*-netbsdelf*): Likewise.
23690         (vax-*-netbsdelf*): Likewise.
23691
23692 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
23693
23694         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
23695         headers and libobjc headers.
23696
23697 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
23698
23699         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
23700         (_mingw.h): Remove duplicate include.
23701
23702 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
23703
23704         * config.gcc: Set cpu_type to m68k for 68010, as well.
23705         (m68010-*-netbsdelf*): New...
23706         (m68k*-*-netbsdelf*): ...targets.
23707         * config/m68k/netbsd-elf.h: New file.
23708
23709 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23710
23711         * config/h8300/h8300.c (hand_list): Move inside function_arg.
23712
23713 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23714
23715         * config/h8300/h8300.c (h8_push_ops): Move inside
23716         h8300_init_once.
23717         (h8_pop_ops): Likewise.
23718         (h8_move_ops): Likewise.
23719
23720 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23721
23722         * config/h8300/h8300.c (os_task): Make it static.
23723         (monitor): Likewise.
23724         (pragma_saveall): Likewise.
23725
23726 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
23727
23728         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
23729         constant is a valid sign-extension for Pmode.
23730
23731 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23732
23733         * config/h8300/h8300.c: Fix formatting.
23734
23735 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23736
23737         * config/h8300/h8300.md: Fix formatting.
23738
23739 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23740
23741         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
23742         predicates of operands[1].  Split the patterns for each
23743         processor variant.
23744
23745 2002-02-02  Kazu Hirata  <kazu@hxi.com>
23746
23747         * config/h8300/h8300.md (xor patterns): Tighten the predicates
23748         of operands[1] to register_operand.
23749
23750 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
23751
23752         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
23753         * cpphash.c (_cpp_init_hashtable): Similarly.
23754         * cppinit.c (cpp_create_reader): Default the signed_char flag.
23755         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
23756         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
23757         (cpp_handle_option): Handle the new options.
23758         * cpplex.c (cpp_interpret_charconst): Use new flag.
23759         * cpplib.h (struct cpp_options): New member signed_char.
23760         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
23761         (cpp_options): Handle -fsigned-char and -funsigned-char.
23762         (static_specs): Remove signed_char_spec.
23763         (do_spec1): Don't handle %c.
23764         * system.h: Poison SIGNED_CHAR_SPEC.
23765         * tradcif.y (yylex): Use flag_signed_char.
23766         * tradcpp.h (flag_signed_char): New.
23767         * tradcpp.c (flag_signed_char): New.
23768         (main): Handle new command-line options.
23769         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
23770 config:
23771         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
23772         * avr/avr.h: Remove old comments.
23773         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
23774         (CC1_SPEC): Pass -fsigned-char if -mic*.
23775         (SIGNED_CHAR_SPEC): Remove.
23776 doc:
23777         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
23778
23779 2002-02-01  Eric Christopher  <echristo@redhat.com>
23780
23781         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
23782         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
23783         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
23784         (ASM_OUTPUT_REG_POP): Ditto.
23785
23786 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
23787
23788         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
23789         patch.
23790
23791 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
23792
23793         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
23794
23795 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
23796
23797         PR c/5304:
23798         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
23799         unconditionally.
23800
23801 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
23802
23803         * cfganal.c: Include tm_p.h.
23804         (keep_with_call_p): Fix the test that determines if a register holds
23805         the return value of a call.
23806
23807 2002-02-01  DJ Delorie  <dj@redhat.com>
23808
23809         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
23810         we are given conflicting registers, switch to the other one we
23811         had allocated for us.
23812         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
23813         as TImode so we know when the "other" register is available.
23814
23815 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
23816
23817         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
23818         sparc/sparc_bi.h.
23819
23820 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
23821
23822         * cfganal.c (keep_with_call_p): New function.
23823         (flow_call_edges_add): Prevent splitting a block between a call and
23824         a single-set instruction that should be kept in the same block.
23825
23826 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
23827
23828         * doc/install.texi (avr): Update outdated URL.
23829
23830 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
23831
23832         * config/stormy16/stormy16.md (pushqi): New.
23833         (popqi): New.
23834         (pushhi): New.
23835         (pophi): New.
23836         (movhi): Remove stack operands.
23837         (movqi): Likewise.
23838         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
23839         nonimmediate_nonstack_operand.
23840         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
23841         New.
23842         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
23843         New.
23844
23845 2002-01-31  Jason Merrill  <jason@redhat.com>
23846
23847         * Makefile.in (c-parse.c): Handle .output file.
23848         * objc/Make-lang.in (objc-parse.c): Likewise.
23849
23850 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
23851
23852         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
23853         the -me[lb] option is given.  Don't output the default flag
23854         twice.
23855
23856 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
23857
23858         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
23859         the primary source file; this has not been done yet.
23860         * c-decl.c (c_expand_body): Reset input_filename from
23861         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
23862
23863 2002-01-31  Kazu Hirata  <kazu@hxi.com>
23864
23865         * rtlanal.c (subreg_regno_offset): Do not use
23866         SUBREG_REGNO_OFFSET.
23867         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
23868         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
23869
23870 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
23871
23872         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
23873         version rather than GNATS version in --version output.
23874
23875 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
23876
23877         * ifcvt.c (noce_process_if_block): Make a copy of the destination
23878         when copying back from a temporary.
23879
23880 2002-01-30  Richard Henderson  <rth@redhat.com>
23881
23882         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
23883         and new_dest are the same.
23884
23885 2002-01-30  Richard Henderson  <rth@redhat.com>
23886
23887         PR opt/5076
23888         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
23889         * rtl.c (note_insn_name): Update.
23890         * emit-rtl.c (remove_unnecessary_notes): Kill it.
23891         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
23892         to perform loop rotation.
23893         (expand_exit_loop_top_cond): New.
23894         * tree.h (expand_exit_loop_top_cond): Declare it.
23895         * c-semantics.c (genrtl_while_stmt): Use it.
23896         (genrtl_for_stmt): Likewise.
23897
23898 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
23899
23900         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
23901         arguments to 64-bit boundaries on 64-bit ABIs.
23902
23903 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
23904
23905         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
23906
23907 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
23908
23909         * c-decl.c (grokdeclarator): Handle type being a typedef for an
23910         invalid type.
23911
23912 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
23913
23914         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
23915         * config/sparc/sparc_bi.h: Remove file.
23916         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
23917
23918 2002-01-30  Richard Henderson  <rth@redhat.com>
23919
23920         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
23921
23922 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
23923
23924         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
23925
23926 2002-01-30  Jason Merrill  <jason@redhat.com>
23927
23928         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
23929         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
23930         (reg_save): Use DW_CFA_offset_extended_sf instead.
23931
23932         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
23933
23934 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
23935
23936         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
23937         in cselib_lookup.
23938
23939 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
23940
23941         * rs6000.md ("*call_value_local32"): Remove constraints.
23942         ("*call_value_local64"): Same.
23943         ("*call_value_indirect_nonlocal_aix32"): Same.
23944         ("*call_value_nonlocal_aix32"): Same.
23945         ("*call_value_indirect_nonlocal_aix64"): Same.
23946         ("*call_value_nonlocal_aix64"): Same.
23947         ("*call_value_nonlocal_sysv"): Same.
23948
23949 2002-01-29  Richard Henderson  <rth@redhat.com>
23950
23951         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
23952
23953 2002-01-29  Richard Henderson  <rth@redhat.com>
23954
23955         * expr.c (force_operand): Ignore flag_pic for detecting pic
23956         address loads.
23957         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
23958         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
23959         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
23960         instead of open-coded loop.
23961         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
23962         be fixed when in use.
23963
23964 2002-01-29  Richard Henderson  <rth@redhat.com>
23965
23966         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
23967         * sched-rgn.c (propagate_deps): Update them.
23968         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
23969         clobbers list when either gets too long.
23970
23971 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
23972
23973         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
23974         and INDEX_REGS the same as GENERAL_REGS.
23975         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
23976
23977 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
23978
23979         * tree.c (build_nonstandard_integer_type): Correct prototype.
23980
23981 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
23982
23983         * config/s390/s390.md (movstrsico, movstrdix_64,
23984         movstrsix_31): Remove, replace by ...
23985         (movstrdi_short, movstrsi_short, movstrdi_long,
23986         movstrsi_long): ... these.  New.
23987         (movstrdi, movstrsi): Adapt.
23988
23989         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
23990         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
23991         Remove unnecessary CC clobber.
23992         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
23993         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
23994
23995         (divmoddi4): Don't partially initialize TImode register.
23996
23997 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
23998
23999         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
24000
24001 2002-01-29  Richard Henderson  <rth@redhat.com>
24002
24003         * flow.c (print_rtl_and_abort): Remove.
24004         (print_rtl_and_abort_fcn): Remove.
24005         (verify_local_live_at_start): Use dump_bb instead.
24006         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
24007         (verify_wide_reg_1): Return 2 on mode test failure.
24008
24009 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
24010
24011         PR c/3325, c/3326, c/2511, c/3347
24012         * c-decl.c (enum_decl_context): Remove BITFIELD.
24013         (grokdeclarator): Take bitfield width as an input.
24014         Ensure bitfields are given the correct type.  Perform
24015         bitfield width validation with build_bitfield_integer_type
24016         rather than waiting for finish_struct.
24017         (grok_typename, grok_typename_in_parm_context, start_decl,
24018         push_parmdecl, grokfield, start_function): Update calls to
24019         grokdeclarator.
24020         (build_bitfield_integer_type): New function.
24021         (finish_struct): Move bitfield validation to grokdeclarator
24022         and build_bitfield_integer_type.
24023         * tree.c (build_nonstandard_integer_type): New function.
24024         * tree.h (build_nonstandard_integer_type): New prototype.
24025 objc:
24026         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
24027
24028 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
24029
24030         PR other/1502:
24031         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
24032         don't ignore unrecognized -W* options.
24033         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
24034         * cpplib.h (cpp_handle_option): Adjust prototype.
24035         * c-decl.c (c_decode_options): Pass 0 as last argument to
24036         cpp_handle_option.
24037
24038         PR c/2896:
24039         * gcc.c (cpp_unique_options): Split from cpp_options.
24040         (cpp_options): Source cpp_unique_options.
24041         (default_compilers): Use cpp_unique_options instead of cpp_options
24042         when used together with cc1_options.
24043         (static_specs): Add cpp_unique_options.
24044         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
24045         when used together with cc1_options.
24046
24047 2002-01-29  Kazu Hirata  <kazu@hxi.com>
24048
24049         * config/h8300/h8300-protos.h: Update the prototype of
24050         output_a_shift.
24051         * config/h8300/h8300.c (output_a_shift): Remove an unused
24052         argument 'insn'.  Remove redundant code.
24053         * config/h8300/h8300.md: Adust to the new prototype of
24054         output_a_shift.
24055
24056 2002-01-29  Kazu Hirata  <kazu@hxi.com>
24057
24058         * config/h8300/h8300-protos.h: Update the prototypes of
24059         emit_a_rotate and expand_a_rotate.
24060         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
24061         first argument to 'enum rtx_code'.
24062         (expand_a_rotate): Likewise.
24063
24064 2002-01-28  Kazu Hirata  <kazu@hxi.com>
24065
24066         * config/h8300/h8300-protos.h: Update the prototype of
24067         output_simode_bld.
24068         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
24069         'log2'.
24070         * config/h8300/h8300.md: Adjust to the new prototype.
24071
24072 2002-01-28  Kazu Hirata  <kazu@hxi.com>
24073
24074         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
24075         redundant code.
24076
24077 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24078
24079         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
24080         is a fixed register before returning pic_offset_table_rtx.
24081         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
24082         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
24083
24084 2002-01-28  Jason Merrill  <jason@redhat.com>
24085
24086         * dwarf2.h: Sync with src version.
24087
24088 2002-01-28  Paul Koning  <pkoning@equallogic.com>
24089
24090         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
24091         BT_FN_VOID_PTR_VAR.
24092         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
24093         * doc/extend.texi (__builtin_prefetch): Update documentation:
24094         first argument is now const void ptr.
24095
24096 2002-01-28  Kazu Hirata  <kazu@hxi.com>
24097
24098         * config/h8300/h8300-protos.h: Remove an unused prototype.
24099
24100 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
24101
24102         * toplev.c (lang_independent_init): Round up identifier size.
24103
24104 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
24105
24106         * config.gcc: Revert previous change.
24107
24108 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
24109
24110         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
24111
24112 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
24113
24114         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
24115         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
24116         other non-elf netbsd config frags.
24117         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
24118         collect2 will does that.
24119         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
24120         shared-lib frobbing will work.
24121
24122 2002-01-28  Kazu Hirata  <kazu@hxi.com>
24123
24124         * config/h8300/h8300.h: Fix formatting.
24125         * config/h8300/h8300.md: Likewise.
24126
24127 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
24128
24129         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
24130         the old, removed AAA_standards fix.
24131         * fixinc/fixincl.x: Rebuilt.
24132
24133 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
24134
24135         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
24136         atexit call in crtbegin, hooked in after call to frame_dummy;
24137         register EH before registering __fini__start.
24138
24139 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
24140
24141         * config/rs6000/altivec.h: Remove spurious semicolons.
24142
24143 2002-01-27  Kazu Hirata  <kazu@hxi.com>
24144
24145         * config/h8300/h8300.md: Replace dead bit extraction patterns
24146         with ones that work.
24147
24148 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24149
24150         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
24151         if not STRICT_ALIGNMENT.
24152         * rtl.h (MEM_ALIGN): Likewise.
24153
24154 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
24155
24156         * doc/invoke.texi (-fdump-translation-unit): Revert this
24157         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
24158
24159 2002-01-27  Kazu Hirata  <kazu@hxi.com>
24160
24161         * config/h8300/h8300.md (define_constants): New.
24162         (anonymous patterns) Use defined constants appropriately.
24163
24164 2002-01-27  Kazu Hirata  <kazu@hxi.com>
24165
24166         * config/h8300/h8300.c (function_arg): Remove redundant code.
24167
24168 2002-01-26  Richard Henderson  <rth@redhat.com>
24169
24170         * sched-deps.c (reg_pending_uses_head): New.
24171         (reg_pending_barrier): Rename from reg_pending_sets_all.
24172         (find_insn_list): Don't mark inline.
24173         (find_insn_mem_list): Remove.
24174         (add_dependence_list, add_dependence_list_and_free): New.
24175         (flush_pending_lists): Replace only_write param with separate
24176         for_read and for_write parameters.  Update all callers.  Use
24177         add_dependence_list_and_free.
24178         (sched_analyze_1): Do not add reg dependencies here; just set
24179         the pending bits.  Use add_dependence_list.
24180         (sched_analyze_2): Likewise.
24181         (sched_analyze_insn): Replace schedule_barrier_found with
24182         reg_pending_barrier.  Add all dependencies for pending reg
24183         uses, sets, and clobbers.
24184         (sched_analyze): Don't add reg dependencies for calls, just
24185         set pending bits.  Use regs_invalidated_by_call.  Treat
24186         sched_before_next_call as a normal list, not a fake insn.
24187         (init_deps): No funny init for sched_before_next_call.
24188         (free_deps): Free pending mems lists.  Don't zero reg_last.
24189         (init_deps_global): Init reg_pending_uses.
24190         (finish_deps_global): Free it.
24191         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
24192         (find_insn_mem_list): Remove.
24193         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
24194         (propagate_deps): Use them.  Zero temp mem lists.
24195
24196 2002-01-26  Richard Henderson  <rth@redhat.com>
24197
24198         * Makefile.in (CRTSTUFF_CFLAGS): New.
24199         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
24200         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
24201         crtstuff.c instead of alpha assembly version.
24202         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
24203         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
24204         not FORCE_{INIT,FINI}_SECTION_ALIGN.
24205         (__do_global_dtors_aux): Mark used.
24206         (frame_dummy, __do_global_ctors_aux): Mark used.
24207         (fini_dummy, init_dummy): Remove.
24208
24209         * config/alpha/crtbegin.asm: Remove file.
24210         * config/alpha/crtend.asm: Remove file.
24211         * config/alpha/t-crtbe: Remove file.
24212         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
24213         (LINK_EH_SPEC): New.
24214
24215         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
24216         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
24217         calling constructors.
24218         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
24219
24220         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
24221         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
24222         CRT_END_INIT_DUMMY hack.
24223         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
24224         FORCE_{INIT,FINI}_SECTION_ALIGN.
24225
24226         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
24227         FORCE_{INIT,FINI}_SECTION_ALIGN.
24228
24229         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
24230         invocation sequence.
24231         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
24232
24233         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
24234         (FORCE_CODE_SECTION_ALIGN): New.
24235
24236 2002-01-26  Richard Henderson  <rth@redhat.com>
24237
24238         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
24239
24240 2002-01-26  Richard Henderson  <rth@redhat.com>
24241
24242         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
24243         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
24244
24245 2002-01-26  Kazu Hirata  <kazu@hxi.com>
24246
24247         * config/h8300/h8300.md: Remove bit extraction patterns that
24248         cannot be triggered.
24249         Restrict each bit extraction pattern to a variant on which the
24250         pattern is tested.
24251
24252 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
24253
24254         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
24255
24256 2002-01-26  Kazu Hirata  <kazu@hxi.com>
24257
24258         * config/h8300/h8300.md: Remove bit test patterns that cannot
24259         be triggered.
24260         Restrict each bit test pattern to a variant on which the
24261         pattern is tested.
24262
24263 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24264
24265         * builtins.c (expand_builtin_strncat): Remove redundant check for
24266         INTEGER_CST.
24267
24268 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
24269
24270         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
24271         default setting.
24272         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
24273         existing setting.
24274
24275 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
24276
24277         * dbxout.c (dbxout_init): Use assemble_name rather than just
24278         stripping off the first character.
24279         (dbxout_source_file): Likewise.
24280
24281 2002-01-25  DJ Delorie  <dj@redhat.com>
24282
24283         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
24284         using rtx_equal_p, not by comparing pointers.
24285
24286 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
24287
24288         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
24289         for PIC_OFFSET_TABLE_REGNUM.
24290         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
24291
24292 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
24293
24294         * config.gcc (x86_64-*-freebsd*): New target.
24295         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
24296         value.
24297         (i[34567]86-*-freebsd*): Don't include svr4.h.
24298         * config/i386/freebsd64.h: New file.
24299
24300 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
24301
24302         * config/alpha/x-vms (version): Make static.
24303
24304         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
24305         in previous checkin.
24306
24307         * Makefile.in (install-headers-cp): New target.
24308         * config.gcc (alpha-dec-*vms*): Install headers with
24309         install-headers-cp
24310
24311 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
24312
24313         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
24314         avoid it's copies.
24315
24316 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24317
24318         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
24319         of compare_tree_int.
24320         (expand_builtin_strncat): Likewise.
24321         * c-decl.c (finish_struct): Use tree_low_cst.
24322         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
24323         * tree.c (compare_tree_int): Likewise.
24324
24325 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
24326
24327         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
24328         adjustments even if they are implemented by more than two insns.
24329
24330 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
24331
24332         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
24333         * df.h (struct ref): Kill B.
24334         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
24335
24336         * basic-block.h (PROP_EQUAL_NOTES): New flag.
24337         * flow.c (propagate_one_insn): Use it.
24338         (mark_used_regs): Handle NIL.
24339
24340 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
24341
24342         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
24343         to help folding.
24344
24345 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
24346
24347         * rs6000.md (prefetch): Make address V4SI mode so that the address
24348         is restricted to legitimate form for instruction.
24349
24350 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
24351
24352         * doc/install.texi (xtensa-*-elf): New target.
24353         (xtensa-*-linux*): New target.
24354         * doc/contrib.texi: Add myself.
24355
24356 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
24357
24358         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
24359         purpose register to hold an SImode (or smaller) value.
24360
24361 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
24362
24363         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
24364         registry only.
24365         * crtstuff.c: Likewise.
24366
24367 2002-01-25  Kazu Hirata  <kazu@hxi.com>
24368
24369         * config/h8300/h8300.md (negation patterns): Tighten
24370         predicates to register_operand.
24371
24372 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
24373
24374         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
24375         mode, not Pmode.
24376
24377         * builtins.c (expand_builtin_prefetch): Same.
24378
24379 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
24380
24381         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
24382         modes.
24383
24384 2002-01-24  Kazu Hirata  <kazu@hxi.com>
24385
24386         * config/h8300/h8300.c (print_operand): Remove support for
24387         operand character 'A'.
24388         * config/h8300/h8300.md (three anonymous patterns): Replace
24389         operand character 'A' with either 'T' or 'S'.
24390
24391 2002-01-24  Kazu Hirata  <kazu@hxi.com>
24392
24393         * config/h8300/h8300.c (print_operand): Remove support for
24394         operand character 'U'.
24395
24396 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
24397
24398         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
24399
24400 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
24401
24402         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
24403         values to be assigned to the stack pointer.
24404
24405 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
24406
24407         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
24408         to const_double needs to be done right for big-endian systems.
24409
24410 2002-01-24  Jason Merrill  <jason@redhat.com>
24411
24412         PR c++/2432
24413         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
24414         to can_throw_internal.
24415
24416 2002-01-23  Richard Henderson  <rth@redhat.com>
24417
24418         * fold-const.c (fold): Change UINT_MAX test to check vs precision
24419         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
24420
24421 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
24422
24423         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
24424         (symGOT2reg): Use them, then set as GOT value as unchanging.
24425         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
24426         as a temporary, if possible.
24427         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
24428         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
24429
24430 2002-01-23  Kazu Hirata  <kazu@hxi.com>
24431
24432         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
24433         accept to accept 0x80 as operands[2].
24434
24435 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
24436
24437         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
24438
24439 2002-01-23  Richard Henderson  <rth@redhat.com>
24440
24441         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
24442
24443 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
24444
24445         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
24446         (parmlist_or_identifiers_1): Verify that only a parmlist follows
24447         an attribute.
24448
24449 2002-01-23  Richard Henderson  <rth@redhat.com>
24450
24451         * expr.c (move_by_pieces_1): Extend size before negation.
24452
24453         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
24454         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
24455         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
24456         * config/m68k/t-m68kelf: Likewise.
24457
24458 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
24459
24460         * config/xtensa/elf.h: New file.
24461         * config/xtensa/lib1funcs.asm: New file.
24462         * config/xtensa/lib2funcs.S: New file.
24463         * config/xtensa/linux.h: New file.
24464         * config/xtensa/t-xtensa: New file.
24465         * config/xtensa/xtensa-config.h: New file.
24466         * config/xtensa/xtensa-protos.h: New file.
24467         * config/xtensa/xtensa.c: New file.
24468         * config/xtensa/xtensa.h: New file.
24469         * config/xtensa/xtensa.md: New file.
24470         * config.gcc (xtensa-*-elf*): New target.
24471         (xtensa-*-linux*): New target.
24472         * cse.c (canon_hash): Compare rtx pointers instead of register
24473         numbers.  This is required for the Xtensa port.
24474         * integrate.c (copy_insn_list): Handle case where the static
24475         chain is in memory and the memory address has to be copied to
24476         a register.
24477         * doc/invoke.texi (Option Summary): Add Xtensa options.
24478         (Xtensa Options): New node.
24479         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
24480
24481 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
24482
24483         * diagnostic.c (internal_error): Do ICE suppression only
24484         when ENABLE_CHECKING is not defined.
24485
24486         * c-typeck.c (require_complete_type): Return error_mark_node
24487         if type is error_mark_node.
24488
24489 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
24490
24491         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
24492         -Os and issue a warning.
24493
24494 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
24495
24496         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
24497         current (lack of) need for host configuration by hand.
24498
24499         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
24500         references.  Documentation of some target macros moved from
24501         hostconfig.texi to tm.texi.
24502
24503 2002-01-23  Will Cohen  <wcohen@redhat.com>
24504
24505         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
24506         defined.
24507
24508 2002-01-23  Kazu Hirata  <kazu@hxi.com>
24509
24510         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
24511         operand[3].
24512
24513 2002-01-23  Jason Merrill  <jason@redhat.com>
24514
24515         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
24516
24517         * function.c (assign_parms): Don't put args of inline functions
24518         into registers when not optimizing.
24519
24520 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
24521
24522         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
24523         (prologue_use): New pattern.
24524         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
24525         preference to gen_rtx_USE.
24526         (thumb_expand_prologue): Use gen_prologue_use in preference to
24527         gen_rtx_USE.
24528         (thumb_expand_epilogue): Use gen_prologue_use in preference to
24529         gen_rtx_USE.
24530
24531 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
24532
24533         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
24534
24535 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
24536
24537         PR c/3504
24538         * doc/extend.texi: Correct documentation of __alignof__.
24539
24540 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
24541
24542         * params.h: Rename arguments of DEFPARAM so that it will be
24543         recognized as a translation keyword.
24544
24545 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
24546
24547         * extend.texi: Document altivec functions.
24548         Fix N-bit adjectives in X86 builtin documentation.
24549
24550 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
24551
24552         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
24553         auto_inc_dec values.
24554
24555 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
24556
24557         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
24558         after backslash.
24559         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
24560
24561 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
24562
24563         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
24564
24565 2002-01-22  Richard Henderson  <rth@redhat.com>
24566
24567         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
24568         copy_insn not copy_rtx.
24569
24570 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
24571
24572         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
24573         "nonzero" as that might add "1" bits.  Ensure "constop" is
24574         properly sign extened.
24575         (force_to_mode): Tweak for sign extended constop.
24576
24577 2002-01-22  Richard Henderson  <rth@redhat.com>
24578
24579         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
24580         for_each_rtx instead of assuming we're already looking at the MEM.
24581         (split_small_symbolic_mem_operand): Likewise.
24582         * config/alpha/alpha.h (PREDICATE_CODES): Update.
24583         * config/alpha/alpha.md (small symbolic memory splitters): Update.
24584
24585 2002-01-22  Richard Henderson  <rth@redhat.com>
24586
24587         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
24588         sequence number for the literal.
24589         (divmoddi_internal_er): Likewise.
24590
24591 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
24592
24593         PR java/4972
24594         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
24595         in LIBICONV variable.
24596         * configure: Regenerated.
24597
24598 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
24599
24600         * dependence.c (build_def_use): Remove array_idx.
24601
24602         * dwarfout.c (last_filename): Remove.
24603         (output_compile_unit_die): Remove last_filename.
24604
24605 2002-01-22  Roger Sayle  <roger@eyesopen.com>
24606             Richard Henderson  <rth@redhat.com>
24607
24608         PR opt/3640
24609         * fold-const.c (fold): Optimize unsigned comparisons against
24610         UINT_MAX (and similar unsigned constants).
24611
24612 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
24613
24614         * Makefile.in (loop.o): Depend on OPTABS_H.
24615         * loop.c (emit_prefetch_instructions): Check the prefetch operand
24616         against the predicate.
24617
24618         PR target/5379
24619         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
24620         for the address operand.
24621
24622 2002-01-22  Richard Henderson  <rth@redhat.com>
24623
24624         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
24625
24626 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
24627
24628         PR other/5450
24629         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
24630         preprocessor flags.
24631
24632 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
24633
24634         * config.gcc (x86_64-*-netbsd*): New target.
24635         * config/i386/netbsd64.h: New file.
24636
24637 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
24638
24639         * regrename.c (kill_value): Fix typo.
24640
24641 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
24642
24643         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
24644
24645         * config/rs6000/rs6000.h: Same.
24646
24647         * function.c (instantiate_virtual_regs): Remove
24648         STARTING_FRAME_PHASE.
24649         (assign_stack_local_1): Same.
24650         Calculate frame phase.
24651
24652 2002-01-22  Nick Clifton  <nickc@redhat.com>
24653
24654         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
24655         variable declaration to outer scope in order to simplify
24656         future extensions.
24657         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
24658         arm_hard_regno_mode_ok.
24659         * config/arm/arm-protos.h: Add a prototype for
24660         arm_hard_regno_mode_ok.
24661         * config/arm/arm.c (soft_df_operand): Remove now redundant
24662         check for DImode values using IP_REGNUM.
24663         (nonimmediate_soft_df_operand): Remove now redundant check for
24664         DImode values using IP_REGNUM.
24665         (arm_hard_regno_mode_ok): New function. New check: make sure
24666         that DImode values are not stored in IP_REGNUM.
24667
24668         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
24669         note with a USE.
24670         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
24671
24672 2002-01-22  Jason Merrill  <jason@redhat.com>
24673
24674         * c-semantics.c (genrtl_compound_stmt): Only check nesting
24675         consistency if this COMPOUND_STMT is scoped.
24676
24677 2002-01-22  Kazu Hirata  <kazu@hxi.com>
24678
24679         * predict.c: Fix formatting.
24680         * print-tree.c: Likewise.
24681         * protoize.c: Likewise.
24682         * real.h: Likewise.
24683         * rtl.h: Likewise.
24684         * sbitmap.h: Likewise.
24685         * scan.c: Likewise.
24686         * sched-deps.c: Likewise.
24687         * sched-vis.c: Likewise.
24688         * sdbout.c: Likewise.
24689         * sibcall.c: Likewise.
24690         * ssa.c: Likewise.
24691         * ssa-ccp.c: Likewise.
24692         * ssa-dce.c: Likewise.
24693         * stmt.c: Likewise.
24694         * stor-layout.c: Likewise.
24695         * system.h: Likewise.
24696
24697 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24698
24699         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
24700         if fits in bounds of base type.
24701
24702         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
24703         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
24704         (add_bound_info, default): If can't find a context, make a
24705         SAVE_EXPR.
24706         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
24707
24708 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
24709
24710         * c-typeck.c (parser_build_binary_op): If result from
24711         build_binary_op is ERROR_MARK just return error_mark_node without
24712         further processing.
24713
24714 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
24715
24716         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
24717         Split a.out-specific bits into...
24718         * config/netbsd-aout.h: ...this.
24719         * config/netbsd-elf.h: New file.
24720         * config/alpha/netbsd-elf.h: Remove.
24721         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
24722         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
24723         (STARTFILE_SPEC): Remove redundant definition.
24724         (ENDFILE_SPEC): Likewise.
24725         (LINK_SPEC): Likewise.
24726         (CPP_SPEC): Likewise.
24727         (ASM_SPEC): Likewise.
24728         (LIB_SPEC): Likewise.
24729         (SWITCH_TAKES_ARG): Likewise.
24730         (TARGET_MEM_FUNCTIONS): Likewise.
24731         (CPP_PREDEFINES): Redefine.
24732         (ASM_FINAL_SPEC): Remove redefinition.
24733         (ASM_COMMENT_START): Redefine.
24734         (FUNCTION_PROFILER): Define.
24735         (TARGET_VERSION): Redefine.
24736         Comment and formatting cleanup.
24737         * config/i386/netbsd.h: Include <netbsd-aout.h>.
24738         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
24739         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
24740         big- or little-endian.
24741         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
24742         * config.gcc (*-*-netbsd*): Add definitions common to all
24743         NetBSD configs.
24744         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
24745         gnu_ld definitions.  Add netbsd-elf.h to and remove
24746         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
24747         tmake_file, and don't lose previous tmake_file contents.
24748         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
24749         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
24750         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
24751         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
24752         (mipsel-*-netbsd*): Rename this to...
24753         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
24754         mips/little.h to tm_file for mips*el-*.
24755         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
24756         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
24757         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
24758
24759 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24760
24761         * pa-protos.h (reg_before_reload_operand): New function prototype.
24762         * pa.c (reg_before_reload_operand): New function implementation.
24763         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
24764         contraints to "*m".
24765
24766 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24767
24768         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
24769
24770 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24771
24772         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
24773         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
24774         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
24775         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
24776         (ENDFILE_SPEC): Undefine.
24777         (STARTFILE_SPEC): Redefine for PA.
24778
24779 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
24780
24781         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
24782
24783 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
24784
24785         * config.gcc: Add entries to supported PowerPC --with-cpu
24786         types.
24787
24788 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
24789
24790         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
24791         true for 64-bit mode only SSE registers in 32-bit mode.
24792
24793 2002-01-21  Kazu Hirata  <kazu@hxi.com>
24794
24795         * unwind-dw2.c: Fix formatting.
24796         * unwind-dw2-fde.c: Likewise.
24797         * unwind-dw2-fde.h: Likewise.
24798         * unwind-pe.h: Likewise.
24799         * varasm.c: Likewise.
24800         * varray.h: Likewise.
24801
24802 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
24803
24804         Remove workaround for register stack overwrite bug in mmix.
24805         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
24806         support for TARGET_REG_STACK_FILL_BUG.
24807         * config/mmix/mmix.h: Remove member has_call_without_parameters.
24808         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
24809         Delete.
24810         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
24811         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
24812         -mno-reg-stack-fill-bug-workaround.
24813         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
24814         machine member has_call_without_parameters.
24815         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
24816         -mreg-stack-fill-bug-workaround and
24817         -mno-reg-stack-fill-bug-workaround.
24818         (MMIX Options): Ditto.
24819
24820 2002-01-21  Kazu Hirata  <kazu@hxi.com>
24821
24822         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
24823         as appropriate.
24824         Remove redundant code.
24825
24826 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
24827
24828         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
24829         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
24830         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
24831         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
24832         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
24833         out target macro definitions and non-target-specific comments
24834         mostly taken from old versions of the manual.
24835
24836 2002-01-20  Kazu Hirata  <kazu@hxi.com>
24837
24838         * config/h8300/h8300.h: Fix comment formatting.
24839         * config/ia64/aix.h: Likewise.
24840         * config/ia64/ia64-protos.h: Likewise.
24841         * config/ia64/ia64.c: Likewise.
24842         * config/ia64/ia64.h: Likewise.
24843         * config/ia64/ia64intrin.h: Likewise.
24844         * config/ia64/linux.h: Likewise.
24845         * config/ia64/unwind-aix.c: Likewise.
24846         * config/ia64/unwind-ia64.c: Likewise.
24847
24848 2002-01-20  Kazu Hirata  <kazu@hxi.com>
24849
24850         * config/h8300/h8300.c: Revise comments about shift code.
24851
24852 2002-01-20  Kazu Hirata  <kazu@hxi.com>
24853
24854         * config/h8300/h8300.c (function_arg): Update a comment.
24855
24856 2002-01-20  Kazu Hirata  <kazu@hxi.com>
24857
24858         * config/h8300/h8300.md: Update the comments at the beginning
24859         of the file.
24860
24861 2002-01-20  Kazu Hirata  <kazu@hxi.com>
24862
24863         * config/i370/i370.c: Fix comment formatting.
24864         * config/i370/i370.h: Likewise.
24865         * config/i370/i370.md: Likewise.
24866         * config/i370/linux.h: Likewise.
24867
24868 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24869
24870         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
24871
24872         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
24873         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
24874         in incomplete case.
24875
24876 2002-01-20  Graham Stott  <grahams@redhat.com>
24877
24878         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
24879
24880 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24881
24882         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
24883
24884 2002-01-19  Tom Rix  <trix@redhat.com>
24885
24886         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
24887
24888 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
24889
24890         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
24891
24892         * function.c (assign_stack_local_1): Adjust x_frame_offset with
24893         STARTING_FRAME_PHASE.
24894         (STARTING_FRAME_PHASE): New.
24895         (instantiate_virtual_regs): Check saneness of
24896         STARTING_FRAME_PHASE.
24897
24898         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
24899
24900 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
24901
24902         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
24903
24904 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
24905
24906         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
24907         be used for bootstrapping GCC 3.0.
24908
24909 2002-01-18  Kazu Hirata  <kazu@hxi.com>
24910
24911         * config/h8300/h8300.md: Fix an insn length.
24912
24913 2002-01-18  Kazu Hirata  <kazu@hxi.com>
24914
24915         * bitmap.h: Fix comment formatting.
24916         * combine.c: Likewise.
24917         * cppfiles.c: Likewise.
24918         * c-pragma.h: Likewise.
24919         * c-typeck.c: Likewise.
24920         * df.c: Likewise.
24921         * dwarf2out.c: Likewise.
24922         * function.c: Likewise.
24923         * gcc.c: Likewise.
24924         * genattrtab.c: Likewise.
24925         * gthr-win32.h: Likewise.
24926         * haifa-sched.c: Likewise.
24927         * predict.c: Likewise.
24928         * rtlanal.c: Likewise.
24929         * rtl.h: Likewise.
24930         * unwind-dw2-fde.h: Likewise.
24931         * unwind-pe.h: Likewise.
24932         * vmsdbgout.c: Likewise.
24933
24934 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24935
24936         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
24937         if type_required and passed decl.
24938
24939 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
24940
24941         * config.gcc (cpu_type): Include altivec.h in powerpc
24942         extra_headers.
24943         Same for darwin.
24944
24945         * config/rs6000/altivec.h: New.
24946
24947 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
24948
24949         * doc/install.texi (*-ibm-aix*): Update assembler and exception
24950         handling information.
24951         * doc/trouble.texi (Interoperation): Add libstdc++ information
24952         for AIX.
24953         (Misunderstandings): Add template instantiation and static template
24954         member information for AIX.
24955
24956 2002-01-17  Jason Merrill  <jason@redhat.com>
24957
24958         * dbxout.c (dbxout_type): Support const and volatile.
24959
24960         * except.c (add_partial_entry): Remove backwards compatibility code.
24961         (end_protect_partials): Likewise.
24962
24963 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
24964
24965         * config/ia64/ia64.md (prologue_use): New.
24966         * config/ia64/ia64.c (ia64_expand_prologue): Use
24967         gen_prologue_use instead of gen_rtx_USE.
24968         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
24969         as CODE_FOR_pred_rel_mutex.
24970         (ia64_sched_reorder2): Likewise.
24971
24972 2002-01-16  Eric Christopher  <echristo@redhat.com>
24973
24974         * config/mips/r3900.h: Reformat.
24975         (SUBTARGET_CPP_SIZE_SPEC): Remove.
24976         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
24977         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
24978         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
24979         * config/mips/t-elf: Remove mips3 multilib.
24980
24981 2002-01-16  H.J. Lu <hjl@gnu.org>
24982
24983         * config/mips/linux.h: Include "mips/abi64.h".
24984
24985 2002-01-16  H.J. Lu <hjl@gnu.org>
24986
24987         * config/mips/t-linux: New.
24988
24989         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
24990
24991         * config/mips/linux.h: Don't include "gofast.h".
24992         (INIT_SUBTARGET_OPTABS): Removed.
24993
24994 2002-01-16  Kazu Hirata  <kazu@hxi.com>
24995
24996         * config/h8300/h8300-protos.h: Replace emit_a_shift with
24997         output_a_shift.
24998         * config/h8300/h8300.c: Likewise.
24999         * config/h8300/h8300.md: Likewise.
25000
25001 2002-01-16  Kazu Hirata  <kazu@hxi.com>
25002
25003         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
25004         spaces after an opcode name.
25005         (pushqi1_h8300hs): Likewise.
25006         (pushhi1_h8300hs): Likewise.
25007
25008 2002-01-16  Kazu Hirata  <kazu@hxi.com>
25009
25010         * doc/extend.texi: Replace "option" with "attribute"
25011         appropriately.
25012
25013 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
25014
25015         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
25016         (and:DI () (const_int -8)).
25017         (split_small_symbolic_mem_operand): Split
25018         (mem (and:DI () (const_int -8)).
25019
25020 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
25021
25022         PR target/5309:
25023         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
25024         same way as TYPE_IMUL.
25025         (ultrasparc_sched_reorder): Likewise.
25026         * config/sparc/sparc.md (type): Add comment to update
25027         ultrasparc_sched_reorder when making changes.
25028
25029 2002-01-16  Kazu Hirata  <kazu@hxi.com>
25030
25031         * doc/invoke.texi: Change the dump file name of block
25032         reordering pass from 28.bbro to 29.bbro.
25033         Mention -dk option.
25034
25035 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
25036
25037         * i386.md (minsf splitter): Fix pasto.
25038
25039 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
25040
25041         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
25042         to frame pointer initialisation instruction.
25043         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
25044         initialisation instruction.
25045         (soft_df_operand): Do not accept the IP register.
25046         (nonimmediate_soft_df_operand): Do not accept the IP register.
25047
25048 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
25049
25050         PR target/5357:
25051         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
25052         MASK_V8 being both set.
25053
25054 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
25055
25056         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
25057         insn for GOT register; add REG_MAYBE_DEAD notes instead.
25058         config/s390/s390.md (call, call_value): Add GOT register to
25059         CALL_INSN_FUNCTION_USAGE where needed.
25060         (call_exp, call_value_exp): New.
25061
25062 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
25063
25064         * config/arm/arm.c: General formatting tidy up.
25065
25066 2002-01-16  Graham Stott  <grahams@redhat.com>
25067
25068         * calls.c (try_to_integrate): Use "(size_t)" intermediate
25069         cast and when casting an integer literal to "rtx" pointer.
25070         (expand_call): Likewise.
25071         * flow.c (try_pre_increment): Likewise.
25072         (find_use_as_address): Likewise.
25073         * integrate.c (expand_iline_function): Likewise.
25074         * regmove.c (try_auto_increment): Likewise.
25075
25076 2002-01-16  Graham Stott  <grahams@redhat.com>
25077
25078         * sched-rgn.c (passed): Use sbitmap_free.
25079         (header): Likewise.
25080         (inner): Likewise.
25081         (in_queue): Likewise.
25082         (in_stack): Likewise.
25083
25084 2002-01-15  Eric Christopher  <echristo@redhat.com>
25085
25086         * flow.c (propagate_one_insn): Change to use fatal_insn.
25087
25088 2002-01-15  Kazu Hirata  <kazu@hxi.com>
25089
25090         * expmed.c (extract_fixed_bit_field): Remove unused code.
25091         * system.h: Poison SLOW_ZERO_EXTEND.
25092         * doc/tm.texi: Remove.
25093         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
25094         * config/arm/arm.h: Likewise.
25095         * config/avr/avr.h: Likewise.
25096         * config/clipper/clipper.h: Likewise.
25097         * config/convex/convex.h: Likewise.
25098         * config/d30v/d30v.h: Likewise.
25099         * config/dsp16xx/dsp16xx.h: Likewise.
25100         * config/elxsi/elxsi.h: Likewise.
25101         * config/fr30/fr30.h: Likewise.
25102         * config/h8300/h8300.h: Likewise.
25103         * config/i370/i370.h: Likewise.
25104         * config/i386/i386.h: Likewise.
25105         * config/m68k/m68k.h: Likewise.
25106         * config/mips/mips.h: Likewise.
25107         * config/ns32k/ns32k.h: Likewise.
25108         * config/pdp11/pdp11.h: Likewise.
25109         * config/pj/pj.h: Likewise.
25110         * config/s390/s390.h: Likewise.
25111         * config/sh/sh.h: Likewise.
25112         * config/stormy16/stormy16.h: Likewise.
25113         * config/v850/v850.h: Likewise.
25114         * config/vax/vax.h: Likewise.
25115         * config/we32k/we32k.h: Likewise.
25116
25117 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
25118
25119         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
25120         (altivec_lvsl): Change constraint to b.
25121         (altivec_lvsr): Same.
25122         (altivec_lvebx): Same.
25123         (altivec_lvehx): Same.
25124         (altivec_lvewx): Same.
25125         (altivec_lvxl): Same.
25126         (altivec_lvx): Same.
25127         (altivec_stvx): Add parallel.
25128         (altivec_stvxl): Same.
25129         (altivec_stvehx): Same.
25130         (altivec_stvebx): Same.
25131         (altivec_stvebx): Same.
25132
25133 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
25134
25135         * config.gcc: Change altivec.h to altivec-defs.h.
25136
25137         * config/rs6000/altivec.h: Delete.
25138
25139         * config/rs6000/altivec-defs.h: Add.
25140
25141 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25142
25143         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
25144         and UMOD modes.
25145
25146         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
25147         less than or equal to eight bytes.
25148
25149         * vax.md (andsi3): Remove constraints and change SET destination
25150         operand type to nonimmediate_operand.
25151         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
25152         when it is a CONST_INT.
25153
25154 2002-01-15  Jason Merrill  <jason@redhat.com>
25155
25156         * c-common.def (FILE_STMT): New code.
25157         * c-common.c (statement_code_p): It's a statement.
25158         * c-common.h (stmt_tree_s): Add x_last_filename.
25159         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
25160         (last_expr_filename): New macro.
25161         * c-semantics.c (begin_stmt_tree): Initialize it.
25162         (add_stmt): If the filename changed, also insert a
25163         FILE_STMT.
25164         (expand_stmt): Handle seeing one.
25165
25166 2002-01-15  Eric Christopher  <echristo@redhat.com>
25167
25168         * flow.c (propagate_one_insn): Add error message and print out
25169         insn for debugging.
25170
25171 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
25172
25173         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
25174         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
25175         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
25176         TRAMPOLINE_ALIGNMENT.
25177         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
25178         to be in bits.
25179         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
25180         PCC_BITFIELD_TYPE_MATTERS.
25181         * config/interix.h (STDC_VALUE): Remove.  Use
25182         STDC_0_IN_SYSTEM_HEADERS.
25183         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
25184         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
25185         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
25186
25187 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
25188
25189         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
25190         not work on this platform currently.
25191
25192 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
25193
25194         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
25195         readonly_warning in _().
25196
25197 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
25198
25199         * gcc.c (delete_if_ordinary): Backout previous change.
25200
25201 2002-01-15  Kazu Hirata  <kazu@hxi.com>
25202
25203         * config/h8300/h8300.c (print_operand): Remove support for
25204         unused operand characters.
25205
25206         * read-rtl.c: Fix formatting.
25207         * real.c: Likewise.
25208         * recog.c: Likewise.
25209         * regclass.c: Likewise.
25210         * regmove.c: Likewise.
25211         * reg-stack.c: Likewise.
25212         * reload1.c: Likewise.
25213         * rtlanal.c: Likewise.
25214
25215 2002-01-15  Kazu Hirata  <kazu@hxi.com>
25216
25217         * config/i386/i386.c: Fix formatting.
25218
25219 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
25220
25221         * c-typeck.c (process_init_element): Don't save_expr
25222         COMPOUND_LITERAL_EXPR if just its initializer will be used.
25223
25224 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
25225
25226         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
25227         emit optional traceback table if optimize_size or TARGET_ELF.
25228         * config/rs6000/rs6000.md (prefetch): New.
25229
25230 2002-01-15  Andreas Jaeger  <aj@suse.de>
25231
25232         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
25233
25234 2002-01-15  Kazu Hirata  <kazu@hxi.com>
25235
25236         * mips-tfile.c: Fix formatting.
25237
25238 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
25239
25240         * unroll.c (final_reg_note_copy): Fix previous commit.
25241
25242 2002-01-14  Kazu Hirata  <kazu@hxi.com>
25243
25244         * config/h8300/h8300-protos.h: Remove the prototype for
25245         eq_operator.
25246         * config/h8300/h8300.c (eq_operator): Remove.
25247
25248 2002-01-14  Richard Henderson  <rth@redhat.com>
25249
25250         * config/i386/i386.md (prefetch): Tidy.
25251         (prefetch_3dnow): Fix locality operand.
25252
25253 2002-01-14  Richard Henderson  <rth@redhat.com>
25254
25255         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
25256         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
25257
25258 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
25259
25260         * reload1.c (reload_combine): Pass reg_sum replacement through
25261         copy_rtx in loop performing multiple changes.
25262
25263 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
25264
25265         * except.c (remove_unreachable_regions): New.
25266         (free_eh_status): Clear exception_handler_labels.
25267         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
25268         (find_exception_handler_labels): Don't add the same label more than
25269         once.
25270         (remove_exception_handler_label): Don't die if
25271         find_exception_handler_labels hasn't been called for the current
25272         function yet.
25273
25274 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
25275
25276         * toplev.c (rest_of_compilation): Rebuild jump labels after
25277         gcse.
25278
25279 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
25280
25281         * doc/extend.texi: Move documentation of X86 built-in functions
25282         here.
25283         * doc/invoke.texi: From here.
25284         * doc/sourcebuild.texi: Document location of documentation for
25285         machine built-in functions.
25286
25287 2002-01-13  Christopher Faylor  <cgf@redhat.com>
25288
25289         * cppfiles.c (TEST_THRESHOLD): New macro.
25290         (SHOULD_MMAP): Ditto.
25291         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
25292         be used.
25293
25294 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
25295
25296         * unroll.c (final_reg_note_copy): Properly handle
25297         REG_LABEL
25298         (unroll_loops): Fix LOOP_CONDITION heuristics.
25299
25300 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
25301
25302         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
25303         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
25304
25305 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
25306
25307         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
25308         threaded loop.
25309
25310 2002-01-14  Tom Rix  <trix@redhat.com>
25311
25312         * config/rs6000/rs6000.md: Fix typo with sradi.
25313
25314 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
25315
25316         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
25317         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
25318         (clrstrdi, clrstrsi): Adapt callers.
25319
25320         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
25321
25322         (movti splitter): Never use register 0 as base register.
25323
25324 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
25325
25326         * combine.c (simplify_shift_const): Always generate new rtx
25327         for shift expression instead of reusing given expression.
25328
25329 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25330
25331         * config/alpha/alpha.c (alpha_expand_mov): Don't call
25332         alpha_legitimize_address unless mode is Pmode.
25333
25334 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
25335
25336         * doc/md.texi (Modifiers): Document the '*' constraint for the
25337         user.
25338
25339         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
25340         * doc/extend.texi (Function Attributes): 'interrupt' is valid
25341         for xstormy16 too.
25342
25343 2002-01-13  Richard Henderson  <rth@redhat.com>
25344
25345         * reload.c (find_reloads): Use a hard reg destination as reload reg
25346         for an input reload of the source.
25347
25348 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
25349
25350         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
25351         more generic.
25352
25353 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
25354
25355         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
25356         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
25357
25358         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
25359
25360 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25361
25362         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
25363
25364 2002-01-12  Tom Rix  <trix@redhat.com>
25365
25366         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
25367         TARGET_POWERPC64.
25368
25369 2002-01-12  Richard Henderson  <rth@redhat.com>
25370
25371         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
25372
25373         * doc/invoke.texi: Update Alpha options.
25374
25375         * doc/invoke.texi: Update i386 built-in function lists.
25376
25377 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
25378
25379         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
25380         referencing outside.
25381
25382 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25383
25384         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
25385         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
25386         offsets, and change line folding.
25387         * optabs.c (expand_binop): Remove warnings.
25388         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
25389
25390 2002-01-12  Graham Stott <grahams@redhat.com>
25391
25392         * attribs.c (handle_deprecated_attribute): constify WHAT.
25393         * diagnostic.c (warn_deprecated_use): Add braces, fixes
25394         dangling else warning and constify WHAT.
25395         * except.h (struct function, struct inline_remap): Move
25396         struct tag forward defs before all prototypes.
25397         (duplicate_eh_regions): Whitespace.
25398
25399 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
25400
25401         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
25402         MODE_BASE_REG_CLASS.
25403         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
25404
25405 2002-01-12  Richard Henderson  <rth@redhat.com>
25406
25407         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
25408         (ix86_expand_vector_move): New.
25409         (bdesc_2arg): Remove andps, andnps, orps, xorps.
25410         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
25411         Remove old prefetch builtins.  Special case the logicals removed above.
25412         (ix86_expand_builtin): Likewise.
25413         (safe_vector_operand): Use V4SFmode, not TImode.
25414         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
25415         (ix86_expand_timode_binop_builtin): New.
25416         * config/i386/i386-protos.h: Update.
25417         * config/i386/i386.h (enum ix86_builtins): Update.
25418         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
25419         Use ix86_expand_vector_move in vector move expanders.
25420         (movti_internal, movti_rex64): Add xorps alternative.
25421         (sse_clrv4sf): Rename and adjust from sse_clrti.
25422         (prefetch): Don't work so hard.
25423         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
25424         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
25425         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
25426
25427 2002-01-11  Richard Henderson  <rth@redhat.com>
25428
25429         * config/i386/mmintrin.h: New file.
25430         * config/i386/xmmintrin.h: New file.
25431         * config.gcc (i?86-*-*): Add extra_headers.
25432         * simplify-rtx.c (simplify_unary_operation): Handle saturating
25433         truncation codes.
25434         (simplify_binary_operation): Handle saturating arithmetic codes.
25435         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
25436         not the lowpart subreg.
25437         (ix86_expand_builtin): Return a TImode dummy register instead of 0
25438         on error.
25439         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
25440
25441 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25442
25443         * conflict.c (conflict_graph_compute): Free regsets when finished.
25444         * ssa.c (compute_coalesced_reg_partition): Likewise.
25445
25446 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
25447
25448         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
25449         every where we allocate a register.
25450
25451 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25452
25453         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
25454         * lcm.c (compute_earliest, compute_farthest): Likewise.
25455
25456 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
25457
25458         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
25459
25460 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
25461
25462         * doc/rtl.texi (Insns): Fix 2 typos.
25463
25464 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
25465
25466         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
25467         options.  Use @table @gcctabopt for MMIX options.  Add index
25468         entries for MMIX options.  Start new paragraph with first
25469         heading of the machine-dependent options.
25470
25471 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
25472
25473         PR other/5299
25474         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
25475         * combine.c (force_to_mode): Same.
25476         * reload1.c (clear_reload_reg_in_use): Same.
25477
25478 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
25479
25480         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
25481         and 'subtargets'.
25482
25483 2002-01-11  Andreas Jaeger  <aj@suse.de>,
25484             Brad Lucier <lucier@math.purdue.edu>
25485
25486         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
25487         mcpu.
25488
25489 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
25490
25491         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
25492         Protect with IN_LIBGCC.
25493         (LINK_EH_SPEC): Add required trailing space.
25494
25495 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
25496
25497         * c-tree.h: Move function declarations so that they are listed
25498         under the filename which contains them.
25499         (check_identifier, finish_decl_top_level,
25500         lookup_name_current_level_global, shadow_record_fields): Remove.
25501
25502 2002-01-11  Andreas Jaeger  <aj@suse.de>
25503
25504         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
25505         march.
25506
25507 2002-01-10  Richard Henderson  <rth@redhat.com>
25508
25509         * config/alpha/alpha.c (print_operand): Add 'J'.
25510         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
25511         new operand with the sequence number for the lituse.  When splitting
25512         the insns, use gen_movdi_er_high_g and generate a sequence number.
25513         (gen_movdi_er_high_g): Print the sequence number if non-zero.
25514
25515 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
25516
25517         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
25518         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
25519         stvxl.
25520         (altivec_expand_builtin): Same.
25521         (altivec_expand_stv_builtin): New.
25522
25523         * config/rs6000/rs6000.h (rs6000_builtins): Same.
25524
25525         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
25526         ("altivec_lvehx"): New.
25527         ("altivec_lvewx"): New.
25528         ("altivec_lvxl"): New.
25529         ("altivec_lvx"): New.
25530         ("altivec_stvx"): New.
25531         ("altivec_stvebx"): New.
25532         ("altivec_stvehx"): New.
25533         ("altivec_stvewx"): New.
25534         ("altivec_stvxl"): New.
25535
25536 2002-01-10  Richard Henderson  <rth@redhat.com>
25537
25538         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
25539         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
25540         care not to delete instructions twice.
25541
25542 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
25543
25544         * toplev.c: Don't declare environ (it's not used anywhere).
25545         * configure.in: Don't check for declaration of environ.
25546         * config/i386/xm-mingw32.h: Don't #define environ.
25547         * config.in, configure: Regenerate.
25548
25549 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
25550
25551         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
25552         * configure: Regenerate.
25553
25554         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
25555         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
25556         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
25557         alpha/xm-vms.h.
25558         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
25559         LIMITS_H_TEST here, not in m68k/x-next.
25560         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
25561         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
25562
25563         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
25564         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
25565         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
25566
25567         * config/i386/x-djgpp: Renamed i386/t-djgpp.
25568         * config/m88k/x-dolph: Renamed m88k/t-dolph.
25569         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
25570         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
25571         replacement of quadlib.asm with quadlib.c.
25572
25573         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
25574         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
25575         config/rs6000/xm-beos.h: Delete file.
25576
25577         * config.gcc: Update to match above changes.
25578
25579 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25580
25581         * config/h8300/h8300.h: Fix comment typos.
25582         * config/h8300/h8300.md: Likewise.
25583         * config/h8300/lib1funcs.asm: Likewise.
25584
25585 2002-01-10  Dale Johannesen  <dalej@apple.com>
25586
25587         PR optimization/5269
25588         * unroll.c (precondition_loop_p): Make *increment be the correct
25589         sign when n_iterations known, to avoid confusing caller.
25590
25591 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25592
25593         * doc/extend.texi (deprecated): Fix a typo.
25594
25595 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
25596
25597         * basic-block.h (update_br_prob_note): Declare.
25598         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
25599         (try_forward_edges): Care negative frequencies and update note.
25600         (outgoing_edges_match): Tweek conditional merging heuristics.
25601         (try_crossjump_to_edge): use update_br_prob_note.
25602         * cfglayout.c (fixup_reorder_chain): Likewise.
25603         * cfrtl.c (update_br_prob_note): New.
25604         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
25605
25606         * i386.c (ix86_decompose_address): Return -1 if address contains
25607         shift.
25608         (legitimate_address_p): Require ix86_decompose_address to return 1.
25609
25610         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
25611         (cprop_insn): Likewise.
25612
25613 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25614
25615         * toplev.c: Fix formatting.
25616         * tree.c: Likewise.
25617         * tree-dump.c: Likewise.
25618         * unroll.c: Likewise.
25619         * unwind-dw2.c: Likewise.
25620         * unwind-dw2-fde.c: Likewise.
25621         * unwind-dw2-fde-glibc.c: Likewise.
25622         * unwind-sjlj.c: Likewise.
25623
25624 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
25625
25626         * doc/invoke.texi: Document PDP-11 options.
25627
25628 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25629
25630         * config/h8300/h8300.h: Fix formatting.
25631
25632 2002-01-10  Ira Ruben   <ira@apple.com>
25633
25634         Add __attribute__ ((deprecated)).
25635         * extend.texi: Document __attribute__ ((deprecated)).
25636         * invoke.texi: Document -Wno-deprecated-declarations.
25637         * testsuite/g++.dg/other/deprecated.C: New C++ test.
25638         * testsuite/gcc.dg/deprecated.c: New C test.
25639         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
25640         (c_common_attribute_table): Add "deprecated" entry.
25641         (handle_deprecated_attribute): New function.
25642         * c-decl.c (deprecated_states): New enum.
25643         deprecated_state: State of "deprecated" handling.
25644         (start_decl): Set deprecated_state based on attributes.
25645         (grokdeclarator): Test for deprecated uses, propagate attribute.
25646         * c-typeck.c (build_component_ref): Test for deprecated fields.
25647         (build_external_ref): Test for deprecated primaries.
25648         * diagnostic.c (warn_deprecated_use) New function to issue
25649         warnings about __attribute__ ((depricated)) references.
25650         * flags.h (warn_deprecated_decl): Extern declared for
25651         -W[no-]deprecated-declarations option.
25652         * print-tree.c (print_node): Show deprecated flag status.
25653         * toplev.c (warn_deprecated_decl): Defined.
25654         (W_options): Added "deprecated-declaration".
25655         * toplev.h (warn_deprecated_use): Extern declared.
25656         * tree.h (struct tree_common): Define deprecated_flag.
25657         (TREE_DEPRECATED): New macro to access flag.
25658         * cp/call.c (build_call): Test for deprecated calls.
25659         * cp/class.c (add_implicitly_declared_members): Set global
25660         flag to tell grokdeclarator to not issue deprecated warnings.
25661         * cp/cp-tree.h: Add extern for adding_implicit_members.
25662         * cp/decl.c (deprecated_states): New enum.
25663         (start_decl): Set deprecated_state based on attributes.
25664         (grokdeclarator): Test for deprecated uses, propagate attribute.
25665         * cp/lex.c (do_identifier): Test for deprecated primaries.
25666         * cp/typeck.c (build_component_ref): Test for deprecated fields.
25667
25668 2002-01-10  Ira Ruben   <ira@apple.com>
25669
25670         Fix to assign attributes to inline member functions.
25671         * cp/decl.c (start_method): Handle attrlist.
25672
25673 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25674
25675         * combine.c (expand_field_assignment): Use subreg_lsb().
25676
25677 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
25678
25679         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
25680         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
25681         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
25682         Recurse for any operand of AND as long as constant is non-zero.
25683
25684 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25685
25686         * config/h8300/h8300.md: Remove constraints from expanders.
25687
25688 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25689
25690         * varasm.c: Fix formatting.
25691         * varray.c: Likewise.
25692         * vmsdbgout.c: Likewise.
25693         * xcoffout.c: Likewise.
25694
25695 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
25696
25697         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
25698         update edge probabilities to match.
25699
25700 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
25701
25702         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
25703         dependencies.
25704         * doc/languages.texi, doc/sourcebuild.texi: New files.
25705         * doc/configfiles.texi: Make a subsubsection.  Update.
25706         * doc/configterms.texi: Add @node.  Remove warning that this isn't
25707         instructions for building GCC.
25708         * doc/makefile.texi: Make a subsection.
25709         * doc/gccint.texi: Update.
25710
25711 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
25712
25713         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
25714
25715 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
25716
25717         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
25718
25719 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
25720
25721         * optabs.c (expand_fix): Look for wider integer modes first.
25722
25723         * i386.md (mov?f): Avoid the fake const double trick for medium
25724         memory model.
25725         (min?f*/max?f*): Prohibit memory operands for i387 variant.
25726         (fop_df_4): Disable for SSE compilation.
25727
25728 2002-01-10  Graham Stott  <grahams@redhat.com>
25729
25730         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
25731         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
25732
25733 2002-01-10  Richard Henderson  <rth@redhat.com>
25734
25735         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
25736
25737 2002-01-10  Richard Henderson  <rth@redhat.com>
25738
25739         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
25740         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
25741
25742 2002-01-10  Kazu Hirata  <kazu@hxi.com>
25743
25744         * combine.c (can_combine_p): Fix a comment typo.
25745
25746 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
25747
25748         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
25749         empty list correctly.  Change loop index $t to $f for
25750         consistency with rest of Makefile.
25751
25752 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
25753
25754         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
25755         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
25756
25757         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
25758         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
25759         (altivec_init_builtins): Same.
25760         (altivec_expand_unop_builtin): Return NULL_RTX on error.
25761         (altivec_expand_binop_builtin): Same.
25762         (altivec_expand_ternop_builtin): Same.
25763         (bdesc_dst): New.
25764
25765         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
25766         ("altivec_vctuxs"): Fix typo.
25767         ("altivec_vnmsubfp"): Same.
25768         ("altivec_dssall"): New.
25769         ("altivec_mfvscr"): New.
25770         ("altivec_dss"): New.
25771         ("altivec_lvsl"): New.
25772         ("altivec_lvsr"): New.
25773         ("altivec_dstt"): New.
25774         ("altivec_dstst"): New.
25775         ("altivec_dststt"): New.
25776         ("altivec_dst"): New.
25777
25778         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
25779         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
25780
25781 2002-01-09  Richard Henderson  <rth@redhat.com>
25782
25783         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
25784
25785 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
25786
25787         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
25788         function.
25789         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
25790         prototype.
25791         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
25792
25793 2002-01-09  Kazu Hirata  <kazu@hxi.com>
25794
25795         * read-rtl.c: Fix formatting.
25796         * real.c: Likewise.
25797         * regclass.c: Likewise.
25798         * regrename.c: Likewise.
25799         * reg-stack.c: Likewise.
25800         * reload1.c: Likewise.
25801         * reload.c: Likewise.
25802         * rtl.c: Likewise.
25803
25804 2002-01-09  Kazu Hirata  <kazu@hxi.com>
25805
25806         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
25807         to extract items in the expr_list chain.
25808
25809 2002-01-09  Richard Henderson  <rth@redhat.com>
25810
25811         * config/vax/vax.c (vax_rtx_cost): Never abort.
25812
25813         * config/vax/vax.h (REAL_ARITHMETIC): Define.
25814
25815 2002-01-09  Jan Hubicka  <jh@suse.cz>
25816
25817         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
25818
25819 2002-01-09  Richard Henderson  <rth@redhat.com>
25820
25821         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
25822         Unify code from various alternatives.
25823
25824 2002-01-09  Richard Henderson  <rth@redhat.com>
25825
25826         * regrename.c (copy_value): Ignore the copy if the source register
25827         is present in the value chain with a narrower mode.
25828
25829 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
25830
25831         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
25832         for the c4x target. Also improve layout.
25833
25834 2002-01-09  Richard Henderson  <rth@redhat.com>
25835
25836         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
25837         * config/m32r/m32r.md (and ior xor splitters): Swap operands
25838         to match insn patterns.
25839
25840 2002-01-09  Richard Henderson  <rth@redhat.com>
25841
25842         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
25843         (copyprop_hardreg_forward_1): Likewise.
25844
25845 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
25846
25847         * pa.md (decrement_and_branch_until_zero): Change predicate for
25848         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
25849
25850 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
25851
25852         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
25853         gets undefined. For Darwin.
25854
25855 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
25856
25857         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
25858
25859 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
25860
25861         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
25862
25863 2002-01-08  Richard Henderson  <rth@redhat.com>
25864
25865         * regrename.c (copy_value): Ignore overlapping copies.
25866
25867 2002-01-08  Richard Henderson  <rth@redhat.com>
25868
25869         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
25870         as needed to avoid shared structure.
25871
25872 2002-01-08  Kazu Hirata  <kazu@hxi.com>
25873
25874         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
25875         H8/300H and H8/S.
25876
25877 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
25878
25879         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
25880         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
25881         documentation of obsolete macros.
25882         * system.h: Poison these macros.
25883         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
25884         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
25885         config/c4x/c4x.h, config/clipper/clipper.h,
25886         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
25887         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
25888         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
25889         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
25890         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
25891         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
25892         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
25893         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
25894         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
25895         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
25896         config/sparc/sparc.h, config/stormy16/stormy16.h,
25897         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
25898         definitions and commented out definitions of obsolete macros.
25899         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
25900         of MAX_INT_TYPE_SIZE.
25901
25902 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
25903
25904         * config/s390/s390.c (s390_preferred_reload_class): Never
25905         return ADDR_REGS if it isn't a subset of the given class.
25906         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
25907         FP_REGS, but all superclasses as well.
25908
25909         * config/s390/s390.c (s390_function_profiler): Fix thinko.
25910
25911         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
25912         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
25913         must not be a const_int.
25914
25915 2002-01-08  Richard Henderson  <rth@redhat.com>
25916
25917         * Makefile.in (toplev.o): Depend on options.h.
25918         (gcc.o): Depend on specs.h.
25919
25920 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
25921
25922         * expr.c (store_expr): Convert VOIDmode constants back to target's
25923         mode.
25924
25925 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
25926
25927         * doc/invoke.texi: Markup gcc as @command.  Refer to
25928         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
25929         of http://gcc.gnu.org/thanks.html.
25930
25931 2002-01-08  Dale Johannesen  <dalej@apple.com>
25932
25933         * config/rs6000/rs6000.md: Add missing int register
25934         target case to movdf_low.
25935
25936 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
25937
25938         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
25939         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
25940         (cppinit.o): Depend on except.h.
25941         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
25942         s-specs): New rules.
25943
25944         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
25945         Don't create specs.h/options.h/gencheck.h here.  Remove
25946         unnecessary variable settings from last argument of AC_OUTPUT.
25947         * config.in, configure: Regenerate.
25948         * intl.c: Hardcode package name as "gcc".
25949
25950         * cppinit.c: Include except.h.
25951         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
25952         appropriate.
25953         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
25954         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
25955         (!)USING_SJLJ_EXCEPTIONS.
25956         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
25957
25958 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
25959
25960         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
25961         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
25962         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
25963         documentation of obsolete macros.
25964         * system.h: Poison these macros.
25965         * config/d30v/d30v.h, config/ns32k/encore.h,
25966         config/stormy16/stormy16.h: Remove definitions and commented out
25967         definitions of obsolete macros.
25968
25969 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
25970
25971         * objc/objc-act.c (handle_class_ref): Mark the declaration of
25972         %sobjc_class_ref_%s as used - to prevent unwanted compiler
25973         warnings.
25974
25975 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
25976
25977         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
25978         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
25979         to insn adjusting stack/frame pointer.
25980         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
25981         accept operands that cause the insn to be non-splittable.
25982
25983 2002-01-08  Graham Stott  <grahams@redhat.com>
25984
25985         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
25986         (C_TYPE_FIELDS_VOLATILE): Likewise.
25987         (C_TYPE_BEING_DEFINED): Likewise.
25988         (C_IS_RESERVED_WORD): Likewise.
25989         (C_TYPE_VARIABLE_SIZE): Likewise.
25990         (C_DECL_VARIABLE_SIZE): Likewise.
25991         (C_MISSING_PROTOTYPE_WARNED): Likewise.
25992         (C_SET_EXP_ORIGINAL_CODE): Likewise.
25993         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
25994         parenthesis.
25995         (C_DECL_ANTICIPATED): Likewise.
25996         (c_build_type_variant): Add parenthesis.
25997
25998 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
25999
26000         * gcc.c (option_map): Remove --version.
26001         (process_command): Handle -fversion following the GNU Coding
26002         Standards.  Partially addresses PR other/704.
26003
26004 2002-01-08  Graham Stott  <grahams@redhat.com>
26005
26006         * combine.c (combine_instructions): Fix typo.
26007
26008 2002-01-08  Graham Stott  <grahams@redhat.com>
26009
26010         * debug.h: Use "tree" and "rtx" throughout.
26011
26012         * debug.c: Likewise.
26013
26014 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
26015
26016         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
26017         constant pool, use the pool's version of the symbol instead.
26018
26019 2002-01-07  Richard Henderson  <rth@redhat.com>
26020
26021         * regrename.c (find_oldest_value_reg): Ignore the value chain if
26022         the original register was copied in a mode with a fewer number of
26023         hard registers than the desired mode.
26024         (copyprop_hardreg_forward_1): Likewise.
26025         (debug_value_data): Fix loop test.
26026         * toplev.c (parse_options_and_default_flags): Reenable
26027         -fcprop-registers at -O1.
26028
26029 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
26030
26031         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
26032         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
26033
26034         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
26035         predicates.
26036
26037         * config/rs6000/rs6000.md: Add altivec predicate patterns.
26038
26039 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26040
26041         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
26042         (pa_output_function_prologue): Output local label at the beginning of
26043         the prologue when profiling.
26044         (hppa_profile_hook): Use the local label rather than the function label.
26045         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
26046
26047 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
26048
26049         * config/rs6000/rs6000.c (print_operand): Remove extra space.
26050         (altivec_expand_unop_builtin): Fix thinko.
26051         (altivec_expand_binop_builtin): Same.
26052         (altivec_expand_ternop_builtin): Same.
26053         (altivec_expand_builtin): Same.
26054
26055 2002-01-07  Richard Henderson  <rth@redhat.com>
26056
26057         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
26058
26059 2002-01-07  Jason Merrill  <jason@redhat.com>
26060
26061         * unwind-dw2.c (execute_cfa_program): Use < again.
26062
26063 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
26064
26065         * predict.c (combine_predictions_for_insn): Avoid division by zero.
26066
26067 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
26068
26069         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
26070         Don't allow -1 - x -> ~x simplifications in the first pass.
26071
26072 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
26073
26074         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
26075         arguments.
26076         (altivec_expand_binop_builtin): Same.
26077         (altivec_expand_unop_builtin): Same.
26078         (print_operand): Fix typo.
26079         (bdesc_1arg): Add vupk* variants.
26080
26081         * rs6000.h (rs6000_builtins): Add vupk* enums.
26082
26083         * rs6000.md: Add altivec_vupk* variants.
26084
26085 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
26086
26087         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
26088         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
26089         and last update dates.
26090
26091 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
26092
26093         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
26094
26095 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
26096
26097         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
26098         * config/avr/avr.h (CPP_SPEC): Likewise.
26099         (LINK_SPEC): Likewise.
26100         (CRT_BINUTILS_SPECS): Likewise.
26101         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
26102         * doc/invoke.texi (AVR Options): Document them.
26103
26104 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
26105
26106         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
26107         LABEL_NUSES.
26108
26109 2002-01-07  Graham Stott  <grahams@redhat.com>
26110
26111         * config/i386/i386.h: Update copyright date.
26112         (HALF_PIC_PTR): Add parenthesis.
26113         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
26114         (CONSTANT_ALIGNMENT): Add parenthesis.
26115         (DATA_ALIGNMENT): Likewise.
26116         (LOCAL_ALIGNMENT): Likewise.
26117         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
26118         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
26119         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
26120         (HARD_REGNO_NREGS): Add paranethesis.
26121         (VALID_SSE_REG_MODE): Whitespace.
26122         (VALID_MMX_REG_MODE): Whitespace.
26123         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
26124         (ix86_hard_regno_mode_ok): Add parenthesis.
26125         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
26126         (RETURN_IN_MEMORY): Whitespace.
26127         (N_REG_CLASSES): Add parenthesis.
26128         (INTEGER_CLASS_P): Add parenthesis and wrap.
26129         (FLOAT_CLASS_P): Likewise.
26130         (SSE_CLASS_P): Likewise.
26131         (MMX_CLASS_P): Likewise.
26132         (MAYBE_INTEGER_CLASS_P): Likewise.
26133         (MAYBE_FLOAT_CLASS_P): Likewise.
26134         (MAYBE_SSE_CLASS_P): Likewise.
26135         (MAYBE_MMX_CLASS_P): Likewise.
26136         (Q_CLASS_P): Likewise.
26137         (GENERAL_REGNO_P): Uppercase macro parameter.
26138         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
26139         (FP_REGNO_P): Likewise.
26140         (ANY_FP_REGNO_P): Uppercase macro parameter.
26141         (SSE_REGNO_P): Likewise.
26142         (SSE_REGNO): Likewise.
26143         (SSE_REG_P): Likewise.
26144         (SSE_FLOAT_MODE_P): Likewise.
26145         (MMX_REGNO_P): Likewise.
26146         (MMX_REG_P):Likewise.
26147         (STACK_REG_P): Likewise.
26148         (NON_STACK_REG_P): Likewise.
26149         (STACK_TOP_P): Likewise.
26150         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
26151         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
26152         (SECONDARY_MEMORY_NEEDED): Likewise.
26153         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
26154         (MD_ASM_CLOBBERS): Whitespace and wrap.
26155         (MUST_PASS_IN_STACK): Whitespace and wrap.
26156         (RETURN_POPS_ARGS): Add parenthesis.
26157         (INIT_CUMULATIVE_ARGS): Likewise.
26158         (FUNCTION_ARG): Likewise.
26159         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
26160         (SETUP_INCOMING_VARARGS): Likewise.
26161         (BUILD_VA_LIST_TYPE):  Add parenthesis.
26162         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
26163         parenthsis.
26164         (EXPAND_BUILTIN_VA_ARG): Likewise.
26165         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
26166         (INITIALIZE_TRAMPOLINE): Add parenthesis.
26167         (INITIAL_ELIMINATION_OFFSET): Likewise.
26168         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
26169         (REGNO_OK_FOR_BASE_P): Likewise.
26170         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
26171         (REGNO_OK_FOR_DIREG_P): Likewise.
26172         (REG_OK_FOR_INDEX_P): Whitespace.
26173         (REG_OK_FOR_BASE_P): Whitespace.
26174         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
26175         parenthesis.
26176         (FIND_BASE_TERM): Fix typo.
26177         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
26178         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
26179         (SYMBOLIC_CONST; Whitespace.
26180         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
26181         (ENCODE_SECTION_INFO): Whitespace.
26182         (FINALIZE_PIC): Remove do { ... } while (0).
26183         (PROMOTE_MODE): Wrap in do { ... } while (0).
26184         (CONST_COSTS): Whitespace.
26185         (RTX_COSTS): Add paramethesis, whitespace and wrap.
26186         (REGISTER_MOVE_COST): Add parenthesis.
26187         (MEMORY_MOVE_COST): Likewise.
26188         (EXTRA_CC_MODES): Whitespace.
26189         (SELECT_CC_MODE): Add parenthesis and whitespace.
26190         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
26191         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
26192         (ASM_OUTPUT_LABEL): Add paramethesis.
26193         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
26194         (ASM_OUTPUT_REG_POP): Likewise.
26195         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
26196         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
26197
26198         * config/i386/i386.c: Update copyright.
26199         (CHECK_STACK_LIMIT): Add parenthesis.
26200         (AT_BP): Uppercase macro parameter.
26201         (x86_64_int_parameter_registers): Constify.
26202         (x86_64_int_return_registers): Likewise.
26203         (ix86_compare_op0): Use rtx.
26204         (construct_container): Constify INTREG parameter.
26205         (function_arg): Use rtx.
26206
26207         * diagnostic.h: Update copyright date.
26208         (output_buffer_state): Add parenthesis.
26209         (output_buffer_format_args): Likewise.
26210
26211         * combine.c (combine_instructions): Replace XEXP (links, 0)
26212         with link.
26213
26214 2002-01-06  H.J. Lu <hjl@gnu.org>
26215
26216         * cfgcleanup.c (thread_jump): Fix 2 typos.
26217
26218 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
26219
26220         * config.gcc: Add support for --enable-altivec.
26221
26222 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26223
26224         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
26225
26226 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
26227
26228         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
26229         __objc_class_name_*.
26230
26231 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26232
26233         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
26234
26235 2002-01-06  Richard Henderson  <rth@redhat.com>
26236
26237         * reorg.c (emit_delay_sequence): Remove death notes, not merely
26238         nop them out.  Increment label reference count for REG_LABEL.
26239         (fill_slots_from_thread): Frob label reference count around
26240         delete_related_insns.
26241
26242 2002-01-05  Richard Henderson  <rth@redhat.com>
26243
26244         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
26245         jump threading.
26246
26247 2002-01-05  Richard Henderson  <rth@redhat.com>
26248
26249         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
26250         * integrate.c (output_inline_function): Likewise.
26251         * toplev.c (rest_of_compilation): Do it here instead.  Move call
26252         to remove_unnecessary_notes after emitting abstract instance.
26253         Force an emitted nested function to have its parent emited as well.
26254         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
26255         for null.
26256         (rtl_for_decl_location): Do not look at reload data structures
26257         before reload has run.
26258
26259 2002-01-05  Kazu Hirata  <kazu@hxi.com>
26260
26261         * cse.c: Fix formatting.
26262         * dwarf2asm.c: Likewise.
26263         * dwarf2out.c: Likewise.
26264         * explow.c: Likewise.
26265         * expmed.c: Likewise.
26266         * function.c: Likewise.
26267         * gcov.c: Likewise.
26268         * gencheck.c: Likewise.
26269         * genrecog.c: Likewise.
26270         * ggc-common.c: Likewise.
26271         * ggc-page.c: Likewise.
26272         * global.c: Likewise.
26273
26274 2002-01-05  Kazu Hirata  <kazu@hxi.com>
26275
26276         * combine.c: Fix formatting.
26277
26278 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
26279
26280         PR middle-end/1557
26281         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
26282
26283 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
26284
26285         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
26286         as 1 for __powerpc64__ as well.
26287
26288         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
26289
26290         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
26291         return it.
26292
26293 2002-01-05  Daniel Berlin  <dan@dberlin.org>
26294
26295         * lcm.c: Revert change, due to performance regression it causes on
26296         SPEC because it's slightly more conservative (sigh, I hate
26297         edge-based LCM).
26298
26299 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
26300
26301         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
26302
26303 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
26304
26305         * doc/cppinternals.texi: Update.
26306
26307 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
26308
26309         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
26310         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
26311         negatives.
26312         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
26313         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
26314         kludge for pre-october-14th mmix versions to handle new-found bug
26315         with PUSHJ/PUSHGO and the register stack.
26316         * config/mmix/mmix.h (struct machine_function): Rename member
26317         has_call_value_without_parameters to has_call_without_parameters.
26318         All referers changed.
26319         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
26320         TARGET_MASK_BRANCH_PREDICT): New macros.
26321         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
26322         -mno-reg-stack-fill-bug-workaround.
26323         * config/mmix/mmix.md ("call"): Set struct machine member
26324         has_call_without_parameters.
26325
26326 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
26327
26328         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
26329
26330 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
26331
26332         * cfgcleanup.c: Include tm_p.h
26333         (mark_effect): Fix handling of hard register; fix handling of SET
26334
26335 2002-01-04  Kazu Hirata  <kazu@hxi.com>
26336
26337         * config/h8300/h8300.md (anonymous patterns): Check that
26338         operands are registers before using REGNO on them.
26339
26340 2002-01-03  Roland McGrath  <roland@frob.com>
26341
26342         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
26343
26344 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
26345
26346         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
26347         * c-common.h (genrtl_expr_stmt_value): Likewise.
26348         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
26349         (expand_expr_stmt_value): Add maybe_last argument.
26350         Don't warn about statement with no effect if it is the last statement
26351         in expression statement.
26352         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
26353         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
26354         expand_expr_stmt_value.
26355         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
26356         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
26357         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
26358         as maybe_last to expand_expr_stmt_value.
26359
26360 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
26361
26362         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
26363         be passed in, do not build it.
26364         (c_begin_if_stmt): New function.
26365         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
26366         * c-common.h (c_expand_start_cond): Update prototype.
26367         (c_begin_if_stmt): Prototype new function.
26368         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
26369         * c-parse.in (if_prefix): Use c_begin_if_stmt,
26370         c_begin_while_stmt and c_finish_while_stmt_cond.
26371
26372 2002-01-04  William Cohen  <wcohen@redhat.com>
26373
26374         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
26375         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
26376         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
26377         * config/pa/som.h (ASM_FILE_START): Likewise.
26378
26379 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
26380
26381         * lcm.c: Include df.h.
26382         Add available_transfer_function prototype.
26383         (compute_available): Rework to use iterative dataflow framework.
26384         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
26385         with bb_info in df.h
26386         (available_transfer_function): New function.
26387
26388         * Makefile.in (lcm.o): add df.h to dependencies.
26389
26390 2002-01-04  Richard Henderson  <rth@redhat.com>
26391
26392         * config/alpha/alpha.c (some_operand): Accept HIGH.
26393         (input_operand): Likewise; accept simple references to globals.
26394         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
26395         (alpha_const_double_ok_for_letter_p): Likewise.
26396         (alpha_extra_constraint): Likewise.
26397         (alpha_preferred_reload_class): Likewise.  Do not force
26398         symbolic constants to memory.
26399         (alpha_legitimate_address_p): Accept simple references
26400         to small_symbolic_operand.
26401         (alpha_legitimize_address): New arg scratch.  Be prepared to be
26402         called when no_new_pseudos.  Emit simple symbolic references.
26403         Split integers into low, high, and rest.
26404         (alpha_expand_mov): Use alpha_legitimize_address.
26405         (some_small_symbolic_mem_operand): New.
26406         (split_small_symbolic_mem_operand): New.
26407         * config/alpha/alpha-protos.h: Update.
26408         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
26409         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
26410         (EXTRA_CONSTRAINT): Likewise.
26411         (PREFERRED_RELOAD_CLASS): Likewise.
26412         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
26413         (PREDICATE_CODES): Update.
26414         * config/alpha/alpha.md: New post-reload splitters to convert
26415         simplfied symbolic operands to the form that references $29.
26416         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
26417         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
26418
26419 2002-01-03  Richard Henderson  <rth@redhat.com>
26420
26421         * local-alloc.c (function_invariant_p): Update commentary.
26422
26423 2002-01-04  H.J. Lu <hjl@gnu.org>
26424
26425         * toplev.c (rest_of_compilation): Fix a typo when calling
26426         cleanup_cfg.
26427
26428 2002-01-03  Kazu Hirata  <kazu@hxi.com>
26429
26430         * c-common.c: Fix formatting.
26431         * diagnostic.c: Likewise.
26432         * doloop.c: Likewise.
26433         * dwarf2out.c: Likewise.
26434
26435 2002-01-03  Kazu Hirata  <kazu@hxi.com>
26436
26437         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
26438         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
26439
26440 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
26441
26442         * cpperror.c: Update comments and copyright.
26443         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
26444         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
26445
26446 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26447
26448         * collect2.c (main): Use strcmp when testing for "-shared".
26449
26450 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
26451
26452         * cppmacro.c: Don't include intl.h.  Update comments.
26453         (new_number_token): Allocate enough buffer for 64-bit unsigned
26454         integers; update prototype.
26455         * cppmain.c: Update comments.
26456
26457 2002-01-03  William Cohen  <wcohen@redhat.com>
26458
26459         * function.h (struct function): Add profile.
26460         (current_function_profile): New.
26461         doc/extend.texi: Update documentation.
26462         * final.c (final_start_function): Use current_function_profile
26463         instead of profile_flag.
26464         (profile_after_prologue): Likewise.
26465         * function.c (expand_function_start): Likewise.
26466         (expand_function_start): Likewise.
26467         * config/alpha/alpha.c (direct_call_operand):
26468         (alpha_does_function_need_gp): Likewise.
26469         (alpha_expand_prologue): Likewise.
26470         * config/arm/arm.c (arm_expand_prologue): Likewise.
26471         thumb_expand_prologue: Likewise.
26472         * config/d30v/d30v.c (d30v_stack_info): Likewise.
26473         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
26474         (fr30_expand_prologue): Likewise.
26475         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
26476         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
26477         * config/i386/i386.h (FINALIZE_PIC): Likewise.
26478         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
26479         * config/i960/i960.c (i960_output_function_prologue): Likewise.
26480         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
26481         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
26482         (m32r_expand_prologue): Likewise.
26483         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
26484         (m88k_expand_prologue): Likewise.
26485         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
26486         * config/mips/mips.c (compute_frame_size): Likewise.
26487         (mips_expand_prologue): Likewise.
26488         (mips_can_use_return_insn): Likewise.
26489         * config/pa/elf.h (ASM_FILE_START): Likewise.
26490         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
26491         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
26492         * config/pa/som.h (ASM_FILE_START): Likewise.
26493         * config/romp/romp.c (romp_using_r14): Likewise.
26494         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
26495         (rs6000_stack_info): Likewise.
26496         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
26497         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
26498         * config/v850/v850.c (compute_register_save_size): Likewise.
26499
26500 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
26501
26502         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
26503         gen_lowpart_common fails, use gen_lowpart_SUBREG.
26504
26505 2002-01-03  Turly O'Connor  <turly@apple.com>
26506
26507         * darwin.c (machopic_output_possible_stub_label): Don't generate
26508         stub routines for pseudo-stubs which we've just defined.
26509
26510 2002-01-03  Kazu Hirata  <kazu@hxi.com>
26511
26512         * builtins.c: Fix formatting.
26513         * c-typeck.c: Likewise.
26514         * combine.c: Likewise.
26515         * expr.c: Likewise.
26516         * loop.c: Likewise.
26517
26518 2002-01-03  Andreas Schwab  <schwab@suse.de>
26519
26520         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
26521         and return true if _cpp_push_next_buffer pushed a new include
26522         file.
26523         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
26524         _cpp_pop_file_buffer did not push a new file.
26525         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
26526
26527 2002-01-02  Eric Christopher  <echristo@redhat.com>
26528
26529         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
26530         FIND_REG_INC_NOTE call. Update copyright.
26531         * loop.c (canonicalize_condition): Ditto.
26532         * reorg.c (delete_scheduled_jump): Ditto.
26533
26534 2002-01-03  Kazu Hirata  <kazu@hxi.com>
26535
26536         * gcse.c: Fix formatting.
26537
26538 2002-01-03  Graham Stott  <grahams@redhat.com>
26539
26540         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
26541         forward defs for struct tags rtx_def, union_tree, rtvec_def
26542         also output corresponding typedefs for rtx, tree, and rtvec.
26543
26544         * system.h: Move forward defs for struct tags rtx_def, union_tree,
26545         rtvec_def along with corresponding typedefs for rtx, tree, and
26546         rtvec to config.h, hconfig.h, tconfig.h.
26547
26548 2002-01-03  Graham Stott  <grahams@redhat.com>
26549
26550         * tree.h: Update copyright date.
26551         (IS_EXPR_CODE_CLASS): Add parenthesis.
26552         (TREE_SET_CODE): Add whitespace.
26553         (TREE_CHECK): Add parenthesis.
26554         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
26555         (CST_OR_CONSTRUCTOR_CHECK):
26556         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
26557         (TREE_SYMBOL_REFERENCED): Whitespace.
26558         (INT_CST_LT): Likewise.
26559         (INT_CST_LT_UNSIGNED): Likewise.
26560         (tree_real_cst): Unwrap comment.
26561         (tree_string): Likewise.
26562         (tree_complex): Likewise.
26563         (IDENTIFIER_POINTER): correct cast.
26564         (SAVE_EXPR_CONTEXT): Whitespace.
26565         (EXPR_WFL_FILENAME_NODE): Likewise.
26566         (EXPR_WFL_FILENAME): Remove parenthesis.
26567         (DECL_ORIGIN): Add parenthesis.
26568         (DECL_FROM_INLINE): Use NULL_TREE.
26569         (build_int_2): Whitespace.
26570         (build_type_variant): Add parenthesis.
26571
26572         * gcc/jcf-parse.c: Update copyright date.
26573         (yyparse): Constify resource_filename.
26574
26575 2002-01-03  Graham Stott  <grahams@redhat.com>
26576
26577         * rtl.h: Update copyright date.
26578         (RTL_CHECK1): Wrap long line.
26579         (RTL_CHECK2): Likewise.
26580         (RTL_CHECKC1): Wrap long line and whitespace.
26581         (RTL_CHECKC2): Likewise.
26582         (XWINT): Whitespace.
26583         (XINT): Likewise.
26584         (XSTR): Likewise.
26585         (XEXP): Likewise.
26586         (XVEC): Likewise.
26587         (XMODE): Likewise.
26588         (XBITMAP): Likewise.
26589         (XTREE): Likewise.
26590         (XBBDEF): Likewise.
26591         (XTMPL): Likewise.
26592         (X0WINT): Likewise.
26593         (X0INT):Likewise.
26594         (X0UINT): Likewise.
26595         (X0STR): Likewise.
26596         (X0EXP): Likewise.
26597         (X0VEC): Likewise.
26598         (X0MODE): Likewise.
26599         (X0BITMAP): Likewise.
26600         (X0TREE): Likewise.
26601         (X0BBDEF): Likewise.
26602         (X0ADVFLAGS): Likewise.
26603         (X0CSELIB): Likewise.
26604         (X0MEMATTR): Likewise.
26605         (XCWINT): Likewise.
26606         (XCINT): Likewise.
26607         (XCUINT): Likewise.
26608         (XCSTR): Likewise.
26609         (XCEXP): Likewise.
26610         (XCVEC): Likewise.
26611         (XCMODE): Likewise.
26612         (XCBITMAP): Likewise.
26613         (XCTREE): Likewise.
26614         (XCBBDEF): Likewise.
26615         (XCADVFLAGS): Likewise.
26616         (XCCSELIB): Likewise.
26617         (XC2EXP): Likewise.
26618         (INSN_UID): Likewise.
26619         (PREV_INSN): Likewise.
26620         (PATTERN): Likewise.
26621         (INSN_CODE): Likewise.
26622         (PUT_REG_NOTE_KIND): Likewise.
26623         (CODE_LABEL_NUMBER): Likewise.
26624         (NOTE_SOURCE_FILE): Likewise.
26625         (NOTE_BLOCK): Likewise.
26626         (NOTE_EH_HANDLER): Likewise.
26627         (NOTE_RANGE_INFO): Likewise.
26628         (NOTE_LIVE_INFO): Likewise.
26629         (NOTE_BASIC_BLOCK): Likewise.
26630         (NOTE_EXPECTED_VALUE): Likewise.
26631         (NOTE_LINE_NUMBER): Likewise.
26632         (LABEL_NAME): Likewise.
26633         (LABEL_NUSES): Likewise.
26634         (LABEL_ALTERNATE_NAME): Likewise.
26635         (ADDRESSOF_DECL): Likewise.
26636         (JUMP_LABEL): Likewise.
26637         (LABEL_NEXTREF): Likewise.
26638         (REGNO): Likewise.
26639         (ORIGINAL_REGNO: Likewise.
26640         (HARD_REGISTER_NUM_P): Add parenthesis.
26641         (SUBREG_REG): Whitespace.
26642         (SUBREG_BYTE): Likewise.
26643         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
26644         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
26645         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
26646         (ASM_OPERANDS_INPUT_VEC): Likewise.
26647         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
26648         (ASM_OPERANDS_INPUT): Likewise.
26649         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
26650         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
26651         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
26652         (ASM_OPERANDS_INPUT_MODE): Likewise.
26653         (ASM_OPERANDS_SOURCE_FILE): Likewise.
26654         (ASM_OPERANDS_SOURCE_LINE): Likewise.
26655         (MEM_SET_IN_STRUCT_P): Minor reformat.
26656         (TRAP_CONDITION): Whitespace.
26657         (TRAP_CODE): Likewise.
26658         (COND_EXEC_TEST): Likewise.
26659         (COND_EXEC_CODE): Likewise.
26660         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
26661         (PHI_NODE_P): Add parenthesis.
26662         (plus_constant): Whitespace and add parenthesis.
26663
26664 2002-01-03  Kazu Hirata  <kazu@hxi.com>
26665
26666         * config/avr/avr.c: Fix comment typos.
26667         * config/c4x/c4x.md: Likewise.
26668         * config/dsp16xx/dsp16xx.h: Likewise.
26669         * config/dsp16xx/dsp16xx.md: Likewise.
26670         * config/i386/i386.md: Likewise.
26671         * config/ia64/ia64.c: Likewise.
26672         * config/m32r/m32r.h: Likewise.
26673         * config/m68hc11/m68hc11.md: Likewise.
26674         * config/mmix/mmix.c: Likewise.
26675         * config/mn10200/mn10200.c: Likewise.
26676         * config/romp/romp.c: Likewise.
26677         * config/sh/sh.c: Likewise.
26678         * config/stormy16/stormy16.c: Likewise.
26679         * config/stormy16/stormy16.h: Likewise.
26680         * config/stormy16/stormy16.md: Likewise.
26681
26682 2002-01-03  Graham Stott  <grahams@redhat.com>
26683
26684         * loop.h: Update copyright date.
26685         (LOOP_MOVABLES): Fix typo.
26686         (LOOP_REGS): Likewise.
26687         (LOOP_IVS): Likewise.
26688
26689 2002-01-03  Graham Stott  <grahams@redhat.com>
26690
26691         * cppinit.c: Update copyright date.
26692         Don't include output.h
26693         * Makefile.in: Update copyright date.
26694         Update dependency.
26695
26696 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
26697
26698         PR c/5226
26699         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
26700         (-pthread) Add to RS/6000 options.
26701
26702 2002-01-02  Kazu Hirata  <kazu@hxi.com>
26703
26704         * except.c: Fix comment typos.
26705         * loop.c: Likewise.
26706         * varasm.c: Likewise.
26707         * doc/tm.texi: Fix a typo.
26708
26709 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
26710
26711         * c-typeck.c (output_init_element): Allow initializing static storage
26712         duration objects with compound literals.
26713
26714 2002-01-02  Richard Henderson  <rth@redhat.com>
26715
26716         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
26717         after abusing it.
26718
26719 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26720
26721         * gcc.c (default_compilers): Const-ify.
26722         * mips-tdump.c (stab_names): Likewise.
26723         * mips-tfile.c (map_coff_types, map_coff_storage,
26724         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
26725         pseudo_ops_t, pseudo_ops): Likewise.
26726         * protoize.c (default_include): Likewise
26727
26728         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
26729         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
26730         Add array size in declaration.
26731         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
26732         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
26733         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
26734         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
26735         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
26736         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
26737         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
26738         emtens, make_nan): Const-ify.
26739         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
26740         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
26741
26742 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
26743
26744         * config.gcc (ia64-*-*): Set extra_headers.
26745         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
26746         * config/alpha/t-osf: Remove.
26747         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
26748
26749 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
26750
26751         * config/rs6000/t-aix43: Revert previous change.
26752
26753 2002-01-02  Jason Merrill  <jason@redhat.com>
26754
26755         * c-decl.c (c_expand_body): Call outlining_inline_function when
26756         emitting an inline function out of line.
26757
26758 2002-01-02  Richard Henderson  <rth@redhat.com>
26759
26760         * dwarf2out.c (limbo_die_node): Add created_for member.
26761         (new_die): New argument created_for.  Update all callers.
26762         (mark_limbo_die_list): New.
26763         (dwarf2out_init): Register limbo_die_list as a root.
26764         (dwarf2out_finish): Force insert limbo dies into their function
26765         context.
26766
26767 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
26768
26769         PR c++/5089
26770         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
26771
26772 2002-01-02  Kazu Hirata  <kazu@hxi.com>
26773
26774         * config/h8300/fixunssfsi.c: Update copyright.
26775         Fix comment typos.
26776         Fix formatting.
26777         * config/h8300/h8300.c: Update copyright.
26778         Eliminate warnings.
26779
26780 2002-01-02  Kazu Hirata  <kazu@hxi.com>
26781
26782         * config/romp/romp.c: Fix comment formatting.
26783         * config/romp/romp.h: Likewise.
26784         * config/romp/romp.md: Likewise.
26785         * config/s390/s390.c: Likewise.
26786         * config/stormy16/stormy16.c: Likewise.
26787         * config/stormy16/stormy16.h: Likewise.
26788
26789 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
26790
26791         * c-common.h (genrtl_expr_stmt_value): Declare.
26792         * c-semantics.c (genrtl_goto_stmt): Redirect to...
26793         (genrtl_goto_stmt_value): ... this new function.  Pass new
26794         argument down to expand_expr_stmt_value, taking
26795         TREE_ADDRESSABLE into account.
26796         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
26797         STMT_EXPR as addressable, i.e., one whose result we want.
26798         * expr.c (expand_expr): Don't save expression statement value
26799         of labeled_blocks or loop_exprs.
26800         * stmt.c (expand_expr_stmt): Redirect to...
26801         (expand_expr_stmt_value): ... this new function.  Use new
26802         argument to tell whether to save expression value.
26803         (expand_end_stmt_expr): Reset last_expr_type and
26804         last_expr_value if we don't have either.
26805         * tree-inline.c (declare_return_variable): Mark its use
26806         statement as addressable.
26807         * tree.h: Document new use of TREE_ADDRESSABLE.
26808         (expand_expr_stmt_value): Declare.
26809
26810 2002-01-01  Tom Rix  <trix@redhat.com>
26811
26812         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
26813         rs6000_emit_allocate_stack.
26814
26815 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
26816
26817         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
26818         ${srcdir}/ginclude/ to every entry in extra_headers.
26819         * configure: Regenerate.
26820         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
26821         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
26822         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
26823         * ginclude/proto.h: Rename to config/convex/proto.h.
26824
26825 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26826
26827         * attribs.c (handle_vector_size_attribute): Use host_integerp
26828         and tree_int_cst; remove warnings.
26829         * caller-save.c (insert_restore): Add cast to get rid of warning.
26830         (insert_save): Likewise.
26831         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
26832         * regmove.c (find_matches): Add temporary var to kill a warning.
26833
26834 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
26835
26836         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
26837         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
26838         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
26839         (vms-dwarf2eh.o): Add Makefile rule.
26840         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
26841         * config/alpha/vms-dwarf2eh.asm: New file.
26842
26843         * gcc.c (delete_if_ordinary): Delete all versions.
26844
26845 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
26846
26847         * config/mmix/mmix.md: Update FIXME to not mention
26848         define_constants.
26849         (MMIX_rJ_REGNUM): New define_constants constant.
26850         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
26851         "*movdicc_real"): Adjust contraints formatting.
26852         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
26853         for branch prediction.
26854         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
26855         output template.
26856         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
26857         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
26858         number.  Delete related FIXMEs.
26859         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
26860         from number to MMIX_rJ_REGNUM.
26861         (TARGET_MASK_BRANCH_PREDICT): New.
26862         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
26863         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
26864         value.  Add -mbranch-predict and -mno-branch-predict.
26865         (TARGET_VERSION): Drop date.
26866         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
26867         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
26868         for finding out global symbols.
26869         (mmix_asm_output_labelref): Revert condition for global symbol.
26870         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
26871         (mmix_print_operand_punct_valid_p): A '+' is valid.
26872
26873 See ChangeLog.6 for earlier changes.