OSDN Git Service

049f5cbff321a0a5b9219acdebd7019336d4681c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2
3         * doc/install.texi (--with-gnu-as): Mention SPARC/Solaris and
4         SPARC64/Solaris as platforms where --with-gnu-as makes a difference.
5         (--with-as): Add @anchor.
6         (--with-gnu-ld): Fix typo.
7         (--with-ld): Add @uref to --with-as.
8
9 2003-06-19  Zack Weinberg  <zack@codesourcery.com>
10
11         * doc/tm.texi: Uniformly use @defmac for macros, rather than
12         @table items.  Minor formatting and editorial corrections.
13
14 2003-06-20  Neil Booth  <neil@daikokuya.co.uk>
15
16         * line-map.c, line-map.h: Convert to ISO prototypes.
17
18 2003-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19
20         * gcse.c (store_killed_in_insn): Fix.
21
22 2003-06-19  Zack Weinberg  <zack@codesourcery.com>
23
24         * target.h (asm_out.file_start, file_start_app_off,
25         file_start_file_directive): New hooks.
26         * target-def.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
27         TARGET_ASM_FILE_START_APP_OFF, TARGET_ASM_FILE_START):
28         New hook-definition macros.
29         * doc/tm.texi: Document new hooks; remove docs of ASM_FILE_START.
30         * varasm.c (default_file_start): New.
31         * output.h: Prototype it.
32         * toplev.c (init_asm_output): Use targetm.asm_out.file_start.
33         * system.h: Poison ASM_FILE_START.
34
35         * config/alpha/alpha.c (alpha_write_verstamp): Delete.
36         (alpha_file_start): New, define if !TARGET_ABI_UNICOSMK.
37         (unicosmk_asm_file_start): Rename unicosmk_file_start,
38         make static, take no arguments.
39         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END,
40         TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set as appropriate.
41         * config/alpha/unicosmk.h: Don't define ASM_FILE_START nor
42         TARGET_ASM_FILE_END.  Remove reference to ASM_FILE_START in
43         comment.
44         * config/arc/arc.c (arc_asm_file_start): Rename
45         arc_file_start, take no arguments, make static.
46         (TARGET_ASM_FILE_START): Set it.
47         * config/arm/arm.c (aof_file_start): New static function.
48         (TARGET_ASM_FILE_START): Set it, when appropriate.
49         * config/arm/coff.h, config/arm/elf.h:
50         Set TARGET_ASM_FILE_START_APP_OFF to true.
51         * config/avr/avr.c (asm_file_start): Rename avr_file_start,
52         take no arguments, make static.
53         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE):
54         Set them.
55         * config/c4x/c4x.c (c4x_file_start): New static function.
56         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE):
57         Set them.
58         * config/cris/cris.c (cris_file_start): New static function.
59         (TARGET_ASM_FILE_START): Set it.
60         * config/dsp16xx/dsp16xx.c (coff_dsp16xx_file_start): Rename
61         dsp16xx_file_start, make static.
62         (luxworks_dsp16xx_file_start): Delete.
63         (TARGET_ASM_FILE_START): Set it.
64         * config/h8300/h8300.c (asm_file_start): Rename
65         h8300_file_start, make static, take no arguments.
66         (TARGET_ASM_FILE_START): Set it.
67         * config/i370/i370.c (i370_file_start): New static function.
68         (TARGET_ASM_FILE_START): Set it.
69         * config/i386/i386.c (x86_file_start): New static function.
70         (TARGET_ASM_FILE_START): Set it.
71         * config/i386/i386.h (X86_FILE_START_VERSION_DIRECTIVE,
72         X86_FILE_START_FLTUSED): New macros, default to false.
73         * config/i386/i386-interix.h: Override X86_FILE_START_FLTUSED to 1.
74         * config/i386/sysv4.h, config/i386/sco5.h: Override
75         X86_FILE_START_VERSION_DIRECTIVE to true.
76         * config/ia64/ia64.c (ia64_file_start): New static function.
77         (TARGET_ASM_FILE_START): Set it.
78         (emit_safe_across_calls): Take no arguments.
79         * config/ia64/ia64.md: Update to match.
80         * config/m32r/m32r.c (m32r_asm_file_start): Rename
81         m32r_file_start, make static, take no arguments.
82         (TARGET_ASM_FILE_START): Set it.
83         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Rename
84         m68hc11_file_start, make static, take no arguments.
85         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
86         (print_options): Delete.
87         * config/m68k/m68k.c (m68k_hp320_file_start): New static function.
88         (TARGET_ASM_FILE_START_APP_OFF): Set.
89         * config/m68k/hp320.h: Set TARGET_ASM_FILE_START to
90         m68k_hp320_file_start.
91         * config/mips/mips.c (iris6_asm_file_start, mips_asm_file_start):
92         Make static, take no arguments.
93         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
94         * config/mmix/mmix.c (mmix_asm_file_start): Rename
95         mmix_file_start, make static, take no arguments.
96         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
97         * config/mn10300/mn10300.c (asm_file_start): Rename
98         mn10300_file_start, make static, take no arguments.
99         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
100         * config/ns32k/ns32k.c (TARGET_ASM_FILE_START_APP_OFF): Set.
101         * config/pa/pa.c (pa_file_start_level, pa_file_start_space,
102         pa_file_start_file, pa_file_start_mcount, pa_elf_file_start,
103         pa_som_file_start, pa_linux_file_start, pa_hpux64_gas_file_start,
104         pa_hpux64_hpas_file_start): New static functions.
105         * config/pa/elf.h: Set TARGET_ASM_FILE_START to pa_elf_file_start.
106         * config/pa/pa-linux.h: Set TARGET_ASM_FILE_START to
107         pa_linux_file_start.
108         * config/pa/pa64-hpux.h: Set TARGET_ASM_FILE_START to
109         pa_hpux64_gas_file_start or pa_hpux64_hpas_file_start, as
110         appropriate.
111         * config/pa/som.h: Set TARGET_ASM_FILE_START to pa_som_file_start.
112         * config/rs6000/rs6000.c: Include xcoffout.h when TARGET_XCOFF.
113         (rs6000_file_start): Make static, take no arguments.  Reset
114         default_cpu under certain conditions.
115         (rs6000_xcoff_file_start): New function.
116         * config/rs6000/rs6000.h (TARGET_ASM_FILE_START): Set.
117         * config/rs6000/xcoff.h (TARGET_ASM_FILE_START,
118         TARGET_ASM_FILE_START_FILE_DIRECTIVE): Override.
119         * config/sh/sh.c (output_file_start): Rename
120         sh_file_start, make static, take no arguments.  Merge in old
121         code from sh/elf.h's ASM_FILE_START, conditioned on TARGET_ELF.
122         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
123         * config/sh/sh.c (TARGET_ELF): Define to 0.
124         * config/sh/elf.h (TARGET_ELF): Redefine to 1.
125         * config/v850/v850.c (asm_file_start): Delete.
126         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set.
127         * config/vax/vax.c (vax_file_start): New static function.
128         (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_APP_OFF): Set.
129
130         * config/darwin.h: Override ASM_FILE_START_FILE_DIRECTIVE to false.
131         * config/elfos.h, config/svr3.h, config/arm/elf.h, config/arm/pe.h
132         * config/i386/att.h, config/i386/gas.h, config/i386/linux.h
133         * config/i386/sysv4.h, config/i386/sco5.h, config/i960/i960-coff.h
134         * config/m68k/coff.h, config/m68k/hp320.h, config/mcore/mcore-pe.h
135         * config/vax/vaxv.h: Set ASM_FILE_START_FILE_DIRECTIVE to true.
136
137         * config/darwin.h, config/elfos.h, config/alpha/elf.h
138         * config/alpha/openbsd.h, config/alpha/osf.h, config/alpha/vms.h
139         * config/arc/arc.h, config/arm/aof.h, config/arm/aout.h
140         * config/arm/coff.h, config/arm/elf.h, config/arm/pe.h
141         * config/avr/avr.h, config/c4x/c4x.h, config/cris/cris.h
142         * config/dsp16xx/dsp16xx.h, config/h8300/elf.h, config/h8300/h8300.h
143         * config/i370/i370.h, config/i386/att.h, config/i386/gas.h
144         * config/i386/i386-interix.h, config/i386/linux.h, config/i386/sysv4.h
145         * config/i386/sco5.h, config/i960/i960-coff.h, config/i960/i960.h
146         * config/ia64/ia64.h, config/ia64/sysv4.h, config/m32r/m32r.h
147         * config/m68hc11/m68hc11.h, config/m68k/coff.h, config/m68k/m68k.h
148         * config/mcore/mcore-pe.h, config/mips/iris6.h, config/mips/mips.h
149         * config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h
150         * config/pa/elf.h, config/pa/pa-linux.h, config/pa/pa64-hpux.h
151         * config/pa/som.h, config/pdp11/pdp11.h, config/rs6000/linux64.h
152         * config/rs6000/lynx.h, config/rs6000/xcoff.h, config/sh/elf.h
153         * config/sh/sh.h, config/sparc/sparc.h, config/v850/v850.h
154         * config/vax/vax.h, config/vax/vaxv.h: Don't (re)define ASM_FILE_START.
155
156         * config/alpha/alpha-protos.h, config/arc/arc-protos.h
157         * config/avr/avr-protos.h, config/dsp16xx/dsp16xx-protos.h
158         * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
159         * config/m32r/m32r-protos.h, config/m68hc11/m68hc11-protos.h
160         * config/mips/mips-protos.h, config/mmix/mmix-protos.h
161         * config/mn10300/mn10300-protos.h, config/rs6000/rs6000-protos.h
162         * config/sh/sh-protos.h, config/v850/v850-protos.h: Update.
163
164         * xcoffout.h, config/rs6000/aix.h, config/rs6000/xcoff.h:
165         Remove reference to ASM_FILE_START in comment.
166         * config/arm/aof.h, config/arm/aout.h, config/arm/freebsd.h
167         * config/arm/linux-gas.h, config/arm/netbsd-elf.h
168         * config/arm/netbsd.h: Delete definition of ARM_OS_NAME.
169
170 2003-06-19  Graeme Peterson <gp@qnx.com>
171
172         * gcc.c (target_sysroot_suffix, target_sysroot_hdrs_suffix,
173         SYSROOT_SUFFIX_SPEC, SYSROOT_HEADERS_SUFFIX_SPEC, sysroot_suffix_spec,
174         sysroot_hdrs_suffix_spec): New.
175         (static_specs): Initialize new variables.
176         (add_sysroot_suffix_prefix, do_spec_1, main): Use new variables.
177         * doc/tm.texi (SYSROOT_SUFFIX_SPEC, SYSROOT_HEADERS_SUFFIX_SPEC):
178         New macros.
179
180 2003-06-19  Andreas Jaeger  <aj@suse.de>
181
182         * c-aux-info.c: Convert to ISO C90.
183         * c-pragma.c: Likewise.
184         * c-common.c: Likewise.
185         * c-common.h: Likewise.
186         * c-convert.c: Likewise.
187         * c-cppbuiltin.c: Likewise.
188         * c-dump.c: Likewise.
189         * c-decl.c: Likewise
190         * c-format.c: Likewise.
191         * c-incpath.c: Likewise.
192         * c-incpath.h: Likewise.
193
194 2003-06-19  Roger Sayle  <roger@eyesopen.com>
195
196         * builtins.c (expand_errno_check): Assume that flag_errno_math
197         and HONOR_NANS have been tested before calling here.  Only try
198         to set errno ourselves if the decl can't throw an exception.
199         (expand_builtin_mathfn): Move the code to stabilize the arg
200         after the main switch, so that that its only done when needed.
201         BUILT_IN_SQRT{,F,L} doesn't set errno if its arg is nonnegative.
202         Don't modify the original expr when stabilizing the argument.
203         (expand_builtin_mathfn_2): Likewise, move the code to stabilize
204         the args after the main switch, and don't modify the orginal exp.
205
206 2003-06-19  Aldy Hernandez  <aldyh@redhat.com>
207
208         * expr.c (const_vector_from_tree): Initialize remaining elements
209         to 0.
210
211 2003-06-19  Aldy Hernandez  <aldyh@redhat.com>
212
213         * config/rs6000/spe.md ("spe_evfscfsi"): Change operand types.
214         Change "fix" to "float".
215
216 2003-06-19  Andreas Jaeger  <aj@suse.de>
217
218         * c-tree.h: Remove declaration of poplevel.
219
220         * tree.h: Remove declaration of approx_sqrt.
221
222         * c-lex.c: Remove redundant declaration of asm_out_file.
223
224         * flags.h: Remove declaration of warn_unknown_pragma and
225         main_input_filename.
226
227         * rtl.h: Remove functions from fold-const.c since they're already
228         declared in tree.h.
229
230         * regs.h: Remove redundant declaration of reg_names.
231
232         * bt-load.c (migrate_btr_defs): Correct printf arguments.
233
234         * protoize.c: Fix breakage from last patch.
235
236 2003-06-19  J"orn Rennecke <joern.rennecke@superh.com>
237
238         * hooks.h (hook_reg_class_void_no_regs): Only declare if tm.h
239         has been included.
240
241 2003-06-18  James A Morrison <ja2morri@student.math.uwaterloo.ca>
242
243         * config/sparc/sparc.c: Update copyright year.
244
245 2003-06-19  David Edelsohn  <edelsohn@gnu.org>
246
247         * config/rs6000/rs6000.c (init_cumulative_args): Limit CALL_LIBCALL
248         to ABI_V4.
249
250 2003-06-18  Joseph S. Myers  <jsm@polyomino.org.uk>
251
252         PR bootstrap/4068
253         * config/i386/liunx.h: Don't include sys/ucontext.h for glibc 2.0.
254
255 2003-06-19  Kazu Hirata  <kazu@cs.umass.edu>
256
257         * config/h8300/h8300.c (TARGET_INITIALIZER and friends): Move
258         to the end of the file.  Remove unnecessary prototypes.
259
260 2003-06-19  Hans-Peter Nilsson  <hp@axis.com>
261
262         * bt-load.c (migrate_btr_def) [INSN_SCHEDULING]: Conditionalize
263         calls to insn_default_latency and result_ready_cost.  Initialize
264         def_latency to 1.
265
266 2003-06-18  Richard Henderson  <rth@redhat.com>
267
268         * config/ia64/unwind-ia64.c (_Unwind_GetCFA): New.
269         (_Unwind_FindEnclosingFunction): Implement.
270
271 2003-06-18  Kazu Hirata  <kazu@cs.umass.edu>
272
273         * toplev.c (rest_of_handle_sched): Hide the entire function if
274         INSN_SCHEDULING is not defined.
275         (rest_of_compilation): Call rest_of_handle_sched() only when
276         INSN_SCHEDULING is defined.
277
278 2003-06-18  Stephen Clarke <stephen.clarke@superh.com>
279             J"orn Rennecke <joern.rennecke@superh.com>
280
281         * bt-load.c: New file.
282         * Makefile.in (OBJS): Include bt-load.o
283         (bt-load.o): Add dependencies.
284         * flags.h (flag_branch_target_load_optimize): Declare.
285         (flag_branch_target_load_optimize2): Likewise.
286         * hooks.c (hook_reg_class_void_no_regs): New function.
287         (hook_bool_bool_false): Likewise.
288         * hooks.h (hook_reg_class_void_no_regs, hook_bool_bool_false): Declare.
289         * rtl.h (branch_target_load_optimize): Declare.
290         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define.
291         (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
292         (TARGET_INITIALIZER): Include these.
293         * target.h (struct gcc_target): Add branch_target_register_class
294         and branch_target_register_callee_saved members.
295         * toplev.c (enum dump_file_index): Add DFI_branch_target_load
296         (dump_file) Add "tars" entry.
297         (flag_branch_target_load_optimize): New variable.
298         (flag_branch_target_load_optimize2): Likewise.
299         (lang_independent_options): Add entries for new options.
300         (rest_of_compilation): Call branch_target_load_optimize.
301         * doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Document.
302         (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
303         * doc/invoke.texi: Document -fbranch-target-load-optimize and
304         -fbranch-target-load-optimize2.
305         * rtl.h (epilogue_completed): Declare.
306         * recog.c (epilogue_completed): New variable.
307         * toplev.c (rest_of_compilation): Set it.
308         * flow.c (mark_regs_live_at_end): Use it.
309         * config/ia64/ia64.c (ia64_output_mi_thunk): Set it.
310         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
311         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
312         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
313
314         * sh.c (shmedia_space_reserved_for_target_registers): New variable.
315         (sh_target_reg_class): New function.
316         (sh_optimize_target_register_callee_saved): Likwise.
317         (shmedia_target_regs_stack_space): Likewise.
318         (shmedia_reserve_space_for_target_registers_p): Likewise.
319         (shmedia_target_regs_stack_adjust): Likewise.
320         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Override.
321         (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
322         (calc_live_regs): If flag_branch_target_load_optimize2 and
323         TARGET_SAVE_ALL_TARGET_REGS is enabled, and we have space reserved
324         for target registers, make sure that we save all target registers.
325         (sh_expand_prologue, sh_expand_epilogue): Take target register
326         optimizations into account.  Collapse stack adjustments if that
327         is beneficial.
328         (initial_elimination_offset): Reserve space for target registers
329         if necessary.
330         * sh.h (SAVE_ALL_TR_BIT, TARGET_SAVE_ALL_TARGET_REGS): Define.
331         (OPTIMIZATION_OPTIONS): Enable flag_branch_target_load_optimize.
332
333 2003-06-18  Nick Clifton  <nickc@redhat.com>
334
335         * config.gcc: Add an extra_header for ARM targets.
336         Support configuring with --with-cpu=iwmmxt.
337         * doc/invoke.texi: Document new value for -mcpu= ARM switch.
338         * config/arm/aof.h (REGISTER_NAMES): Add iwmmxt register
339         names.  Fix formatting.
340         * config/arm/aout.h (REGISTER_NAMES): Add iwmmxt register
341         names.
342         * config/arm/arm-protos.h (arm_emit_vector_const): New
343         prototype.
344         (arm_output_load_gr): New prototype.
345         * config/arm/arm.c (extra_reg_names1): Delete.
346         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN, FL_IWMMXT,
347         * arch_is_iwmmxt): Define.
348         (all_cores, all_architecture): Add entry for iwmmxt.
349         (arm_override_options): Add support for iwmmxt.
350         (use_return_insn, arm_function_arg, arm_legitimate_index_p,
351         arm_print_value, arm_rtx_costs_1, output_move_double,
352         arm_compute_save_reg_mask, arm_output_epilogue,
353         arm_get_frame_size, arm_expand_prologue, arm_print_operand,
354         arm_assemble_integer, arm_hard_regno_ok, arm_regno_class):
355         Likewise.
356         (arm_init_cumulative_args): Count iwmmxt registers.
357         (arm_function_ok_for_sibcall): Return false of sibcall_blocked
358         has been set.
359         (struct minipool_node): Add fix_size field.
360         (add_minipool_forward_ref): Add support for 8-byte aligning of
361         the pool.
362         (add_minipool_backward_ref, add_minipool_offsets,
363         dump_minipool, push_minipool_fix): Likewise.
364         (struct builtin_description): New struct.
365         (builtin_description): New array of iwmmxt builtin functions.
366         (arm_init_iwmmxt_builtins): New function.
367         (arm_init_builtins): New function.
368         (safe_vector_operand): New function.
369         (arm_expand_binop_builtin): New function.
370         (arm_expand_unop_builtin): New function.
371         (arm_expand_builtin): New function.
372         (arm_emit_vector_const): New function.
373         (arm_output_load_gr): New function.
374         * config/arm/arm.h (TARGET_CPU_iwmmxt, TARGET_IWMMXT,
375         TARGET_REALLY_IWMMXT, arm_arch_iwmmxt, IWMMXT_ALIGNMENT,
376         TYPE_NEEDS_IWMMXT_ALIGNMENT, ADJUST_FIELD_ALIGN,
377         DATA_ALIGNMENT, LOCAL_ALIGNMENT, VECTOR_MODE_SUPPORTED_P): Define.
378         (BIGGEST_ALIGNMENT): Set to 64 if ATPCS support is enabled.
379         (CPP_CPU_ARCH_SPEC): Add entries for iwmmxt.
380         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
381         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
382         REG_CLASS_FOR_LETTER): Add iwmmxt registers.
383         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Disable iwmmxt
384         registers unless the iwmmxt target is selected.
385         (FIRST_IWMMXT_GR_REGNUM, LAST_IWMMXT_GR_REGNUM,
386         FIRST_IWMMXT_REGNUM, LAST_IWMMXT_REGNUM, IS_IWMMXT_REGNUM,
387         IS_IWMMXT_GR_REGNUM): Define.
388         (FIRST_PSEUDO_REGISTER): Bump to 63.
389         (struct machine_function): Add sibcall_blocked field.
390         (Struct CUMULATIVE_ARGS): Add iwmmxt_nregs, named_count and
391         nargs fields.
392         (enum arm_builtins): New enum list.
393         * config/arm/arm.md (UNSPEC_WSHUFH, UNSPEC_WACC,
394         UNSPEC_TMOVMSK, UNSPEC_WSAD, UNSPEC_WSADZ, UNSPEC_WMACS,
395         UNSPEC_WMACU, UNSPEC_WMACSZ, UNSPEC_WMACUZ, UNSPEC_CLRDI,
396         UNSPEC_WMADDS, UNSPEC_WMADDU): New unspecs.
397         (VUNSPEC_TMRC, VUNSPEC_TMCR, VUNSPEC_ALIGN8, VUNSPEC_WCMP_EQ,
398         VUNSPEC_WCMP_GTU, VUNSPEC_WCMP_GT): New vunspecs.
399         (movv2si, movv4hi, movv8qi): New expands for vector moves.
400         Include iwmmxt.md.
401         * config/arm/t-xscale-elf (MULTILIB_OPITONS): Add iwmmxt
402         multilib.
403         (MULTILIB_DIRNAMES, MULTILIB_REDUNDANT_DIRS): Likewise.
404         * config/arm/mmintrin.h: New ARM specific header file.
405         * config/arm/iwmmx.md: New iWMMXt specific machine patterns.
406
407 2003-06-18  J"orn Rennecke <joern.rennecke@superh.com>
408
409         * toplev.c (Remaining -d letters summary): Update.
410
411 2003-06-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
412
413         * config/rs6000/rs6000.c (init_cumulative_args): Add and handle LIBCALL
414         argument.
415         (function_arg): Handle CALL_LIBCALL flag.
416         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
417         prototype.
418         * config/rs6000/rs6000.h (CALL_LIBCALL): New macro.
419         (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
420         (INIT_CUMULATIVE_ARGS): Add LIBCALL argument.
421         (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
422
423 2003-06-18  Neil Booth  <neil@daikokuya.co.uk>
424
425         * Makefile.in: Update.
426         * common.opt: New options.
427         * opts.c (maybe_warn_unused_parameter, set_Wextra, handle_param,
428         set_Wunused): New.
429         (common_handle_option): Handle new options.
430         * toplev.c (set_target_switch): Export.
431         (set_Wextra, set_Wunused, maybe_warn_unused_parameter): Move to opts.c.
432         (decode_W_option): -Wunused and -Wextra handled in opts.c now.
433         (independent_decode_option): More options handled in opts.c now.
434         Change prototype.
435         * toplev.h (set_target_switch): New.
436
437 2003-06-17  Robert Abeles  <rabeles@archaelogic.com>
438
439         PR debug/4252
440         * c-opts.c (c_common_handle_option): Pass -fdump argument suffix
441         to dump_switch_p().
442         * tree-dump.c (dump_switch_p): Remove redundant 'dump-' prefix
443         from static strings in dump_files.
444
445 2003-06-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
446
447         * system.h (ANSI_PROTOTYPES, PTR_CONST, LONG_DOUBLE, VPARAMS,
448         VA_OPEN, VA_FIXEDARG, VA_CLOSE, VA_START): undef and poison these
449         libiberty macros.
450
451 2003-06-17  Jason Merrill  <jason@redhat.com>
452
453         PR c++/10929
454         * tree-inline.c (expand_call_inline): Don't warn about failing to
455         inline a function which was made inline by -finline-functions.
456
457 2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>
458
459         * config/h8300/h8300-protos.h: Update to ISO C.
460         * config/h8300/h8300.c: Likewise.
461         * config/h8300/h8300.h: Likewise.
462         * config/h8300/h8300.md: Likewise.
463
464 2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
465
466         * configure.in: Replace BUILD_CC references with CC_FOR_BUILD.
467         * configure: Regenerate.
468         * Makefile.in: Replace BUILD_CC references with CC_FOR_BUILD.
469
470 2003-06-17  Ranjit Mathew  <rmathew@hotmail.com>
471
472         * install.texi (Testing): Add information on how to run Java
473         runtime tests separately.
474
475 2003-06-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
476
477         * config/mips/mips.md (trap): Use break 0 when !TARGET_GAS.
478
479         * config/mips/iris6-o32.h (MIPS_ISA_DEFAULT): Remove.
480         (MIPS_CPU_STRING_DEFAULT): Redefine to mips2.
481
482 2003-06-17  Christopher Faylor  <cgf@redhat.com>
483
484         * doc/install.texi: Add msvc rebuild caveat.
485
486 2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>
487
488         * config/sh/coff.h: Replace Hitachi with Renesas.
489         * config/sh/elf.h: Likewise.
490         * config/sh/embed-elf.h: Likewise.
491         * config/sh/lib1funcs.asm: Likewise.
492         * config/sh/sh-protos.h: Likewise.
493         * config/sh/sh.c: Likewise.
494         * config/sh/sh.h: Likewise.
495         * config/sh/sh.md: Likewise.
496
497 2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>
498
499         * ChangeLog.3: Fix comment typos.
500         * ChangeLog.6: Likewise.
501         * config/d30v/d30v.c: Likewise.
502         * config/h8300/h8300.md: Likewise.
503         * config/m32r/m32r.md: Likewise.
504         * config/mips/mips.c: Likewise.
505         * config/mips/mips.md: Likewise.
506         * config/ns32k/NOTES: Likewise.
507
508 2003-06-17  Ranjit Mathew  <rmathew@hotmail.com>
509             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
510
511         * doc/sourcebuild.texi (libgcj Tests): Simplify instructions on how
512         to run Java runtime tests separately.
513
514 2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>
515
516         * config/h8300/h8300-protos.h: Update a comment.
517
518 2003-06-17  J"orn Rennecke <joern.rennecke@superh.com>
519
520         * sh.h (ROUND_TYPE_ALIGN, LOCAL_ALIGNMENT): Complex modes
521         are aligned like integral modes.
522         (SH5_WOULD_BE_PARTIAL_NREGS): Also test for CDImode and DCmode.
523
524         * sh.h (EXTRA_CONSTRAINT_Csy): Allow PIC_DIRECT_ADDR_P.
525         (LEGITIMATE_PIC_OPERAND_P): Allow LABEL_REF.
526         * sh.md (*pt): Remove.
527
528         * sh.h (REG_ALLOC_ORDER): Avoid squandering call-saved registers.
529
530         * sh.md (return_media_rte): New pattern.
531         (return_media): Use it.
532
533 2003-06-17  Kazu Hirata  <kazu@cs.umass.edu>
534
535         * doc/contrib.texi: Replace Hitachi with Renesas.
536         * doc/install.texi: Likewise.
537         * doc/invoke.texi: Likewise.
538
539 2003-06-17  J"orn Rennecke <joern.rennecke@superh.com>
540
541         * sh.h (CONST_OK_FOR_J16): Fix HOST_BITS_PER_WIDE_INT >= 64
542         behaviour.
543
544 2003-06-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
545
546         * doc/tm.texi (MD_FALLBACK_FRAME_STATE_FOR): Mention MAKE_THROW_FRAME.
547
548         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Partly revert
549         2003-01-23 patch. Corrected to handle kernels with changed ucontext.
550
551         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Error on invalid
552         -msdata=eabi usages.
553
554         * gcc/config/rs6000/sysv4.h (USE_LIBC_1): Delete all uses.
555
556 2003-06-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
557
558         * alloc-pool.c: Don't check HAVE_LONG_DOUBLE.
559         * fixinc/gnu-regex.c: Don't define `volatile'.
560         * ggc-page.c: Don't check HAVE_LONG_DOUBLE.
561         * ggc-simple.c: Likewise.
562         * system.h: Don't define `volatile'.
563
564         * aclocal.m4 (gcc_AC_C_VOLATILE, gcc_AC_C_LONG_DOUBLE): Delete.
565         * configure.in (gcc_AC_C_VOLATILE, gcc_AC_C_LONG_DOUBLE): Don't
566         call these macros.
567         * config.in, configure: Regenerated.
568
569 2003-06-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
570
571         * config/ia64/ia64.c (ia64_expand_builtin, case IA64_BUILTIN_BSP):
572         Handle POINTERS_EXTEND_UNSIGNED.
573
574 2003-06-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
575
576         * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
577         !TARGET_IRIX6]: Define as NULL.
578
579 2003-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
580
581         * config/sparc/sparc.c (sparc_va_arg): Don't align 16-byte+ structures.
582
583 2003-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
584
585         * dbxout.c (dbxout_source_line_counter): New global variable.
586         Mark it with GTY(()).
587         (dbxout_source_line): Increment dbxout_source_line_counter
588         and pass it to ASM_OUTPUT_SOURCE_LINE.
589         * sdbout.c (sdbout_source_line_counter): New global variable.
590         Mark it with GTY(()).
591         (unnamed_struct_number): Mark it with GTY(()).
592         (sdbout_source_line): Increment sdbout_source_line_counter
593         and pass it to ASM_OUTPUT_SOURCE_LINE.
594         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Add third parameter
595         (xcoffout_source_line): Pass 0 as third argument to
596         ASM_OUTPUT_SOURCE_LINE.
597         (xcoffout_begin_prologue): Likewise.
598         * config/dbxout.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
599         Use it instead of 'sym_lineno' but without incrementing it.
600         * config/dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
601         * config/lynx.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
602         * config/ptx4.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
603         * config/alpha/alpha.c (alpha_start_function): Pass 0 as third
604         argument to ASM_OUTPUT_SOURCE_LINE.
605         * config/alpha/alpha.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
606         * config/arm/aout.h: Remove useless comment.
607         * config/avr/avr.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
608         * config/i960/i960.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
609         * config/m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
610         Use it instead of 'sym_lineno' but without incrementing it.
611         * config/m68k/hp320.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
612         * config/mcore/mcore-pe.h (ASM_OUTPUT_SOURCE_LINE): Add third
613         parameter. Use it instead of 'sym_lineno' but without incrementing it.
614         * config/mips/mips.c (mips_output_function_prologue): Pass 0 as third
615         argument to ASM_OUTPUT_SOURCE_LINE.
616         * config/mips/mips.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
617         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
618         * config/pa/som.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter.
619         Use it instead of 'sym_lineno' but without incrementing it.
620         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
621         * config/sh/elf.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
622         * config/sparc/aout.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
623         * config/sparc/pbd.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
624         * doc/tm.texi (ASM_OUTPUT_SOURCE_LINE): Document third parameter.
625
626 2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
627
628         * config/mips/mips-protos.h (mips_expand_block_move): Declare.
629         (expand_block_move, output_block_move): Remove.
630         * config/mips/mips.h (enum block_move_type): Remove.
631         * config/mips/mips.c (block_move_call, output_block_move): Remove.
632         (mips_block_move_straight, mips_adjust_block_mem): New function.
633         (mips_block_move_loop): Renamed and reworked from block_move_loop.
634         (mips_expand_block_move): Likewise expand_block_move.  Return false
635         to fall back on the target-independent code.
636         * config/mips/mips.md (movstrsi): Use mips_expand_block_move.
637         (movstrsi_internal*): Remove.
638
639 2003-06-16  Zack Weinberg  <zack@codesourcery.com>
640
641         * cpplib.h, cpphash.h, cppcharset.c, cpperror.c, cppexp.c
642         * cppfiles.c, cpphash.c, cppinit.c, cpplex.c, cpplib.c
643         * cppmacro.c, cpppch.c, cpptrad.c, cppspec.c: Convert to
644         ISO C: new-style function declarations, no need for PARAMS,
645         no special punctuation on indirect function calls, use string
646         constant concatenation where convenient.
647
648 2003-06-17  Andreas Jaeger  <aj@suse.de>
649
650         * rtl.h: Remove declarations from coverage.h.
651         * toplev.c: Include coverage.h.
652         * Makefile.in (toplev.o): Depend on coverage.h.
653
654         * toplev.h: Remove extra declaration of print_time.
655
656         * gengtype.c (close_output_files): Remove duplicated declaration.
657
658 2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
659
660         * config/sparc/sysv4.h: Remove target-independent comment;
661         replace "GNU CC" with "GCC".
662         * config/vxworks.h: Replace "GNU compiler" with "GCC".
663         * config/sparc/aout.h, config/sparc/biarch64.h, config/sparc/elf.h,
664         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
665         config/sparc/lite.h, config/sparc/litecoff.h, config/sparc/liteelf.h,
666         config/sparc/netbsd-elf.h, config/sparc/openbsd.h,
667         config/sparc/rtemself.h, config/sparc/sol2-64.h,
668         config/sparc/sol2-bi.h, config/sparc/sol2-gas-bi.h,
669         config/sparc/sol2-gld-bi.h, config/sparc/sol2-gld.h,
670         config/sparc/sol2.h, config/sparc/sp64-aout.h,
671         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h,
672         config/sparc/sparc-protos.h, config/sparc/sysv4-only.h: Replace
673         "GNU compiler", "GNU CC" with "GCC".
674         * config/sparc/cypress.md, config/sparc/hypersparc.md,
675         config/sparc/sparc-modes.def, config/sparc/sparc.c,
676         config/sparc/sparc.md, config/sparc/sparclet.md,
677         config/sparc/supersparc.md, config/sparc/ultra1_2.md,
678         config/sparc/ultra3.md: Replace "GNU CC", "GNU Compiler", and
679         "GNU C Compiler" with "GCC".
680         * config/ip2k/ip2k.h: Replace "GNU CC" and "GNU compiler" with "GCC".
681
682 2003-06-16  Aldy Hernandez  <aldyh@redhat.com>
683
684         * simplify-rtx.c (simplify_subreg): Do not over-extend vector
685         constants.
686
687         * testsuite/gcc.c-torture/execute/simd-4.c: New.
688
689 2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
690
691         * config/ip2k/ip2k.h: Remove target-independent comments.
692
693         * config.gcc: Explicitly mention elfos.h in ip2k entry.
694         * config/ip2k/ip2k.h: Don't #include it here.
695
696 2003-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
697
698         * bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c,
699         config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c,
700         dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c,
701         function.c, gcc.c, genoutput.c, gensupport.c, global.c,
702         haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c,
703         loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c,
704         read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c,
705         stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use
706         the PTR macro.
707
708         * gengtype.c: Don't use UNION_INIT_ZERO.
709         * system.h (UNION_INIT_ZERO): Delete.
710
711 2003-06-16  Richard Henderson  <rth@redhat.com>
712
713         * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE instead of
714         GET_MODE_UNIT_SIZE when simplifying constant vectors.
715
716 2003-06-16  Andreas Jaeger  <aj@suse.de>
717
718         * timevar.c (get_run_time): Remove function provided also by
719         libiberty.
720         * timevar.h: Remove get_run_time declaration.
721
722 2003-06-16  Kazu Hirata  <kazu@cs.umass.edu>
723
724         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): Remove
725         unreachable code.
726
727 2003-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
728
729         * builtin-attrs.def, builtin-attrs.def, builtins.c, cpplex.c,
730         cpplib.c, gencheck.c, gengenrtl.c, machmode.def, protoize.c: Don't
731         use macros from "symcat.h", instead rely on ISO C.
732
733         * system.h: Don't include "symcat.h".
734         * configure.in (AC_C_STRINGIZE): Delete.
735         * config.in, configure: Regenerate.
736
737 2003-06-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
738
739         * Makefile.in (install-mkheaders): Use INSTALL_SCRIPT for scripts.
740
741         * tree.h (STMT_CHECK): New macro.
742         Also upper-case argument names on all checking macros and
743         fix some whitespace problems; assume CODE argument does not
744         have side-effects.
745
746 2003-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
747
748         * scan.h: Convert to ISO C.
749         * system.h: Likewise.
750
751         * c-format.c (dynamic_format_types): New pointer for dynamic data.
752         (find_length_info_modifier_index, init_dynamic_asm_fprintf_info):
753         New functions split out of...
754         (handle_format_attribute): ...here.
755
756 2003-06-16  J"orn Rennecke <joern.rennecke@superh.com>
757
758         * sh.h (REG_CLASS_FROM_LETTER): Change to:
759         (REG_CLASS_FROM_CONSTRAINT).
760         (CONST_OK_FOR_I): Rename to:
761         (CONST_OK_FOR_I08).  Changed all users.
762         (CONST_OK_FOR_J): Rename to:
763         (CONST_OK_FOR_I16).  Changed all users.
764         (CONST_OK_FOR_K): Rename to:
765         (CONST_OK_FOR_P27).  Changed all users.
766         (CONST_OK_FOR_L): Rename to:
767         (CONST_OK_FOR_K08).  Changed all users.
768         (CONST_OK_FOR_O): Rename to:
769         (CONST_OK_FOR_I06).  Changed all users.
770         (CONST_OK_FOR_P): Rename to:
771         (CONST_OK_FOR_I10).  Changed all users.
772         (CONSTRAINT_LEN, CONST_OK_FOR_I, CONST_OK_FOR_J16): Define.
773         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_P): Likewise.
774         (EXTRA_CONSTRAINT_A, EXTRA_CONSTRAINT_Bsc): Likewise.
775         (EXTRA_CONSTRAINT_B, PIC_OFFSET_P, PIC_DIRECT_ADDR_P): Likewise.
776         (EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C): Likewise.
777         (EXTRA_MEMORY_CONSTRAINT,(EXTRA_CONSTRAINT_Sr0): Likewise.
778         (CONST_OK_FOR_LETTER_P): Replace with
779         (CONST_OK_FOR_CONSTRAINT_P).
780         (EXTRA_CONSTRAINT_S): Rename to:
781         (EXTRA_CONSTRAINT_C16).  Changed all users.
782         (MOVI_SHORI_BASE_OPERAND_P): Don't allow direct addresses.
783         (EXTRA_CONSTRAINT_T): Rename to:
784         (EXTRA_CONSTRAINT_Csy).  Changed all users.
785         (EXTRA_CONSTRAINT_Z): Remove.
786         (EXTRA_CONSTRAINT): Replace with:
787         (EXTRA_CONSTRAINT_STR).
788         (EXTRA_CONSTRAINT_U): Rename to:
789          (EXTRA_CONSTRAINT_Z).  Changed all users.
790         * sh.c (and_operand): Use CONST_OK_FOR_J16.
791         * sh.md (cmpeqsi_t-1, cmpeqsi_t, adddi3_media): Use new constraints.
792         (addsi3_media, addsi3_compact, andsi3_compact, anddi3): Likewise.
793         (iorsi3, iordi3, xorsi3, xordi3, ashlsi3_std, ashlhi3_k): Likewise.
794         (lshrsi3_k, movsi_i, movsi_ie, movsi_i_lowpart, movsi_media): Likewise.
795         (movsi_media_nofpu, movqi_media, movhi_i, movhi_media): Likewise.
796         (*movdi_i, movdi_media, movdi_media_nofpu, shori_media): Likewise.
797         (movdf_media, movdf_media_nofpu, movv2sf_i, movv4sf_i): Likewise.
798         (movsf_media, movsf_media_nofpu, movsi_y, beq_media): Likewise.
799         (beq_media_i, bne_media, pt, ptb, movv8qi_i, movv2hi_i): Likewise.
800         (movv4hi_i, movv2si_i, negcmpeqv8qi, negcmpeqv2si): Likewise.
801         (negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si, negcmpgtv4hi): Likewise.
802         (mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub, mextr_rl, mextr_lr): Likewise.
803         (mextr1, mextr2, mextr3, mextr4, mextr5, mextr6, mextr7): Likewise.
804         (mperm_w, mperm_w_little, mperm_w_big, msad_ubq_i): Likewise.
805         (mshards_q, mshfhi_b, mshflo_b, mshf4_b, mshf0_b, mshfhi_l): Likewise.
806         (mshflo_l, mshf4_l, mshf0_l, mshfhi_w, mshflo_w, mshf4_w): Likewise.
807         (mshf0_w, mshflo_w_x, mshfhi_l_di, mshfhi_l_di_rev): Likewise.
808         (mshflo_l_di_rev, mshflo_l_di_x, concat_v2sf): Likewise.
809         (mshflo_l_di_x_rev, subv2si3, subv4hi3, sssubv2si3): Likewise.
810         (sssubv4hi3): Likewise.
811         (movsf_i): Change I[08]/r to G/r.
812         (movsf_ie): Change f/{G,H}/c/X to f/{G,H}/c/Bsc.
813
814         * sh.c (sh_output_mi_thunk): Use CONST_OK_FOR_ADD.
815
816 2003-06-16  Vladimir Makarov  <vmakarov@redhat.com>
817
818         * config/i386/i386.c (ix86_memory_move_cost): Fix typo.
819
820 2003-06-16  Andreas Jaeger  <aj@suse.de>
821
822         * basic-block.h: Remove duplicate prototype of
823         note_prediction_to_br_prob.
824
825         * tree.h: Remove duplicate prototype of strip_float_extensions.
826
827 2003-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
828
829         * config/c4x/c4x.c: Don't include "c-tree.h".
830         * config/pa/pa.c: Likewise.
831         * langhooks.c: Likewise.
832         * tree.h (poplevel): Declare.
833
834 2003-06-16  Kazu Hirata  <kazu@cs.umass.edu>
835
836         * config/h8300/h8300.c (const_costs): Move this to ...
837         (h8300_rtx_costs): ... here.
838
839 2003-06-16  Roger Sayle  <roger@eyesopen.com>
840
841         * optabs.h (enum optab_index): Add new OTI_tan and OTI_atan.
842         (tan_optab, atan_optab): Define corresponding macros.
843         * optabs.c (init_optabs): Initialize tan_optab and atan_optab.
844         * genopinit.c (optabs): Implement tan_optab and atan_optab
845         using tan?f2 and atan?f2 patterns.
846         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_TAN{,F,L}
847         using tan_optab, and BUILT_IN_ATAN{,F,L} using atan_optab.
848         Change the default value of errno_set to false.
849         (expand_builtin): Expand BUILT_IN_TAN{,F,L} and BUILT_IN_ATAN{,F,L}
850         using expand_builtin_mathfn.
851
852         * config/i386/i386.md (atansf2, atandf2, atanxf2, atantf2): New
853         expander patterns implemented using existing atan2?f3 patterns.
854
855 2003-06-16  Roger Sayle  <roger@eyesopen.com>
856
857         * expr.c (expand_expr <PLUS_EXPR>): If operand_equal_p considers
858         both operands of the addition equal, reuse the expanded RTL.
859         (expand_expr <MULT_EXPR>): Likewise for multiplication.
860
861 2003-06-16  Roger Sayle  <roger@eyesopen.com>
862             Jeff Law  <law@redhat.com>
863
864         * fold-const.c (operand_equal_p): Consider two calls to "const"
865         functions with identical non-volatile arguments to be equal.
866         Consider the FUNCTION_DECL for the "__builtin_foo" form of a
867         built-in function to be equal to the "foo" form.
868
869 2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
870
871         * config/rs6000/sysv4le.h: Remove target-independent comment.
872         Replace "GNU compiler" with "GCC" in comment.
873
874 2003-06-16  Andreas Jaeger  <aj@suse.de>
875
876         * tracer.c: Remove duplicate declaration.
877
878         * toplev.c: Remove extra declaration of decode_d_option.
879
880         * ssa.c: Remove duplicate declaration.
881
882         * sreal.c: Remove extra declaration of dump_sreal.
883
884         * reload1.c: Remove duplicate declarations.
885
886         * integrate.c: Remove extra declaration of
887         set_decl_abstract_flags.
888
889         * flow.c: Remove extra declaration of dump_flow_info.
890
891         * alias.c: Remove extra declaration of get_addr.
892
893 2003-06-16  Nathanael Nerode  <neroden@gcc.gnu.org>
894
895         * config/rtems.h, config/sol2.h, config/svr4.h, config/usegas.h,
896         config/vxworks.h: GNU CC -> GCC.
897
898         * convert.c, dwarf2out.c, dwarfout.c, emit-rtl.c, function.c,
899         lists.c, print-rtl.c, print-tree.c, read-rtl.c, rtl-error.c,
900         stmt.c, toplev.c, integrate.h, loop.h, machmode.h, rtl.h,
901         ssa.h, tree.def: Replace overly specific references to "GNU C"
902         and "GNU C Compiler" with references to "GCC".
903
904 2003-06-16  J"orn Rennecke <joern.rennecke@superh.com>
905
906         * sh.c (prepare_move_operand): Check if operand 0 is an invalid
907         memory reference.  Fix test that checks if operand 1 is using r0.
908         * sh.md (movhi_i): Don't allow st.w r0,@(rX,rY) .
909
910         * defaults.h (REG_CLASS_FROM_CONSTRAINT): Only define if not already
911         defined.
912
913 2003-06-15  Nathan Sidwell  <nathan@codesourcery.com>
914
915         * function.h (struct emit_status): Remove x_last_linenum,
916         x_last_filename. Add x_last_location.
917         * rtl.h: #include "input.h".
918         (NOTE_DATA): New.
919         * cfglayout.c (duplicate_insn_chain): Use emit_line_note for line
920         number notes.
921         * emit-rtl.c (last_linenum, last_filename): Remove.
922         (last_location): New.
923         (emit_line_note_after): LINE must always be >= 0.
924         (emit_line_note): Likewise. Check not duplicate here...
925         (emit_note): ... rather than here.
926         (emit_line_note_force, force_next_line_note, init_emit): Adjust.
927         * integrate.c (expand_inline_function): Use emit_line_note for
928         line number notes.
929         (copy_insn_list): Likewise.
930         * unroll.c (copy_loop_body): Likewise.
931         * Makefile.in (RTL_H): Add input.h.
932
933 2003-06-16  Richard Sandiford  <rsandifo@redhat.com>
934
935         * optabs.c (emit_libcall_block): Don't hoist insns past a label.
936
937 2003-06-16  Richard Henderson  <rth@redhat.com>
938
939         * config/alpha/alpha-protos.h, config/alpha/elf.h,
940         config/alpha/osf.h, config/alpha/unicosmk.h, config/alpha/vms.h,
941         config/alpha/vms-cc.c, config/alpha/vms-ld.c: Update to ISO C.
942         * config/alpha/alpha.c: Likewise.  Move targetm init to end of file.
943         Remove unneeded static function decls.
944
945 2003-06-16  Neil Booth  <neil@daikokuya.co.uk>
946
947         * c-opts.c (c_common_handle_option): s/on/value/.
948         (OPT_fabi_version_, OPT_ftabstop_, OPT_ftemplate_depth_): Use value
949         directly rather than converting the argument.
950         * c.opt: Update docs.  Use UInteger where appropriate.
951         * common.opt: Use UInteger where appropriate.
952         * opts.c (integral_argument): New.
953         (handle_argument): Handle integral arguments, and optional
954         joined arguments.
955         (common_handle_option): Update.
956         * opts.h (CL_MISSING_OK, CL_UINTEGER): New.
957         * opts.sh: Handle JoinedOrMissing and UInteger flags.
958
959 2003-06-16  Neil Booth  <neil@daikokuya.co.uk>
960
961         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Remove
962         unnecessary extern declaration.
963
964 2003-06-15  Nathanael Nerode  <neroden@gcc.gnu.org>
965
966         * config/gofast.h, config/interix.h, config/interix3.h,
967         config/libgloss.h, config/linux-aout.h, config/linux.h,
968         config/lynx-ng.h, config/lynx.h: GNU CC -> GCC.
969         * config/kaos.h: "GNU compiler" -> GCC.
970         * config/linux-aout.h, config/lynx.h: Clarify comment describing file.
971
972         * config/ip2k/crt0.S, config/ip2k/ip2k-protos.h,
973         config/ip2k/ip2k.c, config/ip2k/ip2k.md, config/ip2k/libgcc.S:
974         GNU CC -> GCC.
975
976         * config/svr3.h: Remove #if 0 code, misleading comments.
977         GNU CC -> GCC.
978
979 2003-06-15  Zack Weinberg  <zack@codesourcery.com>
980
981         * vmsdbgout.c (vmsdbgout_finish): Rename parameter to
982         main_input_filename to avoid conflict with input_filename macro.
983
984 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
985
986         * config/mips/mips.h (asm_file_name, g_switch_set,
987         g_switch_value): Remove.
988         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
989         unnecessary extern declarations.
990
991 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
992
993         * config/frv/frv.h: Remove declaration of g_switch_value.
994         * config/m32r/m32r.h: Remove declaration of g_switch_value.
995         * config/m68hc11/m68hc11.c: Remove declaration of asm_file_name.
996
997 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
998
999         * opts.sh: Quote '+' in regex.
1000
1001 2003-06-15  Andrew Pinski <pinskia@physics.uc.edu>
1002
1003         * config/rs6000/t-rs6000: Add dependence of cfglayout.h to rs6000.o.
1004         * config/rs6000/rs6000.c: Include cfglayout.h.
1005         * config/alpha/alpha.c: Likewise.
1006         * config/ia64/ia64.c: Likewise.
1007         * config/sparc/sparc.c: Likewise.
1008         * config/sh/sh.c: Likewise.
1009
1010 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
1011
1012         * opts.sh: Quote '+' in regex.
1013
1014 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
1015
1016         * c-opts.c (lang_flags): Update for new spelling of flags.
1017         (write_langs): Similarly.
1018         * c.opt: Specify languages.
1019         * opts.h: Remove languages.
1020         * opts.sh: Recognise front-end defined languages.
1021         * doc/sourcebuild.texi: Update.
1022
1023 2003-06-15  Andreas Jaeger  <aj@suse.de>
1024
1025         * alloc-pool.c: Convert to ISO C90 prototypes.
1026         * alloc-pool.h: Likewise.
1027         * alias.c: Likewise.
1028         * attribs.c: Likewise.
1029         * bb-reorder.c: Likewise.
1030         * bitmap.h: Likewise.
1031         * bitmap.c: Likewise.
1032         * builtins.c: Likewise.
1033
1034         * tree.h: Convert prototypes of attribs.c to ISO C90.
1035         * basic-block.h: Convert prototypes of bb-reorder.c to ISO C90.
1036         * rtl.h: Convert prototypes of alias.c and builtins.c to ISO C90.
1037         * expr.h: Convert prototypes of builtins.c to ISO C90.
1038
1039 2003-06-15  Roger Sayle  <roger@eyesopen.com>
1040
1041         * config/i386/i386.md (expsf2, expdf2, expxf2): New patterns to
1042         implement exp, expf and expl built-ins as inline x87 intrinsics.
1043         (UNSPEC_FSCALE, UNSPEC_FRNDINT, UNSPEC_F2XM1): New unspecs to
1044         represent x87's fscale, frndint and f2xm1 insns respectively.
1045         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): New insn patterns
1046         to encode x87's "fscale" instruction followed by a pop.
1047         (*frndintxf2): New insn pattern for "frndint".
1048         (*f2xm1xf2): New insn pattern for "f2xm1".
1049
1050         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT and
1051         UNSPEC_F2XM1 like UNSPEC_{SIN,COS} and handle UNSPEC_FSCALE like
1052         UNSPEC_FPATAN.
1053
1054 2003-06-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1055
1056         * gencheck.c (main): Avoid generating duplicate macros.
1057
1058         * Makefile.in (stagefeedback-start): Use $(SUBDIRS) instead of
1059         knowing names of language subdirectories.
1060
1061 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
1062
1063         * c-pch.c (asm_file_name): Remove.
1064         * common.opt: Add more switches.
1065         * flags.h (g_switch_set): Boolify.
1066         * opts.c (g_switch_value, g_switch_set, exit_after_options,
1067         version_flag): Move from toplev.c.
1068         (common_handle_option): Handle more switches from toplev.c.
1069         * toplev.c (display_help, display_target_options, decode_d_option,
1070         print_version): Make non-static, remove prototypes.
1071         (aux_base_name, asm_file_name, aux_info_file_name): Constify.
1072         (version_flag, g_switch_value, g_switch_set, exit_after_options):
1073         Remove.
1074         (independent_decode_option): Move some handlers to opts.c.
1075         * toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
1076         exit_after_options, version_flag, display_help, display_target_options,
1077         print_version, decode_d_option): New.
1078
1079 2003-06-15  Kazu Hirata  <kazu@cs.umass.edu>
1080
1081         * config/alpha/alpha.md: Follow spelling conventions.
1082         * config/arm/arm.c: Likewise.
1083         * config/arm/arm.h: Likewise.
1084         * config/arm/arm.md: Likewise.
1085         * config/arm/crtn.asm: Likewise.
1086         * config/m32r/m32r.c: Likewise.
1087         * config/m32r/m32r.md: Likewise.
1088         * config/rs6000/rs6000.c: Likewise.
1089
1090 2003-06-15  Richard Henderson  <rth@redhat.com>
1091
1092         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
1093         insn_locators_initialize.
1094         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1095         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
1096         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1097         * config/sh/sh.c (sh_output_mi_thunk): Do it later.
1098
1099 2003-06-15  Kazu Hirata  <kazu@cs.umass.edu>
1100
1101         * builtins.c (expand_builtin_expect_jump): Remove redundant
1102         tests that are also in any_condjump_p().
1103
1104 2003-06-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1105
1106         * libgcc2.c: Delete sysV68 L_trampoline section.
1107         * config/m68k/mot3300-crt0.S: Delete file.
1108         * config/m68k/mot3300Mcrt0.S: Likewise.
1109
1110 2003-06-15  Nathanael Nerode  <neroden@gcc.gnu.org>
1111
1112         * config/aoutos.h: Remove.
1113         * config.gcc: Remove reference to aoutos.h.
1114         * config/m68k/m68k-aout.h: Remove reference to aoutos.h.
1115
1116 2003-06-14  Kazu Hirata  <kazu@cs.umass.edu>
1117
1118         * doc/install.texi: Follow spelling conventions.
1119         * doc/tm.texi: Likewise.
1120         * config/fp-bit.c: Likewise.
1121         * config/arm/arm.c: Likewise.
1122         * config/frv/frv.c: Likewise.
1123         * config/ns32k/NOTES: Likewise.
1124         * config/ns32k/STATUS: Likewise.
1125
1126 2003-06-14  Roger Sayle  <roger@eyesopen.com>
1127             Zack Weinberg  <zack@codesourcery.com>
1128
1129         * rtl.h (STORE_FLAG_VALUE): Remove default definition from here.
1130         * defaults.h (STORE_FLAG_VALUE): Move default definition to here.
1131         * doc/tm.texi (STORE_FLAG_VALUE): Document the default value.
1132
1133         * config/alpha/alpha.h (STORE_FLAG_VALUE): Remove definition.
1134         * config/arc/arc.h (STORE_FLAG_VALUE): Likewise.
1135         * config/arm/arm.h (STORE_FLAG_VALUE): Likewise.
1136         * config/cris/cris.h (STORE_FLAG_VALUE): Likewise.
1137         * config/i370/i370.h (STORE_FLAG_VALUE): Likewise.
1138         * config/i386/i386.h (STORE_FLAG_VALUE): Likewise.
1139         * config/i960/i960.h (STORE_FLAG_VALUE): Likewise.
1140         * config/ia64/ia64.h (STORE_FLAG_VALUE): Likewise.
1141         * config/ip2k/ip2k.h (STORE_FLAG_VALUE): Likewise.
1142         * config/m32r/m32r.h (STORE_FLAG_VALUE): Likewise.
1143         * config/mcore/mcore.h (STORE_FLAG_VALUE): Likewise.
1144         * config/mips/mips.h (STORE_FLAG_VALUE): Likewise.
1145         * config/mmix/mmix.h (STORE_FLAG_VALUE): Likewise.
1146         * config/ns32k/ns32k.h (STORE_FLAG_VALUE): Likewise.
1147         * config/pa/pa.h (STORE_FLAG_VALUE): Likewise.
1148         * config/pdp11/pdp11.h (STORE_FLAG_VALUE): Likewise.
1149         * config/sh/sh.h (STORE_FLAG_VALUE): Likewise.
1150         * config/sparc/sparc.h (STORE_FLAG_VALUE): Likewise.
1151         * config/v850/v850.h (STORE_FLAG_VALUE): Likewise.
1152         * config/xtensa/xtensa.h (STORE_FLAG_VALUE): Likewise.
1153
1154 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1155
1156         * opts.sh (POSIXLY_CORRECT): Unset it.
1157
1158         * tree.h (init_function_start): Remove filename and line paramters.
1159         * function.c (init_function_start): Remove filename and line
1160         parameters. Use DECL_SOURCE_LOCATION.
1161         * c-decl.c (store_parm_decls): Adjust init_function_start call.
1162         (c_expand_body_1): Likewise.
1163         * coverage.c (create_coverage): Likewise.
1164         * objc/objc-act.c (build_tmp_function_decl): Set line number to
1165         zero.
1166         (hack_method_prototype): Adjust init_function_start call.
1167
1168 2003-06-14  Richard Earnshaw  <rearnsha@arm.com>
1169
1170         PR target/3724
1171         * arm/linux-elf.h (PROFILE_HOOK): Define.
1172
1173 2003-06-14  Richard Earnshaw  <rearnsha@arm.com>
1174
1175         PR target/11183
1176         * arm.h (CANNOT_CHANGE_MODE_CLASS): Define.
1177
1178 2003-06-14  Roger Sayle  <roger@eyesopen.com>
1179
1180         * opts.sh: Work around a mysterious feature in cygwin's gawk
1181         where specifying the input files explicitly has a different
1182         behavior to piping them via stdin.
1183
1184 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
1185
1186         * doc/sourcebuild.texi: Update.
1187
1188 2003-06-14  Richard Earnshaw  <rearnsha@arm.com>
1189
1190         PR target/11183
1191         * arm.c (output_move_double): Pass SImode to adjust_address.
1192
1193 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
1194
1195         * Makefile.in: Update to use common.opt and lang_opt_files.
1196         (c-options.c, c-options.h): Remove.
1197         (options.c, options.h): Add.
1198         * c-opts.c: Include options.h not c-options.h.
1199         * common.opt: New file.
1200         * configure, configure.in: Add lang_opt_files.
1201         * opts.c: Include flags.h and diagnostic.h.
1202         (common_handle_option): New.
1203         (handle_option): Update to recognize common options and all
1204         language-dependent options.
1205         * opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New.
1206         (struct cl_option): Make flags of type int.
1207         * opts.h: Flag option with front ends to which it applies.
1208         Handle duplicate options.
1209         * toplev.c (filename): Remove.
1210         (independent_decode_option): Don't handle filenames and -quiet.
1211         (process_options, do_compile): Update.
1212
1213 2003-06-14  Nick Clifton  <nickc@redhat.com>
1214
1215         * doc/install.texi (Specific): Add description of different
1216         ARM supported file format targets.
1217
1218 Sat Jun 14 11:12:04 CEST 2003  Jan Hubicka  <jh@suse.cz>
1219
1220         * reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators
1221         inside delay slots.
1222
1223 2003-06-13  Matt Kraai  <kraai@alumni.cmu.edu>
1224
1225         * unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE.
1226         * unwind-pe.h (size_of_encoded_value): Do not define if
1227         NO_SIZE_OF_ENCODED_VALUE is defined.
1228
1229 2003-06-13  Roger Sayle  <roger@eyesopen.com>
1230
1231         * expr.c (expand_expr <COMPLEX_CST>): Handle the case of
1232         expanding a complex constant into a CONCAT target.
1233
1234 2003-06-13  Zack Weinberg  <zack@codesourcery.com>
1235
1236         * config/svr3.h (ASM_FILE_START): Don't use ASM_FILE_START_1.
1237         (ASM_FILE_START_1): Delete.
1238         * config/i386/att.h, config/i386/sco5.h,
1239         config/i386/sysv3.h
1240         (ASM_FILE_START_1): Delete.
1241
1242 2003-06-13  Kelley Cook  <kelleycook@wideopenwest.com>
1243
1244         * config/i386/bsd.h: Remove ASM_FILE_START.
1245         * config/i386/djgpp.h: Likewise.
1246         * config/i386/gas.h (ASM_FILE_START): Output .file before .intel_syntax.
1247
1248         * config/i386/djgpp.h: Move included unix.h, bsd.h, gas.h to ...
1249         * config.gcc (i[34567]86-pc-msdosdjgpp): ... here.
1250
1251 2003-06-13  Vladimir Makarov  <vmakarov@redhat.com>
1252
1253         PR bootstrap/10835
1254         * haifa-sched.c (max_lookahead_tries,
1255         cached_first_cycle_multipass_dfa_lookahead,
1256         cached_issue_rate): New variables.
1257         (max_issue): Check the number of tries.
1258         (choose_ready): Calculate max_lookahead_tries.
1259         (sched_init): Check cached_issue_rate.
1260
1261 2003-06-13  Richard Henderson  <rth@redhat.com>
1262
1263         * cfgbuild.c (make_edges): Set ABNORMAL with SIBCALL.
1264         * cfgrtl.c (purge_dead_edges): Expect it too.
1265
1266 2003-06-13  Jim Wilson  <wilson@tuliptree.org>
1267             Eric Botcazou  <ebotcazou@libertysurf.fr>
1268
1269         PR bootstrap/10983
1270         * combine.c (make_extraction): Use gen_lowpart_for_combine
1271         when extracting from a REG and not in the destination of a SET.
1272
1273 2003-06-13  Doug Evans  <dje@sebabeach.org>
1274
1275         * tsystem.h (abort): Declare in inhibit_libc case to remove build
1276         warnings for addvsi3, et.al.
1277
1278 2003-06-13  Aldy Hernandez  <aldyh@redhat.com>
1279
1280         * c-common.c (handle_mode_attribute): Use VECTOR_MODE_P macro.
1281
1282         * simplify-rtx.c (simplify_subreg): Same.
1283
1284         * emit-rtl.c (gen_lowpart_common): Same.
1285
1286 2003-06-13  Kazu Hirata  <kazu@cs.umass.edu>
1287
1288         * builtins.c: Fix comment typos.
1289         * fold-const.c: Likewise.
1290
1291 2003-06-13  Doug Evans  <dje@sebabeach.org>
1292             Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1293
1294         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Declare.
1295         * config/m32r/m32r.c (m32r_pass_by_reference): New fn.
1296         (m32r_va_arg): Use it.
1297         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Ditto.
1298         (RETURN_IN_MEMORY): Ditto.
1299
1300 2003-06-13  Nathanael Nerode  <neroden@gcc.gnu.org>
1301
1302         * c-typeck.c: Remove #if 0 clauses.
1303
1304         PR other/1494
1305         * config/alpha/openbsd.h, config/i386/openbsd.h,
1306         config/m68k/openbsd.h, config/sparc/openbsd.h: Remove
1307         residual reference to EGCS.
1308
1309 2003-06-13  Richard Earnshaw  <rearnsha@arm.com>
1310
1311         * arm.c (output_call_mem): If the address references the link-register
1312         use an instruction sequence that avoids early-clobbering IP.
1313         (eliminate_lr2ip): Delete.
1314
1315 2003-06-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1316
1317         * c-format.c (format_types_orig): Disallow '*' width/precision in
1318         asm_fprintf format checks.
1319
1320 2003-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
1321
1322         * config/s390/s390.c (s390_va_arg): Fix alignment when retrieving
1323         non-integral types from integer register save area slots.
1324
1325 2003-06-13  Nathanael Nerode  <neroden@gcc.gnu.org>
1326
1327         * config/i386/svr3dbx.h: GNU CC -> GCC; Intel 385 -> Intel 386.
1328
1329 2003-06-13  Florian Weimer  <fw@deneb.enyo.de>
1330
1331         * doc/invoke.texi (SPARC Options): Document ``-mimpure-text''.
1332
1333 2003-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1334
1335         * config/sh/linux.h (TARGET_ASM_FILE_END): Set TARGET_ASM_FILE_END
1336         to file_end_indicate_exec_stack.
1337
1338 2003-06-12  Richard Henderson  <rth@redhat.com>
1339
1340         PR target/11089
1341         * config/i386/i386.md (sse_movaps): Use an expander to force
1342         one operand to be a register.
1343         (sse_movups): Likewise.
1344
1345 2003-06-13  Doug Evans  <dje@sebabeach.org>
1346
1347         Remove some build warnings.
1348         * config/m32r/initfini.c (__CTOR_LIST__,__DTOR_LIST__): Attribute used.
1349         (__do_global_ctors,__do_global_dtors): Ditto.
1350
1351 2003-06-12  Richard Henderson  <rth@redhat.com>
1352
1353         PR middle-end/10557
1354         * rtlanal.c (subreg_offset_representable_p): Relax subreg check.
1355
1356 2003-06-13  Kazu Hirata  <kazu@cs.umass.edu>
1357
1358         * config/m32r/m32r.md: Fix a comment typo.
1359
1360 2003-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1361             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
1362
1363         PR target/10142
1364         * config/sparc/sparc.c (function_arg_record_value_parms): Add
1365         new 'stack' field.
1366         (function_arg_record_value_1): Set 'stack' to 1 if we run out of
1367         integer slots for an integer field.
1368         (function_arg_record_value_3): Shift vector index.
1369         (function_arg_record_value_2): Likewise.
1370         (function_arg_record_value): Initialize 'stack' to 0.
1371         Set 'stack' to 1 if we run out of integer slots for an integer field.
1372         Generate (parallel [(expr_list (nil) ...) ...]) if 'stack' is set to 1.
1373
1374 2003-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1375
1376         PR optimization/10955
1377         * unroll.c (unroll_loop): Fix off-by-one bug.
1378
1379 2003-06-12  Aldy Hernandez  <aldyh@redhat.com>
1380
1381         * config/rs6000/rs6000.c (function_arg): Remove typo.
1382
1383 2003-06-12  Richard Henderson  <rth@redhat.com>
1384
1385         * config/i386/i386.c (legitimate_constant_p): Handle UNSPEC_NTPOFF
1386         and UNSPEC_DTPOFF.
1387
1388 2003-06-12  Richard Henderson  <rth@redhat.com>
1389
1390         PR middle-end/10475
1391         * expmed.c (emit_store_flag): Use simplify_gen_subreg directly
1392         for extracting sub-words.
1393
1394 2003-06-12  Richard Henderson  <rth@redhat.com>
1395
1396         PR target/7594
1397         * config/m68k/m68k.md (zero_extendhisi2): Use gen_lowpart_SUBREG.
1398         (zero_extendqihi2, zero_extendqisi2): Likewise.
1399
1400 2003-06-12  Aldy Hernandez  <aldyh@redhat.com>
1401
1402         * config/rs6000/rs6000.c (function_arg): Always split vectors for
1403         e500 if it's a stdarg function.
1404         (function_arg_advance): Advance 2 registers for vectors in a
1405         stdarg function.
1406         (init_cumulative_args): Initialize stdarg.
1407         (rs6000_spe_function_arg): New.
1408
1409         * config/rs6000/rs6000.h (rs6000_args): Add stdarg.
1410
1411 2003-06-12  Aldy Hernandez  <aldyh@redhat.com>
1412
1413         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Add SPE vectors.
1414
1415 2003-06-12  Roger Sayle  <roger@eyesopen.com>
1416
1417         PR middle-end/168
1418         * fold-const.c (tree_expr_nonnegative_p):  Handle addition
1419         and multiplication of zero extensions, floating point division,
1420         and integer<->fp, fp<->fp and zero extension conversions.
1421         The built-in ceil and floor functions preserve signedness.
1422
1423 2003-06-12  Kazu Hirata  <kazu@cs.umass.edu>
1424
1425         * ChangeLog: Follow spelling conventions.
1426         * ChangeLog.2: Likewise.
1427         * c-decl.c: Likewise.
1428         * cfgloop.h: Likewise.
1429         * cgraph.c: Likewise.
1430         * coverage.c: Likewise.
1431         * cppcharset.c: Likewise.
1432         * cpphash.h: Likewise.
1433         * cpplex.c: Likewise.
1434         * cpplib.c: Likewise.
1435         * dbxout.c: Likewise.
1436         * df.c: Likewise.
1437         * dwarf2out.c: Likewise.
1438         * dwarfout.c: Likewise.
1439         * emit-rtl.c: Likewise.
1440         * explow.c: Likewise.
1441         * gcov-io.c: Likewise.
1442         * gcov-io.h: Likewise.
1443         * gcov.c: Likewise.
1444         * gengtype.c: Likewise.
1445         * ggc.h: Likewise.
1446         * opts.c: Likewise.
1447         * real.c: Likewise.
1448         * reload.c: Likewise.
1449         * stmt.c: Likewise.
1450
1451 2003-06-12  Janis Johnson  <janis187@us.ibm.com>
1452
1453         * doc/install.texi (m32r-*-elf): Change company to Renesas.
1454
1455 Thu Jun 12 20:00:55 CEST 2003  Jan Hubicka  <jh@suse.cz>
1456
1457         * basic-block.h (flow_delete_block_noexpunge): Kill.
1458         * cfgrtl.c (flow_delete_block_noexpunge): Merge to
1459         rtl_delete_block.
1460
1461 2003-06-10  Richard Henderson  <rth@redhat.com>
1462
1463         PR inline-asm/4823
1464         * reg-stack.c (any_malformed_asm): New.
1465         (check_asm_stack_operands): Set it.
1466         (convert_regs_1): Check it before aborting.
1467
1468 2003-06-12  Aldy Hernandez  <aldyh@redhat.com>
1469
1470         * config/rs6000/spe.md: Change all clobbers of the accumulator to sets.
1471
1472 2003-06-12  Jakub Jelinek  <jakub@redhat.com>
1473
1474         * c-opts.c (complain_wrong_lang): Add on argument.
1475         Print no- switch if on is false.
1476         (c_common_decode_option): Adjust caller.
1477
1478 2003-06-12  Ulrich Weigand  <uweigand@de.ibm.com>
1479
1480         * config/s390/s390.c (s390_emit_prologue): Use LA instead of AR
1481         to initialize GOT register.
1482
1483 2003-06-12  Roger Sayle  <roger@eyesopen.com>
1484
1485         * fold-const.c (tree_expr_nonnegative_p): Add support for
1486         floating point constants, addition and multiplication.
1487
1488 2003-06-12  J"orn Rennecke <joern.rennecke@superh.com>
1489
1490         * sh.md (adddi3_compact, subdi3_compact): Add earlyclobber
1491         constraint modifier for operand 0.
1492
1493 2003-06-12  Hans-Peter Nilsson  <hp@axis.com>
1494
1495         Don't warn on dollars in builtin macro definitions,
1496         e.g. __REGISTER_PREFIX__.
1497         * cpphash.h (struct cpp_reader): Move member warn_dollars...
1498         * cpplib.h (struct cpp_options): ...to here.  Change type to
1499         unsigned char.
1500         * cppinit.c (cpp_create_reader): Set it to 1 here.
1501         (post_options): Don't set it here.
1502         * c-opts.c (c_common_init_options): Reset it to 0 here.
1503         (finish_options): Set it here.
1504         * cpplex.c (forms_identifier_p): Tweak for new location of
1505         warn_dollars.
1506
1507         * configure.in (assembler dwarf2 debug_line support): Define insn
1508         for cris-*-* and mmix-*-*.
1509         * configure: Regenerate.
1510
1511 2003-06-11  Uwe Stieber  <uwe@kaos-group.de>
1512
1513         * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*,
1514         powerpcle-*-kaos*, strongarm-*-kaos*): New targets.
1515         (sh-*-elf*): Add sh*-*-kaos* support.
1516         * config/kaos.h, config/arm/kaos-strongarm.h, config/arm/kaos-arm.h,
1517         config/i386/kaos-i386.h, config/rs6000/kaos-ppc.h,
1518         config/sh/kaos-sh.h: New files.
1519
1520 2003-06-12  Kazu Hirata  <kazu@cs.umass.edu>
1521
1522         * gcse.c (fis_get_condition): Make it a global function.
1523         * reload1.c (reload_cse_move2add): Detect implicit sets.
1524         * rtl.h: Add a prototype for fis_get_condition.
1525
1526 2003-06-11  Richard Henderson  <rth@redhat.com>
1527
1528         * stmt.c (expand_asm_operands): Don't warn for memories with
1529         queued addresses.
1530
1531 2003-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1532
1533         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Rewrite without
1534         brackets.
1535
1536 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
1537
1538         * hooks.c (hook_int_size_t_constcharptr_int_0): New.
1539         * hooks.h (hook_int_size_t_constcharptr_int_0): New.
1540         * langhooks-def.h (lhd_decode_option, LANG_HOOKS_DECODE_OPTION): Die.
1541         (LANG_HOOKS_HANDLE_OPTION, LANG_HOOKS_INITIALIZER): Update.
1542         * langhooks.c (lhd_decode_option): Remove.
1543         * langhooks.h (struct lang_hooks): Remove decode_option.
1544         * opts.c (handle_option): No longer use decode_option.
1545
1546 2003-06-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1547
1548         * cfgloopanal.c (variable_initial_value): Update the set of altered
1549         registers correctly.
1550
1551 2003-06-11  Roger Sayle  <roger@eyesopen.com>
1552             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1553
1554         * config/d30v/d30v.h: Delete reference to ASM_FINAL_SPEC.
1555         * config/i386/netbsd-elf.h: Likewise.
1556         * config/m32r/m32r.h: Likewise.
1557         * config/mn10300/mn10300.h: Likewise.
1558         * config/stormy16/stormy16.h: Likewise.
1559         * config/v850/v850.h: Likewise.
1560         * config/vax/netbsd-elf.h: Likewise.
1561         * config/xtensa/elf.h: Likewise.
1562         * config/xtensa/linux.h: Likewise.
1563
1564 2003-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1565
1566         * config/mips/iris5gas.h (MDEBUG_ASM_SPEC): Override to match
1567         DWARF 2 default.
1568
1569         * config/mips/dbxmdebug.h: New file.
1570         * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it with
1571         gas and --with-stabs.
1572
1573 2003-06-11  Ulrich Weigand  <uweigand@de.ibm.com>
1574
1575         * expr.c (can_move_by_pieces): align argument may be unused.
1576
1577 2003-06-11  J"orn Rennecke <joern.rennecke@superh.com>
1578
1579         * expr.c (convert_move): Handle moves between two CONCATs.
1580
1581 2003-06-11  Kazu Hirata  <kazu@cs.umass.edu>
1582
1583         * config/h8300/h8300.h (RETURN_IN_MEMORY): Accept DImode if
1584         !TARGET_H8300.
1585
1586 2003-06-11  Kazu Hirata  <kazu@cs.umass.edu>
1587
1588         * config/h8300/h8300.c (final_prescan_insn): Don't dump rtl.
1589         * config/h8300/h8300.h (MASK_RTL_DUMP): Remove.
1590         (TARGET_RTL_DUMP): Likewise.
1591         (TARGET_SWITHCES): Remove -mrtl-dump.
1592
1593 2003-06-10  Richard Henderson  <rth@redhat.com>
1594
1595         * optabs.c (gen_cond_trap): Fix prepare_operand typo.
1596
1597 2003-06-10  Richard Henderson  <rth@redhat.com>
1598
1599         * config/ia64/ia64.md (call_gp): Fix memory mode.
1600
1601 2003-06-10  James E Wilson  <wilson@tuliptree.org>
1602
1603         PR target/8812
1604         * reload1.c (choose_reload_regs): For equiv reg, add loop over all
1605         hard regs for reload_reg_used_at_all and reg_class_contents checks.
1606
1607 2003-06-10  Kazu Hirata  <kazu@cs.umass.edu>
1608
1609         * config/h8300/h8300.c (print_operand): Remove support for
1610         operand character 'b'.
1611         Add the AND case to operand character 'c'.
1612         * config/h8300/h8300.md (two anonymous patterns): Replace
1613         operand character 'b' with 'c'.
1614
1615 2003-06-10  Kazu Hirata  <kazu@cs.umass.edu>
1616
1617         * config/h8300/h8300.c (print_operand): Remove support for
1618         operand character 'u'.
1619
1620 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
1621
1622         * configure.in: Fix typo.
1623         * configure: Regenerate.
1624
1625 2003-06-10  Loren James Rittle  <ljrittle@acm.org>
1626
1627         * config/alpha/alpha.c (unicosmk_file_end): Add conditional
1628         compilation guard.
1629
1630 2003-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1631
1632         * sh-protos.h (function_symbol): Declare.
1633         * sh.c (expand_block_move, expand_ashiftrt): Use it.
1634         (sh_expand_prologue, sh_expand_epilogue): Likewise.
1635         (sh_initialize_trampoline): Likewise.
1636         (function_symbol): New function.
1637         * sh.md (udivsi3, divsi3, mulsi3, ic_invalidate_line): Use it.
1638         (initialize_trampoline, call, call_pop, call_value, sibcall): Likewise.
1639         (call_value_pop, shcompact_return_tramp): Likewise.
1640
1641         * sh.h (OVERRIDE_OPTIONS): Don't suppress --profile-arc-flag.
1642
1643         * sh.md (GOTaddr2picreg): Use gen_lowpart to get lowpart of
1644         target register.
1645
1646 2003-06-10  DJ Delorie  <dj@redhat.com>
1647
1648         * doc/md.texi (Machine Constraints): Document stormy's Z
1649         constraint.
1650
1651 2003-06-10  Geoffrey Keating  <geoffk@apple.com>
1652
1653         * except.c (call_site_base): Mark with GTY.
1654
1655 2003-06-10  Richard Earnshaw  <rearnsha@arm.com>
1656
1657         * arm-proto.h: Convert to ISO C90 prototypes.
1658         * arm.c: Likewise.
1659
1660 2003-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1661
1662         * sh.c (sh_output_mi_thunk): Call insn_locators_initialize.
1663
1664 2003-06-10  Steve Ellcey  <sje@cup.hp.com>
1665
1666         * calls.c (expand_call): Convert structure_value_addr to Pmode if
1667         necessary.
1668
1669 2003-06-10  Andrew Haley  <aph@redhat.com>
1670
1671         * langhooks-def.h (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
1672         (LANG_HOOKS_DECLS): Add LANG_HOOKS_DECL_OK_FOR_SIBCALL.
1673         (lhd_decl_ok_for_sibcall): New.
1674         * langhooks.c (lhd_decl_ok_for_sibcall): New.
1675         * langhooks.h (lang_hooks_for_decls.ok_for_sibcall): New field.
1676         * calls.c (expand_call): Check lang_hook before generating a
1677         sibcall.
1678
1679 2003-06-10  DJ Delorie  <dj@redhat.com>
1680
1681         * config/stormy16/stormy16.c (xstormy16_extra_constraint_p): Add Z,
1682         which matches (const_int 0) for addhi3.
1683         * config/stormy16/stormy16.md: Document known constraints.
1684         (addhi3): Handle adding zero.
1685
1686 2003-06-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1687
1688         * config/m32r/m32r.h (HARD_REGNO_RENAME_OK): New.
1689         * config/m32r/m32r.c (m32r_hard_regno_rename_ok): New.
1690         * config/m32r/m32r-protos.h: Prototype it.
1691
1692 2003-06-10  Janis Johnson  <janis187@us.ibm.com>
1693
1694         * config/rs6000/eabi.h (TARGET_OS_CPP_BUILTINS): Define builtins
1695         common to rs6000 sysv targets.
1696         * config/rs6000/eabisim.h (TARGET_OS_CPP_BUILTINS): Ditto.
1697         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Ditto.
1698
1699 2003-06-10  Nick Clifton  <nickc@redhat.com>
1700
1701         * config.gcc: Add arm-wince-pe target.
1702         * config/arm/pe.h (MULTILIB_DEFAULTS): Define.
1703         Add comment about default apcs26 support.
1704         * config/arm/t-pe (MULTILIB_OPTIONS): Add an -mapcs-32
1705         multilib.
1706         (MULTILIB_DIRNAMES): Add 'apcs32'.
1707         * config/arm/t-wince-pe: New makefile fragment.
1708         * config/arm/wince-pe.h: New file.  Overrides a few definitions
1709         in arm/pe.h
1710
1711 2003-06-10  Roger Sayle  <roger@eyesopen.com>
1712
1713         * builtins.c (fold_builtin): Optimize cos(-x) as cos(x).
1714         * fold-const.c (fold <NEGATE_EXPR>): Convert -f(x) into f(-x)
1715         when x is easily negated and f is sin, tan or atan.
1716         (fold <MULT_EXPR>): Optimize tan(x)*cos(x) and cos(x)*tan(x) as
1717         sin(x) with flag_unsafe_math_optimizations.
1718         (fold <RDIV_EXPR>): With flag_unsafe_math_optimizations fold
1719         sin(x)/cos(x) as tan(x) and cos(x)/sin(x) as 1.0/tan(x).
1720
1721 2003-06-10  Roger Sayle  <roger@eyesopen.com>
1722
1723         * fold-const.c (fold <EQ_EXPR>):  Don't fold x == x only if x
1724         is a floating point type *and* we currently honor NaNs.
1725         (fold <NE_EXPR>): Likewise.
1726
1727 2003-06-10  Mark Mitchell  <mark@codesourcery.com>
1728
1729         PR c++/11131
1730         * tree-inline.c (inlinable_function_p): Call the language-specific
1731         hook early.
1732
1733 2003-06-09  David Taylor  <dtaylor@emc.com>
1734
1735         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_va_arg):  Skip over
1736         the f_res field.
1737
1738 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
1739
1740         * configure.in: Remove references to host_truncate_target.
1741         * configure: Regenerate.
1742         * config.gcc: Remove references to truncate_target,
1743         host_truncate_target.
1744
1745         * Makefile.in, configure.in, config/m68hc11/t-m68hc11-gas:
1746         Replace "build_canonical" with build, "host_canonical" with host.
1747         * configure.in: Use GCC_TOPLEV_SUBDIRS.
1748         * aclocal.m4: Include ../config/acx.m4.
1749         * configure: Regenerate.
1750
1751 2003-06-09  David Taylor  <dtaylor@emc.com>
1752
1753         * config/rs6000/rs6000.c (rs6000_build_va_list): Give the two
1754         bytes of padding in the __va_list_tag structure a name (reserved).
1755
1756 2003-06-09  Jason Merrill  <jason@redhat.com>
1757
1758         * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR.
1759
1760 2003-06-09  Osku Salerma  <osku@iki.fi>
1761
1762         * c-format.c (check_format_string, get_constant): New.
1763         (handle_format_attribute, handle_format_arg_attribute,
1764         decode_format_attr): Change to use above functions.
1765
1766 2003-06-09  Richard Henderson  <rth@redhat.com>
1767
1768         * stmt.c (expand_asm_operands): Re-word warning.
1769
1770 2003-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1771
1772         PR target/8787
1773         * config/i386/djgpp.h (ASM_FILE_START): emit `.intel_syntax'
1774         if -masm=intel.
1775
1776 2003-06-09  James E Wilson  <wilson@tuliptree.org>
1777
1778         * config/frv/cmovc.c, config/frv/cmovh.c, config/frv/cmovw.c,
1779         config/frv/frvbegin.c, config/frv/frvend.c, config/frv/lib1funcs.asm:
1780         Add libgcc exception.
1781
1782 2003-06-09  David Edelsohn  <edelsohn@gnu.org>
1783             Ayal Zaks  <gcchaifa@us.ibm.com>
1784
1785         * config/rs6000/rs6000.md (define_attr "type"): Add insert_word.
1786         (insvsi*): Add insert_word attribute.
1787         * config/rs6000/rs6000.c (rs6000_variable_issue): Add TYPE_INSERT_WORD.
1788         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
1789         power4.md,rios1.md,rios2.md,rs64.md}: Add insert_word.
1790
1791 2003-06-09  Kazu Hirata  <kazu@cs.umass.edu>
1792
1793         * fold-const.c (fold): Fix a comment typo.
1794
1795 2003-06-09  Nathan Sidwell  <nathan@codesourcery.com>
1796
1797         * tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is
1798         removed.
1799
1800 2003-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1801
1802         * sh.c (gen_block_redirect): Use locators.
1803
1804 2003-06-09  Richard Earnshaw  <rearnsha@arm.com>
1805
1806         * arm.h (THUMB_PRINT_OPERAND_ADDRESS): Use %wd in format and remove
1807         cast to int.
1808
1809 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
1810
1811         * configure.in: Assume gas 2.14 and above can handle MIPS relocation
1812         operators.
1813         * configure: Regenerated.
1814
1815 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
1816             Alexandre Oliva  <aoliva@redhat.com>
1817
1818         * config/mips/mips.h (GLOBAL_POINTER_REGNUM): New macro.
1819         (PIC_OFFSET_TABLE_REGNUM): Look at pic_offset_table_rtx after reload.
1820         (STARTING_FRAME_OFFSET): Don't allocate a cprestore slot for
1821         n32/64 PIC.
1822         (MUST_SAVE_REGISTERS): Delete.
1823         * config/mips/mips.c (mips_frame_info): Remove extra_size field.
1824         (machine_function): Add global_pointer field.
1825         (mips_classify_constant): Check for (const $gp) using pointer equality
1826         with pic_offset_table_rtx.
1827         (mips_classify_constant): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO.
1828         (mips_restore_gp): Use current_function_outgoing_args_size.
1829         (print_operand): Use PIC_OFFSET_TABLE_REGNUM instead of
1830         GP_REG_FIRST + 28.  Handle relocation strings that have
1831         more than one '('.
1832         (mips_reloc_string): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO.
1833         (mips_global_pointer): New function.
1834         (mips_save_reg_p): New function, mostly split out from...
1835         (compute_frame_size): ...here.  Remove handling of extra_size.
1836         Reclaim args_size if no variables depend on it.  Don't treat gp
1837         as a special case: handle it in the main GPR loop.
1838         (mips_initial_elimination_offset): Fix comment.
1839         (save_restore_insns): Save every register in the GPR mask,
1840         removing distinction between mask and real_mask.
1841         (mips_output_function_prologue): Update .frame psuedo-op after
1842         the removal of extra_size.  Move the SVR4 PIC stack allocation
1843         and cprestore instructions to mips_expand_prologue.
1844         (mips_gp_insn): New function.
1845         (mips_expand_prologue): Set REGNO (pic_offset_table_rtx) to
1846         the chosen global pointer.  Handle SVR4 PIC stack allocation
1847         in the same way as other ABIs.  Adjust varargs code accordingly.
1848         Emit a cprestore insn after allocating the stack.  Use mips_gp_insn
1849         to emit the loadgp sequence.  Follow it with a loadgp_blockage
1850         if not using explicit relocs.
1851         (mips_output_function_epilogue): Reinstate the default gp register.
1852         (mips16_gp_pseudo_reg): Use pic_offset_table_rtx.
1853         (mips16_optimize_gp): Likewise.
1854         * config/mips/mips.md (UNSPEC_LOADGP): Remove.
1855         (UNSPEC_SETJMP, UNSPEC_LONGJMP): Remove.
1856         (UNSPEC_CPRESTORE, RELOC_LOADGP_HI, RELOC_LOADGP_LO): New.
1857         (loadgp): Remove.
1858         (loadgp_blockage, cprestore): New instructions.
1859         (builtin_setjmp_setup): Implement using emit_move_insn.  Use
1860         pic_offset_table_rtx.
1861         (builtin_setjmp_setup_32, builtin_setjmp_setup_64): Remove.
1862         (builtin_longjmp): Use gen_raw_REG to force use of $28.
1863
1864 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
1865
1866         * config/mips/mips-protos.h (mips_output_division): Declare.
1867         * config/mips/mips.h (MASK_CHECK_RANGE_DIV): Remove.
1868         (MASK_BRANCHLIKELY): Use MASK_CHECK_RANGE_DIV's old number.
1869         (TARGET_NO_CHECK_ZERO_DIV, TARGET_CHECK_RANGE_DIV): Remove.
1870         (TARGET_CHECK_ZERO_DIV): New macro.
1871         (TARGET_SWITCHES): Remove -mcheck-range-div & -mno-check-range-div.
1872         * config/mips/mips.c (mips_output_division): New function.
1873         * config/mips/mips.md (length): Take TARGET_CHECK_ZERO_DIV into
1874         account when calculating the default length of a division.
1875         (divmodsi4, divmoddi4, udivmodsi4, udivmoddi4): Turn into define_insns.
1876         Enable regardless of optimization level.  Use mips_output_division.
1877         (divmodsi4_internal, divmoddi4_internal, udivmodsi4_internal,
1878         udivmoddi4_internal, div_trap, div_trap_normal, div_trap_mips16,
1879         divsi3, divsi3_internal, divdi3, divdi3_internal, modsi3,
1880         modsi3_internal, moddi3, moddi3_internal, udivsi3, udivsi3_internal,
1881         udivdi3, udivdi3_internal, umodsi3, umodsi3_internal, umoddi3,
1882         umoddi3_internal): Remove.
1883
1884 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
1885
1886         * config/mips/mips.c (mips_reg_names): Change hilo entry to "".
1887         (mips_sw_reg_names): Likewise.
1888         (mips_regno_to_class): Change hilo entry to NO_REGS.
1889         (hilo_operand): Use MD_REG_P.
1890         (extend_operator): New predicate.
1891         (override_options): Remove 'a' constraint.
1892         (mips_secondary_reload_class): Remove hilo handling.  Also remove
1893         handling of (plus sp reg) reloads for mips16.
1894         (mips_register_move_cost): Remove hilo handling.
1895         * config/mips/mips.h (FIXED_REGISTERS): Make hilo entry fixed.
1896         (MD_REG_LAST): Remove hilo from range.
1897         (HILO_REGNUM): Delete.
1898         (reg_class): Remove HILO_REG and HILO_AND_GR_REGS.
1899         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1900         (PREDICATE_CODES): Add entry for extend_operator.
1901         (DEBUG_REGISTER_NAMES): Change hilo entry to "".
1902         * config/mips/mips.md: Remove hilo clobbers wherever they occur.
1903         Remove constraints from multiplication define_expands.  Remove
1904         clobbers from "decorative" define_expand patterns.
1905         (UNSPEC_HILO_DELAY): Delete.
1906         (*mul_acc_si, *mul_sub_si): Add early-clobber to operand 6.
1907         (mulsidi3, umulsidi3): Change pattern to match the TARGET_64BIT case.
1908         Adjust C code to just emit insns for !TARGET_64BIT.
1909         (mulsidi3_internal): Rename to mulsidi3_32bit.
1910         (mulsidi3_64bit): Use a "d" constraint for the destination.
1911         Use extend_operator so that the pattern can handle umulsidi3 as well.
1912         Split the instruction after reload.
1913         (*mulsidi3_64bit_parts): New pattern, generated by mulsidi3_64bit.
1914         (umulsidi3_internal): Rename to umulsidi3_32bit.
1915         (umulsidi3_64bit): Remove.
1916         (*smsac_di, *umsac_di): Line-wrap fixes.
1917         (udivsi3_internal): Don't allow operand 2 to be constant.
1918         (udivdi3_internal, umodsi3_internal, umoddi3_internal): Likewise.
1919         (movdi_internal2, movsi_internal): Remove hilo alternatives.
1920         (reload_in[sd]i, reload_out[sd]i, hilo_delay): Remove.
1921
1922 2003-06-09  Richard Sandiford  <rsandifo@redhat.com>
1923
1924         PR target/10913
1925         * config/mips/mips.h (TARGET_FILE_SWITCHING, NO_DBX_FUNCTION_END,
1926         PUT_SDB_SCL, PUT_SDB_INT_VAL, PUT_SDB_VAL, PUT_SDB_ENDEF,
1927         PUT_SDB_TYPE, PUT_SDB_SIZE, PUT_SDB_DIM, PUT_SDB_START_DIM,
1928         PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM, PUT_SDB_TAG, PUT_SDB_SRC_FILE,
1929         SDB_GENERATE_FAKE, TEXT_SECTION): Delete.
1930         (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF, PUT_SDB_BLOCK_START,
1931         PUT_SDB_BLOCK_END, PUT_SDB_FUNCTION_END): Replace use of
1932         asm_out_text_file with asm_out_file.
1933         * config/mips/iris5gas.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Likewise.
1934         * config/mips/elf.h (TEXT_SECTION): Undefine.
1935         * config/mips/elf64.h (TEXT_SECION): Undefine.
1936         * config/mips/openbsd.h (TEXT_SECION): Undefine.
1937         * config/mips/mips.c (asm_out_text_file, asm_out_data_file): Delete.
1938         (override_options): Disable small-data optimizations unless using
1939         gas or explicit relocations.
1940         (mips_asm_file_start, mips_asm_file_end, mips_output_function_epilogue,
1941         iris6_asm_named_section, iris6_asm_file_start): Remove code for
1942         handling TARGET_FILE_SWITCHING.
1943         (copy_file_data): Move into TARGET_IRIX6 block.
1944
1945 2003-06-08  Richard Henderson  <rth@redhat.com>
1946
1947         * expr.h (EXPAND_MEMORY): New.
1948         * expr.c (expand_expr): Check it.
1949         * stmt.c (expand_asm_operands): Provide it when the constraint
1950         requires a memory.  Warn for memory input constraints without
1951         a memory operand.
1952
1953 2003-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1954
1955         * varasm.c: Don't include c-tree.h.
1956
1957 2003-06-08  Andreas Jaeger  <aj@suse.de>
1958
1959         * predict.h: Convert to ISO C90 prototypes.
1960         * predict.c: Likewise.
1961         * tree-dump.h: Likewise.
1962         * tree-dump.c: Likewise.
1963         * diagnostic.h: Likewise.
1964         * diagnostic.c: Likewise.
1965         * combine.c: Likewise.
1966
1967         * rtl.h: Convert prototypes of combine.c to ISO C90.
1968
1969 Sun Jun  8 21:27:41 CEST 2003  Jan Hubicka  <jh@suse.cz>
1970
1971         * cfglayout.c (insn_scope): New static function
1972         (block_locators_*, line_locators*, file_locators*): New static varrays.
1973         (scope_to_insns_initialize): Use them.
1974         (insn_line, insn_file): New functions.
1975         (scope_to_insns_finalize): Use insn_scope.
1976         (prologue_locator, epilogue_locator): New global variables.
1977         * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw,
1978         make_call_insn_raw, emit_copy_of_insn_after): Use locators.
1979         (emit_insn_after_scope, emit_insn_before_scope
1980         emit_jump_insn_after_scope, emit_jump_insn_before_scope
1981         emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
1982         (emit_insn_after_setloc, emit_insn_before_setloc
1983         emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
1984         emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
1985         use locators.
1986         * final.c (notice_source_line): Use locators.
1987         (final_start_function): Set initial source file and line.
1988         (final_scan_insn): Use locators.
1989         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
1990         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
1991         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1992         noce_process_if_block, find_cond_trap): Likewise.
1993         * integrate.c (copy_insn_list): Likewise.
1994         * jump.c (duplicate_loop_exit_test): LIkewise.
1995         * print-rtl.c (print_rtx): Print locators.
1996         * recog.c (peephole2_optimize): Likewise.
1997         * rtl.h (INSN_SCOPE): Remove.
1998         (emit_insn_after_scope, emit_insn_before_scope
1999         emit_jump_insn_after_scope, emit_jump_insn_before_scope
2000         emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to...
2001         (emit_insn_after_setloc, emit_insn_before_setloc
2002         emit_jump_insn_after_setloc, emit_jump_insn_before_setloc
2003         emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these;
2004         (insn_file, insn_line, prologue_locator, epilogue_locator): Declare.
2005         * unroll.c (copy_loop_body): Use locators.
2006         * function.c (set_insn_locators): New function.
2007         (thread_prologue_and_epilogue_insns): Set the locators accordingly.
2008
2009 2003-06-08  Kazu Hirata  <kazu@cs.umass.edu>
2010
2011         * config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64.
2012         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf
2013         _fixsfdi _fixunssfdi.
2014         (LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2,
2015         popcounthi2.
2016         (TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI.
2017         * config/h8300/clzhi2.c: New.
2018         * config/h8300/ctzhi2.c: Likewise.
2019         * config/h8300/parityhi2.c: Likewise.
2020         * config/h8300/popcounthi2.c: Likewise.
2021
2022 Sun Jun  8 15:52:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
2023
2024         * i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates.
2025         * i386.c (k8_avoid_jump_misspredicts): Fix debug output.
2026
2027         * cfg.c (verify_flow_info): Move IL independent checks from cfgrtl here.
2028         (dump_bb): New based on old dump_bb in cfgrtl.c
2029         (debug_bb, debug_bb_n): Move the functions from cfgrtl.c here.
2030         * cfghooks.h (cfgh_verify_flow_info): Return status.
2031         * cfglayout.c (cfg_layout_finalize): Verify CFG correctness.
2032         * cfgrtl.c (debug_bb, debug_bb_n): Move to cfg.c
2033         (dump_bb): Remove generic parts.
2034         (rtl_verify_flow_info_1): Break out from rtl_verify_flow_info.
2035         (rtl_verify_flow_info): Only check things dependeing on linearized RTL.
2036
2037 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
2038
2039         * Makefile.in: Rename options.c and options.h to c-options.c and
2040         c-options.h.
2041         (OBJS): Remove options.o.
2042         * c-opts.c: Don'tInclude c-options.h instead of options.h.
2043         * opts.c: Don't include options.h.
2044         (find_opt): Can't use enum opt_code or N_OPTS.
2045         * opts.h (struct cl_option, cl_options, cl_options_count): Move from...
2046         * opts.sh: ... here.
2047
2048 2003-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2049             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2050
2051         PR pch/9830
2052         * ggc-common.c (HAVE_MMAP_FILE): Include sys/types.h
2053         if HAVE_MINCORE is defined.
2054         (MAP_FAILED): Define if not defined.
2055         (gt_pch_save): Test against MAP_FAILED.
2056         (gt_pch_restore): If HAVE_MINCORE, use MAP_FIXED to force
2057         the mapping address to the preferred base after checking it
2058         is possible to do so. Test against MAP_FAILED.
2059         * configure.in: Test for the presence of mincore in libc.
2060         * config.in: Regenerate.
2061         * configure: Regenerate.
2062
2063 2003-06-07  Richard Henderson  <rth@redhat.com>
2064
2065         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Fix
2066         conditional compilation guard.
2067
2068 2003-06-08  Kazu Hirata  <kazu@cs.umass.edu>
2069
2070         * optabs.c (expand_abs): Set result_unsignedp to 1 if
2071         flag_trav is zero.
2072
2073 2003-06-07  Richard Henderson  <rth@redhat.com>
2074
2075         * c-cppbuiltin.c (c_cpp_builtins): Define __EXCEPTIONS for C also.
2076
2077 2003-06-07  Richard Henderson  <rth@redhat.com>
2078
2079         * basic-block.h (EDGE_SIBCALL): New.
2080         (EDGE_ALL_FLAGS): Update.
2081         * cfg.c (dump_edge_info): Add sibcall name.
2082         * cfgbuild.c (make_edges): Use EDGE_SIBCALL.
2083         * cfgrtl.c (purge_dead_edges): Handle sibcalls.
2084
2085 2003-06-07  Andreas Jaeger  <aj@suse.de>
2086
2087         * mklibgcc.in (lib2funcs): Remove _exit.
2088         * libgcc2.c: Remove L_exit.
2089         * gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT.
2090
2091         * system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY.
2092
2093         * doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY.
2094
2095         * ggc.h: Convert to ISO C90 prototypes.
2096         * ggc-none.c: Likewise.
2097         * ggc-common.c: Likewise.
2098         * ggc-page.c: Likewise.
2099         * ggc-simple.c: Likewise.
2100
2101         * crtstuff.c: Remove undefined usage of INIT_SECTION_PREAMBLE.
2102
2103         * system.h: Poison INIT_SECTION_PREAMBLE.
2104
2105 2003-06-07  Zack Weinberg  <zack@codesourcery.com>
2106
2107         * config.gcc (with_cpu handling): Translate sparc64 in
2108         $machine to --with-cpu=v9.
2109         * config/alpha/alpha.c
2110         (TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition.
2111         (alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK.
2112
2113         * target.h: New hook asm_out.file_end.
2114         * target.h: Update to match.  New hook macro TARGET_ASM_FILE_END.
2115         * toplev.c (compile_file): Use targetm.asm_out.file_end.
2116         * system.h: Poison ASM_FILE_END.
2117         * varasm.c (file_end_indicate_exec_stack): New.
2118         * output.h: Prototype it.
2119         * doc/tm.texi: Document TARGET_ASM_FILE_END and
2120         file_end_indicate_exec_stack.  Delete references to attasm.h.
2121
2122         * config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end.
2123         (ASM_FILE_END): Delete; move code...
2124         * config/darwin.c (darwin_file_end): Here; new function.
2125         * config/darwin-protos.h: Prototype it.
2126         * config/alpha/alpha.c (unicosmk_asm_file_end): Make static,
2127         rename unicosmk_file_end.
2128         * config/arm/aof.h (ASM_FILE_END): Delete; move code...
2129         * config/arm/arm.c (aof_file_end): ... here; new static function.
2130         Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER.
2131         Make aof_dump_imports and aof_dump_pic_table static.
2132         * config/avr/avr.c (asm_file_end): Rename avr_file_end, make static.
2133         Set TARGET_ASM_FILE_END to avr_file_end.
2134         * config/c4x/c4x.c (c4x_file_end): Make static.  Take no arguments.
2135         Set TARGET_ASM_FILE_END to c4x_file_end.
2136         * config/h8300/h8300.c (asm_file_end): Rename h8300_file_end,
2137         make static. Take no arguments.  Set TARGET_ASM_FILE_END to
2138         h8300_file_end.
2139         * config/i370/i370.h (ASM_FILE_END): Delete; move code...
2140         * config/i370/i370.c (i370_file_end): ... here; new static function.
2141         Set TARGET_ASM_FILE_END to i370_file_end.
2142          * config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end.
2143          Take no arguments.  Call file_end_indicate_exec_stack if
2144          NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END.
2145         * config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
2146         Define NEED_INDICATE_EXEC_STACK to 0.
2147         * config/i386/linux.h, config/i386/linux64.h: Redefine
2148         NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END.
2149         * config/i386/winnt.c (i386_pe_asm_file_end): Rename to
2150         i386_pe_file_end.  Take no arguments.  Use ix86_file_end.
2151         * config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to
2152         ia64_hpux_file_end, make static.  Take no arguments.
2153         * config/ip2k/ip2k.c (asm_file_start, asm_file_end,
2154         commands_in_prologues, commands_in_epilogues): Delete.
2155         (function_epilogue): Update to match.
2156         * config/mips/mips.c (mips_asm_file_end): Rename mips_file_end,
2157         make static.  Take no arguments.
2158         (iris6_asm_file_end): Rename iris6_file_end, make static, use
2159         mips_file_end, take no arguments.
2160         Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as
2161         appropriate.
2162         * config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end,
2163         make static, take no arguments. Set TARGET_ASM_FILE_END to
2164         mmix_file_end.
2165         * config/pa/pa.c (output_deferred_plabels): Make static, take
2166         no arguments.  Set TARGET_ASM_FILE_END to output_deferred_plabels.
2167         * config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it.
2168         (ASM_FILE_END): Delete; move code...
2169         * config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here;
2170         new static function.
2171
2172         * config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h
2173         * config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h:
2174         Don't set ASM_FILE_END.
2175         * config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h
2176         * config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h
2177         * config/sparc/linux64.h: Set TARGET_ASM_FILE_END to
2178         file_end_indicate_exec_stack; don't set ASM_FILE_END.
2179         * config/alpha/unicosmk.h, config/i386/cygming.h
2180         * config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END.
2181         * config/arm/arm-protos.h, config/alpha/alpha-protos.h
2182         * config/avr/avr-protos.h, config/c4x/c4x-protos.h
2183         * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h
2184         * config/ip2k/ip2k-protos.h, config/mips/mips-protos.h
2185         * config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update.
2186
2187 Sat Jun  7 18:32:13 CEST 2003  Jan Hubicka  <jh@suse.cz>
2188
2189         * i386.h (OPTION_DEFAULT_SPECS): Avoid -mcpu default when -march is
2190         specified.
2191
2192 Sat Jun  7 15:20:01 CEST 2003  Jan Hubicka  <jh@suse.cz>
2193
2194         * Makefile.in (stageprofile_build): Kill redundant target.
2195         * i386.c (mdep_reorg): Don't pad jumps for Athlon.
2196
2197 2003-06-07  Andreas Jaeger  <aj@suse.de>
2198
2199         * doc/tm.texi (Costs): Remove DONT_REDUCE_ADDR documentation.
2200
2201         * config/avr/avr.h: Remove comment regarding DONT_REDUCE_ADDR.
2202         * config/dsp16xx/dsp16xx.h: Likewise.
2203         * config/i386/i386.h: Likewise.
2204         * config/ip2k/ip2k.h: Likewise.
2205
2206 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
2207
2208         * Makefile.in (OJBS, c-opts.o): Update.
2209         (c-options.c, c-options.h): Rename options.h and options.c.
2210         (options.h): Rename options_.h.
2211         (opts.o): New.
2212         * c-common.h (c_common_handle_option): Replace c_common_decode_option.
2213         (c_common_init_options): Update prototype.
2214         * c-lang.c (c_init_options): Update prototype.
2215         (LANG_HOOKS_HANDLE_OPTION): Override.
2216         (LANG_HOOKS_DECODE_OPTION): Drop.
2217         * c-opts.c: Include opts.h and options.h instead of c-options.h
2218         and c-options.c.
2219         (lang_flags): Move to file scope.
2220         (find_opt, c_common_decode_option): Remove.
2221         (CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE,
2222         CL_REJECT_NEGATIVE): Move to opts.h.
2223         (missing_arg): Update prototype.
2224         (c_common_init_options): Update for new prototype.
2225         (c_common_handle_options): Filenames are passed as N_OPTS.
2226         * hooks.c (hook_int_void_0): New.
2227         * hooks.h (hook_int_void_0): New.
2228         * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default.
2229         (LANG_HOOKS_HANDLE_OPTION): Default to NULL for now.
2230         (LANG_HOOKS_INITIALIZER): Update.
2231         * langhooks.h (init_options): Update.
2232         (handle_option): New.
2233         * opts.c, opts.h: New files.
2234         * opts.sh: Update c file to include opts.h and options.h.
2235         * toplev.c: Include opts.h; change options.h to options_.h.
2236         (parse_options_and_default_flags): Get lang_mask, use
2237         handle_option for language-specific handling.
2238         * objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
2239         (LANG_HOOKS_HANDLE_OPTION): Override.
2240         (objc_init_options): Update.
2241
2242 2003-06-07  Magnus Kreth <magnus.kreth@gmx.de>
2243             Thibaud Gaillard <thibaud.gaillard@nto.atmel.com>
2244
2245         PR other/7031
2246         * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of
2247         gcov.
2248
2249 2003-06-07  Kelley Cook  <kelleycook@wideopenwest.com>
2250
2251         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in
2252         section names.
2253         * configure: Regenerate.
2254
2255 2003-06-07  Alan Modra  <amodra@bigpond.net.au>
2256
2257         * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
2258
2259 2003-06-06  James E Wilson  <wilson@tuliptree.org>
2260
2261         PR inline-asm/10890
2262         * reload1.c (merge_assigned_reloads): Abort only if two reloads have
2263         different in fields.
2264
2265 2003-06-06  Nathanael Nerode  <neroden@gcc.gnu.org>
2266
2267         * configure.in: Make $(target_subdir) correspond with top level usage.
2268         * Makefile.in: Likewise.
2269         * configure: Regenerate.
2270
2271 2003-06-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2272
2273         * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
2274         ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
2275         unsigned HOST_WIDE_INT.
2276         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
2277         Likewise.
2278         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
2279         Likewise.
2280
2281 2003-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2282
2283         * doc/install.texi (Prerequisites): New section documenting
2284         tools and packages necessary prior to building and/or
2285         modifying GCC.
2286         * doc/install.texi2html: Also generate prerequisites.html.
2287
2288 2003-06-06  Richard Earnshaw  <rearnsha@arm.com>
2289
2290         PR target/11052
2291         * ifcvt.c (noce_process_if_block): Fail if the destination has
2292         side-effects.
2293
2294 2003-06-06  Jason Merrill  <jason@redhat.com>
2295
2296         * stmt.c (resolve_asm_operand_names): Rename from
2297         resolve_operand_names.  No longer static.  Avoid needless copying.
2298         Don't build array of constraints.
2299         (expand_asm_operands): Build it here.
2300         * tree.h: Declare resolve_asm_operand_names.
2301
2302         * stmt.c (expand_decl): Put artificial vars into registers even
2303         when not optimizing, and don't mark the regs as user vars.
2304
2305 2003-06-06  J"orn Rennecke <joern.rennecke@superh.com>
2306
2307         * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode
2308         of the generated register.
2309
2310 2003-06-06  Daniel Jacobowitz  <drow@mvista.com>
2311
2312         * config.gcc: Add a missing sparc64 case.
2313
2314 2003-06-06  Jakub Jelinek  <jakub@redhat.com>
2315
2316         * mklibgcc.in: Propagate .note.GNU-stack section if needed into
2317         the .hidden assembly stubs.
2318
2319 2003-06-06  H.J. Lu <hongjiu.lu@intel.com>
2320
2321         * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
2322         and x86_64-*-*.
2323
2324         * config/i386/mmintrin.h: Update version and add alternate
2325         intrinsic names.
2326         * config/i386/xmmintrin.h: Likewise.
2327
2328         * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
2329         intrinsics to ...
2330         * config/i386/emmintrin.h: Here. New file.
2331
2332 2003-06-06  Roger Sayle  <roger@eyesopen.com>
2333
2334         * fold-const.c (fold <ABS_EXPR>):  Re-fold the result of folding
2335         fabs(-x) into fabs(x).  Use tree_expr_nonnegative_p to determine
2336         when the ABS_EXPR (fabs or abs) is not required.
2337         (tree_expr_nonnegative_p): Move the logic that sqrt and exp are
2338         always nonnegative from fold to here.  Additionally, cabs and fabs
2339         are always non-negative, and pow and atan are non-negative if
2340         their first argument is non-negative.
2341
2342         * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
2343         Evaluate cabs of a constant at compile-time.  Convert cabs of a
2344         non-complex argument into fabs.  Convert cabs(z) into
2345         sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
2346         -funsafe-math-optimizations or -ffast-math.
2347         (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
2348         Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.
2349
2350 Thu Jun  5 20:51:09 CEST 2003  Jan Hubicka  <jh@suse.cz>
2351
2352         * sourcebuild.texi (Front End Directory): Document new hooks.
2353
2354 Fri Jun  6 11:02:35 CEST 2003  Jan Hubicka  <jh@suse.cz>
2355
2356         * function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
2357         * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic
2358         stack frames.
2359         (pro_epilogue_adjust_stack_rex64_2): New pattern
2360
2361 Fri Jun  6 11:03:14 CEST 2003  Jan Hubicka  <jh@suse.cz>
2362                                Pop Sebastian
2363                                Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2364
2365         * cfghooks.h, cfghooks.c: New files.
2366         * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
2367         (OBJS): Add cfghooks.o.
2368         (cfghooks.o): New rule.
2369         * basic-block.h (split_edge): Rename to rtl_split_edge.
2370         (verify_flow_info): Rename to rtl_verify_flow_info.
2371         (cfghooks.h): Included here.
2372         * cfgrtl.c (split_edge): Renamed rtl_split_edge.
2373         (verify_flow_info): Renamed rtl_verify_flow_info.
2374         * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
2375
2376         * basic-block.h (split_block, split_edge, flow_delete_block,
2377         redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
2378         (flow_delete_block_noexpunge):  Return void.
2379         * cfg.c (verify_flow_info): New function.
2380         * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
2381         try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
2382         Use delete_block.
2383         * cfglayout.c (function_footer): Rename to...
2384         (cfg_layout_function_footer): ... this variable
2385         (unlink_insn_chain): Make global.
2386         (fixup_reorder_chain, record_effective_endpoints): Update.
2387         (cleanup_unconditional_jumps): Use delete_block.
2388         (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
2389         (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
2390         (cfg_layout_initialize, cfg_layout_finalize): Update hooks.
2391         * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block):  Delete.
2392         (cfg_layout_function_footer): Declare.
2393         * cfgloopmanip (split_loop_bb): Do not update RBI.
2394         (remove_bbs): Use delete_block.
2395         (loop_reidrect_edge, loop_delete_branch_edge): Use
2396         redirect_edge_and_branch.
2397         (create_preheader): Use split_block and redirect_edge_and_branch_force.
2398         (split_edge_with): Likewise.
2399         * cfgrtl.c: Include cfglayout.h
2400         (split_edge): Rename to ...
2401         (rtl_split_edge) ... this one; make local.
2402         (redirect_edge_and_branch): Rename to ...
2403         (rtl_redirect_edge_and_branch) ... this one; make local.
2404         (redirect_edge_and_branch_force): Rename to ...
2405         (rtl_redirect_edge_and_branch_force) ... this one; make local.
2406         (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
2407         (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
2408         cfglayout.c; update to directly call RTL counterparts.
2409         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
2410         * ifcvt.c (find_cond_trap): Use delete_block.
2411         (find_if_case_1): Use delete_block.
2412         (find_if_case_2): Use delete_block.
2413         * rtl.h (unlink_insn_chain): Declare.
2414         * toplev.c (rtl_reigster_cfg_hooks): New.
2415
2416 2003-06-05  Richard Henderson  <rth@redhat.com>
2417
2418         * recog.c (peephole2_optimize): Revert last change.
2419
2420 2003-06-05  Richard Henderson  <rth@redhat.com>
2421
2422         * recog.c (peephole2_optimize): Don't split block unless
2423         can_throw_internal.
2424
2425 2003-06-06  Kazu Hirata  <kazu@cs.umass.edu>
2426
2427         * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl.
2428         * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise.
2429
2430 2003-06-05  Kelley Cook  <kelleycook@wideopenwest.com>
2431
2432         PR optimization/4490
2433         * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
2434         * doc/invoke.texi (m96bit-long-double, m128bit-long-double):  Reword
2435         documentation to accurately reflect what these options do.
2436
2437 2003-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
2438
2439         * config/sh/linux.h (STARTFILE_SPEC): Handle -pie.  Simplify.
2440         (ENDFILE_SPEC): Redefine to handle -pie.
2441
2442 2003-06-05  Phil Edwards <phil@jaj.com>
2443
2444         * Makefile.in (qmtest-g++): Use target_alias, not target.
2445
2446 2003-06-05  Per Bothner  <pbothner@apple.com>
2447
2448         * toplev.c (push_srcloc):  Simplify behavior to save current location
2449         and set current location to parameters.
2450         (pop_srcloc):  Simplify semantics.
2451         (lang_dependent_init):  Remove now-useless initial push_srcloc.
2452
2453 2003-05-06  Richard Henderson  <rth@redhat.com>
2454
2455         * dwarf2out.c (loc_descriptor_from_tree): Return 0 for
2456         language-specific tree codes.
2457
2458 2003-06-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2459
2460         PR middle-end/9986
2461         * pa.c (pa_init_builtins): Also set implicit_built_in_decls for
2462         BUILT_IN_FPUTC_UNLOCKED to NULL_TREE.
2463
2464 Thu Jun  5 18:32:46 CEST 2003  Jan Hubicka  <jh@suse.cz>
2465
2466         * install.tex: Document profiledbootstrap.
2467
2468         * configure.in:  Add support for lang.stageprofile and
2469         lang.stagefeedback
2470         * Makefile.in (clean, distclean): Kill new stages
2471         (POSTSTAGE1_FLAGS_TO_PASS): Break from ...
2472         (STAGE2_FLAGS_TO_PASS): ... this one.
2473         (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New.
2474         (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS.
2475         (stageprofile_build, stageprofile_copy, stagefeedback_build,
2476         stagefeedback_copy): New.
2477         (restageprofile, restagefeedback, stageprofile-start,
2478         stageprofile, stagefeedback-start): Likewise.
2479
2480 2003-06-05  David Miller  <davem@redhat.com>
2481             Richard Henderson  <rth@redhat.com>
2482
2483         * optabs.c (HAVE_conditional_trap): Provide default.
2484         (gen_conditional_trap): Likewise.
2485         (init_optabs): Merge init_traps.
2486         (gen_cond_trap): Use prepare_operand.  Restructure and avoid ifdef.
2487
2488 Thu Jun  5 14:59:44 CEST 2003  Jan Hubicka  <jh@suse.cz>
2489
2490         * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
2491         is REG for nonzero_bits (REG) == 8.
2492
2493 Thu Jun  5 13:23:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
2494
2495         * i386.md (align): Fix warning; clarify what to do when no p2align
2496         is available.
2497
2498 2003-06-05  Nick Clifton  <nickc@redhat.com>
2499
2500         * config.gcc (m32r-elf): Revert previous delta.
2501         * config/m32r/t-m32r (crtinit.o): Fix rule to work with
2502         multilibs.  Remove m32rx specific version.
2503         (crtfini.o): Likewise.
2504         (EXTRA_MULTILIB_PARTS): Define.
2505
2506 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2507
2508         * doc/md.texi (Machine Constraints): Correct the meaning of
2509         constraints related to floating-point registers on SPARC.
2510
2511 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2512             Paolo Bonzini  <bonzini@gnu.org>
2513
2514         PR target/10663
2515         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
2516         assembler and linker output to /dev/null.
2517         Use a 'sed' construct instead of 'grep -A1'.
2518         * configure: Regenerate.
2519
2520 2003-06-04  Richard Henderson  <rth@redhat.com>
2521
2522         * config/i386/i386.c (struct ix86_address): Add seg.
2523         (no_seg_address_operand): New.
2524         (ix86_decompose_address): Restructure PLUS loop.  Accept one
2525         UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS.  Adjust ESP swap test
2526         to test for a regnum, not stack_pointer_rtx.
2527         (ix86_address_cost): Reduce cost if non-default segment.
2528         (legitimate_address_p): Remove UNSPEC_TP check.
2529         (get_thread_pointer): Add to_reg argument.  Don't represent
2530         the thread pointer as a memory load.
2531         (legitimize_tls_address): Split out of ...
2532         (legitimize_address): ... here.
2533         (print_operand_address): Handle parts.seg.
2534         (ix86_expand_move): Use legitimize_tls_address.
2535         (ix86_rtx_costs): Handle UNSPEC_TP.
2536         * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New.
2537         (TARGET_TLS_DIRECT_SEG_REFS): New.
2538         (TARGET_SWITCHES): Add tls-direct-seg-refs.
2539         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default.
2540         (PREDICATE_CODES): Add no_seg_address_operand.
2541         * config/i386/i386.md (lea_1): Use it.
2542         (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise.
2543         (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New.
2544         * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
2545         * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
2546         * doc/invoke.texi: Add -mtls-direct-seg-refs.
2547
2548 2003-06-04  Mark Mitchell  <mark@codesourcery.com>
2549
2550         * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation.
2551         (QMTEST_GPP_TESTS): Use "g++" by default.
2552         (stamp-qmtest): Tweak database creation.
2553         (QMTEST_DIR/context): Update context file format.
2554         (qmtest-g++): Tweak command-line.
2555
2556 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2557
2558         * Makefile.in (varasm.o): Don't set -Wno-error.
2559         * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear.
2560
2561 2003-06-04  Zack Weinberg  <zack@codesourcery.com>
2562
2563         PR bootstrap/3163
2564         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
2565         (gcc_AC_FUNC_MMAP_BLACKLIST): New.
2566         * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
2567         and AC_CHECK_FUNCS lists, respectively.  Use
2568         gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
2569         AC_FUNC_MMAP_FILE.
2570         * configure, config.in: Regenerate.
2571
2572 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2573
2574         * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning.
2575         * arm.c (arm_output_function_prologue): Fix format specifiers.
2576         * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise.
2577         * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of
2578         HOST_WIDE_INT_PRINT_DEC.
2579         * vax.c (vax_output_function_prologue): Fix format specifiers.
2580
2581 2003-06-04  Richard Henderson  <rth@redhat.com>
2582
2583         * cse.c (find_best_addr): Consider binary operators even if second
2584         argument is not CONST_INT.
2585
2586 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2587
2588         * doc/invoke.texi (max-cse-path-length): Document.
2589
2590 2003-06-04  Richard Henderson  <rth@redhat.com>
2591
2592         * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
2593
2594 2003-06-04  Andrew Pinski <pinskia@physics.uc.edu>
2595
2596         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
2597         Remove semi-colon at the end of the expression.
2598
2599 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2600
2601         * i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
2602         * i370.h (mvs_function_name_length): Likewise.
2603         * i960.h (CONSTANT_ALIGNMENT): Likewise.
2604         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2605         * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2606         * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2607         * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
2608         variable.
2609
2610 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
2611
2612         * config.gcc: Reorganize --with-cpu logic.  Set
2613         configure_default_options according to the default CPU, --with-cpu,
2614         --with-arch, --with-tune, --with-schedule, --with-abi, and
2615         --with-float.  Check for legal values of various options.
2616         * configure.in: Define configure_default_options in configargs.h.
2617         * configure: Regenerated.
2618         * config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
2619         (TARGET_DEFAULT_FLOAT_P): New macros.
2620         * gcc.c (do_option_spec): New function.
2621         (struct default_spec, option_default_specs): New.
2622         (main): Call do_option_spec.
2623         * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
2624         config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
2625         config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
2626
2627         * doc/install.texi: Update --with-cpu documentation.  Mention
2628         --with-arch, --with-schedule, --with-tune, --with-abi, and
2629         --with-float.
2630         * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
2631
2632 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
2633
2634         * config.gcc: Only process --with-cpu logic in the third pass.
2635
2636 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
2637
2638         * config.gcc: Reorganize --with-cpu section.  Remove an
2639         obsolete comment about the default CPU for x86-64.  Fix
2640         a typo for the ep9312.  Update the list of supported PowerPC
2641         CPUs.  Support a limited set of new --with-cpu options
2642         for i386.
2643
2644 2003-06-04  Aldy Hernandez  <aldyh@redhat.com>
2645
2646         * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
2647         complex numbers <= 32 bits into two registers.
2648
2649 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2650
2651         * alpha.c (print_operand_address): Fix format specifier warnings.
2652         * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2653         * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2654         * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2655         * arm/pe.h (ASM_OUTPUT_COMMON): Likewise.
2656         * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL,
2657         ASM_OUTPUT_SKIP): Likewise.
2658         * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2659         * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2660         * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON):
2661         Likewise.
2662         * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2663         * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise.
2664         * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise.
2665         * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2666         * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise.
2667         * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2668         * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2669         * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2670         * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2671         * svr3.h (ASM_OUTPUT_COMMON): Likewise.
2672
2673 2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>
2674
2675         * c-decl.c (c_init_decl_processing): Clear input_file_name
2676         while building common nodes.
2677         * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
2678         Don't add working directory for strings like <built-in> .
2679
2680 2003-06-04  David Edelsohn  <edelsohn@gnu.org>
2681
2682         * doc/install.texi (*-ibm-aix*): Native as and ld required
2683         to bootstrap on AIX 5L.
2684
2685 2003-06-04  Richard Henderson  <rth@redhat.com>
2686
2687         * c-common.c (handle_cleanup_attribute): New.
2688         (c_common_attributes): Add it.
2689         * c-decl.c (finish_decl): Honor the cleanup attribute.
2690         * doc/extend.texi (Variable Attributes): Document it.
2691
2692         * unwind-c.c: New file.
2693         * Makefile.in (LIB2ADDEH): Add it.
2694         * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
2695         config/ia64/t-ia64: Likewise.
2696
2697 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
2698
2699         * function.c (trampolines_created): New variable.
2700         (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
2701         * function.h (trampolines_created): Add.
2702         * config/s390/linux.h (ASM_FILE_END): Define.
2703         * config/alpha/linux-elf.h (ASM_FILE_END): Define.
2704         * config/m68k/linux.h (ASM_FILE_END): Define.
2705         * config/rs6000/linux.h (ASM_FILE_END): Define.
2706         * config/rs6000/linux64.h (ASM_FILE_END): Define.
2707         * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
2708         * config/sparc/linux.h (ASM_FILE_END): Define.
2709         * config/sparc/linux64.h (ASM_FILE_END): Define.
2710         * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
2711         * config/i386/linux.h (SUBTARGET_FILE_END): Define.
2712         * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
2713
2714 Wed Jun  4 18:39:33 CEST 2003  Jan Hubicka  <jh@suse.cz>
2715
2716         * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions
2717         (ix86_reorg): Use it.
2718         * i386.md (align): New insn pattern.
2719
2720 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2721
2722         * toplev.c (rest_of_type_compilation): Fix typo.
2723
2724 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
2725             Alan Modra  <amodra@bigpond.net.au>
2726
2727         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
2728         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
2729         * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
2730         * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
2731         * config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
2732         * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
2733         (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
2734         * config/rs6000/rs6000.c (output_profile_hook): Likewise.
2735
2736         * configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
2737         Pass it to $gcc_cv_as.
2738         * configure: Rebuilt.
2739
2740         * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
2741         (print_operand): Allow TARGET_AIX to be non-constant.
2742         (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
2743         Define unconditionally.
2744         (rs6000_elf_declare_function_name): New function.
2745         * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
2746         non-constant.
2747         * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
2748         to 1.
2749         (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
2750         [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
2751         is defined.
2752         (TARGET_AIX): Define to 1 if TARGET_64BIT.
2753         (PROCESSOR_DEFAULT): Remove.
2754         (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
2755         INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
2756         [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
2757         (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
2758         -m32 and -m64.
2759         (MULTILIB_DEFAULTS): Define.
2760         (SUBSUBTARGET_EXTRA_SPECS): Define.
2761         (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
2762         (TARGET_TOC): Define only if !RS6000_BI_ARCH.
2763         (TARGET_NO_TOC): Remove.
2764         [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
2765         TARGET_PROTOTYPE): Define to 0.
2766         (NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
2767         (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
2768         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
2769         if !TARGET_64BIT.
2770         (USER_LABEL_PREFIX): Remove.
2771         (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
2772         (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
2773         if TARGET_64BIT.
2774         (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
2775         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
2776         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
2777         (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
2778         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2779         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
2780         TARGET_64BIT.
2781         (RS6000_CALL_GLUE): Likewise.
2782         (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
2783         RESTORE_FP_SUFFIX): Likewise.
2784         (ASM_DECLARE_FUNCTION_NAME): Remove.
2785         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
2786         DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
2787         name if TARGET_64BIT.
2788         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
2789         !TARGET_64BIT.
2790         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
2791         (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
2792         (DRAFT_V4_STRUCT_RET): Define.
2793         (SIGNAL_FRAMESIZE): New enum value.
2794         (MD_FALLBACK_FRAME_STATE_FOR): Define.
2795         * config/rs6000/default64.h: New file.
2796         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
2797         options.
2798         (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
2799         to RS6000_ABI_NAME.  Only disallow mixing of -fPIC with -mcall-aixdesc
2800         if !TARGET_64BIT.
2801         [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
2802         (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
2803         function.
2804         (TARGET_OS_SYSV_CPP_BUILTINS): Define.
2805         (TARGET_OS_CPP_BUILTINS): Use it.
2806         (CPP_SYSV_SPEC): Remove.
2807         (CPP_SPEC): Remove cpp_sysv.
2808         (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
2809         Add SUBSUBTARGET_EXTRA_SPECS.
2810         (SUBSUBTARGET_EXTRA_SPECS): Define.
2811         * config/rs6000/biarch64.h: New file.
2812         * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
2813         New prototype.
2814         * config/rs6000/x-linux64: New file.
2815         * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
2816         multilibs.
2817         * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
2818         * config/rs6000/eabi-cn.asm: Likewise.
2819         * config/rs6000/tramp.asm: Likewise.
2820         * config/rs6000/sol-ci.asm: Likewise.
2821         * config/rs6000/sol-cn.asm: Likewise.
2822         * config/rs6000/linux.h (TARGET_64BIT): Define to 0.
2823         (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
2824         * config/rs6000/ppc-asm.h: Move __powerpc64__ section before
2825         _CALL_AIXDESC section.
2826         * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
2827         defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
2828         or default32.
2829
2830 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
2831
2832         * config.gcc: Revert accidentally committed ARM changes.
2833
2834 2003-06-04  Roger Sayle  <roger@eyesopen.com>
2835
2836         * builtins.c (dconstpi, dconste): New mathematical constants.
2837         (init_builtin_dconsts): New function to initialize dconstpi
2838         and dconste.
2839         (fold_builtin): Optimize exp(1.0) = e.  Evaluate exp(x) at
2840         compile time with -ffast-math when x is an integer constant.
2841         Optimize tan(0.0) = 0.0.  Optimize atan(0.0) = 0.0,
2842         atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math.
2843
2844 2003-06-04  Roger Sayle  <roger@eyesopen.com>
2845
2846         * calls.c (expand_call): Avoid calling pure or const functions
2847         when the result is ignored (or void) and none of the arguments
2848         are volatile.  Move warning diagnostic earlier in function.
2849
2850 2003-06-04  Andreas Jaeger  <aj@suse.de>
2851
2852         * system.h: Do not poison TDESC_SECTION_ASM_OP,
2853         RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE.
2854
2855 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2856
2857         * final.c (asm_fprintf): Update comments, accept "-+ #0" flags,
2858         optimize '%' case, handle %c, don't accept %p, %e, %f or %g,
2859         handle %ll, optimize regular character case.
2860
2861 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2862
2863         * Makefile.in (cse.o): Add params.h dependency.
2864         * cse.c: Include params.h.
2865         (PATHLENGTH): Removed.
2866         (struct cse_basic_block_data): Make path array dynamic.
2867         (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead
2868         of PATHLENGTH.
2869         (cse_main, cse_basic_block): Allocate path array.
2870         * params.def (PARAM_MAX_CSE_PATH_LENGTH): New.
2871
2872 Wed Jun  4 09:49:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
2873
2874         * i386.c (ix86_reorg): Replace the jump instead of adding nop.
2875         * i386.md (UNSPEC_REP): New constant.
2876         (return_internal_long): New pattern.
2877
2878 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2879
2880         PR optimization/11018
2881         * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
2882         consistently to decide whether the scratch register is really
2883         required.
2884
2885 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2886
2887         PR optimization/10876
2888         * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
2889         new 'O' constraint for constant 4096.
2890         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2891         * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
2892         Do not transform into MINUS insn for constant 4096.
2893         (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
2894         for constant 4096 as third operand.
2895         (addsi3 expander): Remove.
2896         (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
2897         new alternative for constant 4096 as third operand.
2898         (subdi3 expander): Do not transform into PLUS insn for constant 4096.
2899         (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
2900         operand.
2901         (subsi3 expander): Remove.
2902         (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
2903         constant 4096 as third operand.
2904         * doc/md.texi (Machine Constraints): Document new 'O' constraint for
2905         the SPARC port.
2906
2907 2003-06-03  Chris Demetriou  <cgd@broadcom.com>
2908
2909         * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define.
2910
2911 2003-06-04  Andreas Jaeger  <aj@suse.de>
2912
2913         * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
2914
2915         * config/i386/i386.c (ix86_expand_prologue): Do not use
2916         SUBTARGET_PROLOGUE.
2917
2918         * system.h: Poision SUBTARGET_PROLOGUE.
2919
2920         * config/arm/arm-protos.h: Remove unused rdate_section prototype.
2921
2922         * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
2923         dependend code.
2924
2925         * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
2926
2927         * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
2928         INSN_CACHE_LINE_WIDTH.
2929
2930         * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
2931         (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
2932         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
2933
2934         * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
2935         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
2936
2937         * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
2938         (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
2939         (dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
2940         (dbxout_block): Remove usage of DBX_LBRAC_FIRST.
2941         (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
2942         (dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
2943
2944         * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
2945         DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
2946         DBX_WORKING_DIRECTORY.
2947
2948         * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
2949         DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
2950
2951         * config/frv/frv-protos.h: Remove unused const_section
2952         declaration.
2953         * config/vax/vax-protos.h: Likewise.
2954
2955         * output.h: Remove CONST_SECTION_ASM_OP usage.
2956
2957         * system.h: Poison CONST_SECTION_ASM_OP.
2958
2959         * crtstuff.c (__do_global_dtors_aux): Remove usage of
2960         CRT_GET_RFIB_TEXT.
2961         (frame_dummy): Likewise.
2962         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
2963         * system.h: Poison CRT_GET_RFIB_TEXT.
2964
2965         * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code.
2966
2967         * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables.
2968         (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code.
2969         (recognized_function): Likewise.
2970         (read_scan_file): Likewise.
2971
2972 2003-06-03  Roger Sayle  <roger@eyesopen.com>
2973
2974         * optabs.c (expand_binop): Optimize complex multiplication for
2975         the case of squaring a complex argument.
2976
2977 2003-06-03  Roger Sayle  <roger@eyesopen.com>
2978
2979         * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
2980         non-volatile operands of binary operations.
2981         (prepare_cmp_insn): Likewise.
2982
2983 2003-06-03  Roger Sayle  <roger@eyesopen.com>
2984
2985         * varasm.c (force_const_mem): Handle alignment of constants not
2986         representable as a type in the front-end language.
2987
2988 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
2989
2990         * flow.c (initialize_uninitialized_subregs): Use
2991         emit_move_insn instead of emitting a hardcoded move.
2992
2993 2003-06-03  Richard Henderson  <rth@redhat.com>
2994
2995         * optabs.c (expand_abs_nojump): Split out from ...
2996         (expand_abs): ... here.
2997         * optabs.h (expand_abs_nojump): Declare.
2998         * ifcvt.c: (noce_try_abs): Use expand_abs_nojump.
2999         * Makefile.in (ifcvt.o): Depend on optabs.h.
3000
3001 2003-06-03  Alan Modra  <amodra@bigpond.net.au>
3002
3003         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
3004
3005 2003-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
3006
3007         * config.gcc (default_use_cxa_atexit): New variable, defaults to no.
3008         (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit
3009         to yes.
3010         * configure.in: Allow default_use_cxa_atexit to determine the
3011         value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or
3012         disabled.
3013         * configure: Regenerate.
3014
3015 2003-06-03  Douglas B Rupp  <rupp@gnat.com>
3016
3017         * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
3018         * doc/gcc.texi: Remove vms.texi section.
3019         * doc/vms.texi: Remove obsolete file.
3020
3021 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
3022
3023         * configure.in (inhibit_libc): Don't define when configuring
3024         with --with-newlib --with-headers.
3025         * configure: Regenerate.
3026
3027         * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules.
3028
3029 2003-06-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3030
3031         * configure.in (gcc_cv_as_hidden): Disable .hidden completely on
3032         IRIX 6 without GNU ld.
3033         * configure: Regenerate.
3034
3035 2003-06-03  Roger Sayle  <roger@eyesopen.com>
3036
3037         * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
3038         of a complex number rather than invoke mov_optab directly.
3039
3040 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
3041
3042         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
3043         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
3044
3045 2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>
3046
3047         * config/i386/x86-64.h: Remove two target-independent comments;
3048          replace "GNU CC" with "GCC".
3049
3050 2003-06-03  Anthony Green  <green@redhat.com>
3051
3052         * config/frv/t-frv (EXTRA_HEADERS): Remove media.h
3053
3054 2003-06-03  Roger Sayle  <roger@eyesopen.com>
3055
3056         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
3057         New builtins representing ISO C99's cabs, cabsf and cabsl.
3058         * builtins.c (expand_builtin_fabs): New function.
3059         (expand_builtin_cabs): New function.
3060         (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L}
3061         using expand_builtin_fabs and expand_builtin_cabs respectively.
3062
3063         * doc/extend.texi: Document new cabs, cabsf and cabsl builtins.
3064
3065 2003-06-03  Aldy Hernandez  <aldyh@redhat.com>
3066
3067         * function.c (assign_parms): Split complex arguments.
3068
3069         * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
3070
3071         * expr.h (SPLIT_COMPLEX_ARGS): Define.
3072         (split_complex_types): Protoize.
3073         (split_complex_values): Protoize.
3074
3075         * calls.c (expand_call): Split complex arguments on architectures
3076         that require it.
3077         (split_complex_values): New.
3078         (split_complex_types): New.
3079
3080         * config/rs6000/rs6000.c (rs6000_libcall_value): New.
3081         (rs6000_function_value): Handle complex values on AIX.
3082         (rs6000_complex_function_value): New.
3083
3084         * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
3085
3086         * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
3087         (SPLIT_COMPLEX_ARGS): New.
3088
3089 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
3090
3091         * configure.in (HAVE_LD_PIE): Check for ld -pie.
3092         * config.in: Rebuilt.
3093         * configure: Rebuilt.
3094         * toplev.c (flag_pie, flag_shlib): New variables.
3095         (f_options): Add -fpie and -fPIE.
3096         (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
3097         Set flag_shlib if flag_pic and not -fpie/-fPIE.
3098         * flags.h (flag_pic, flag_shlib): Add.
3099         * varasm.c (default_binds_local_p): Use flag_shlib instead of
3100         flag_pic.
3101         * gcc.c (LINK_PIE_SPEC): Define.
3102         (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
3103         (option_map): Add --pie -> -pie mapping.
3104         * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
3105         and -fPIE the same way as -fPIC.
3106         * config/openbsd.h (ASM_SPEC): Likewise.
3107         * config/frv/frv.h (ASM_SPEC): Likewise.
3108         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
3109         * config/arm/semi.h (ASM_SPEC): Likewise.
3110         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
3111         * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
3112         * config/i386/beos-elf.h (CC1_SPEC): Likewise.
3113         * config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
3114         * config/m68k/linux.h (CPP_SPEC): Likewise.
3115         * config/m68k/netbsd.h (ASM_SPEC): Likewise.
3116         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
3117         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
3118         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
3119         * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
3120         * config/pa/pa-linux.h (CPP_SPEC): Likewise.
3121         * config/netbsd-aout.h (ASM_SPEC): Likewise.
3122         * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
3123         * config/rs6000/vxworks.h (CPP_SPEC): Likewise.
3124         * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
3125         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
3126         * config/sparc/sparc.h (ASM_SPEC): Likewise.
3127         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
3128         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
3129         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
3130         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
3131         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
3132         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
3133         Simplify.
3134         * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3135         * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3136         * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3137         * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3138         * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3139         * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3140         * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
3141         * doc/invoke.texi: Document -pie, -fpie and -fPIE options.
3142
3143 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
3144
3145         * builtins.c (expand_builtin_memcpy): Remove endp argument and endp
3146         != 0 handling.  Pass 0 to store_by_pieces.
3147         (expand_builtin_mempcpy): Add endp argument.  Don't call
3148         expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
3149         directly.  If ignoring result, only do expand_call.
3150         (expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
3151         otherwise.
3152         (expand_builtin_strncpy, expand_builtin_memset): Adjust
3153         store_by_pices callers.
3154         (expand_builtin): Adjust expand_builtin_memcpy and
3155         expand_builtin_mempcpy callers.
3156         * expr.c (can_move_by_pieces): New function.
3157         (move_by_pieces): Add endp argument, return to resp. memory at end
3158         or one byte earlier depending on endp.
3159         (store_by_pieces): Likewise.
3160         (emit_block_move): Adjust call to move_by_pieces.
3161         (emit_push_insn): Adjust move_by_pieces caller.
3162         * expr.h (can_move_by_pieces): New prototype.
3163         (store_by_pieces): Adjust prototypes.
3164         * rtl.h (move_by_pieces): Adjust prototype.
3165         * config/mips/mips.c (expand_block_move): Adjust move_by_pieces
3166         caller.
3167
3168 2003-06-03  Ben Elliston  <bje@wasabisystems.com>
3169
3170         * doc/md.texi (Processor pipeline description): Improve wording.
3171
3172 2003-06-03  Neil Booth  <neil@daikokuya.co.uk>
3173
3174         * c-opts.c (c_common_handle_option): New, pulled out of
3175         c_common_decode_option.  Substitute uses of argv.
3176         (c_common_decode_option): Broken into two.
3177
3178 2003-06-02  Roger Sayle  <roger@eyesopen.com>
3179             Zack Weinberg  <zack@codesourcery.com>
3180
3181         * emit-rtl.c (gen_complex_constant_part):  Remove unnecessary
3182         test of TREE_CONSTANT_POOL_ADDRESS_P.
3183
3184 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3185
3186         * mips.c: Don't include output.h twice.
3187         * stormy16.c: Likewise.
3188         * xtensa.c: Likewise.
3189         * output.h: Protect against multiple inclusion.
3190
3191 2003-06-02  J"orn Rennecke <joern.rennecke@superh.com>
3192
3193         * sh.h (OLD_ARG_MODE): New macro.
3194         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
3195         (FUNCTION_ARG_1): Break out of:
3196         (FUNCTION_ARG).  Use OLD_ARG_MODE.
3197
3198 2003-06-02  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3199
3200         * gcc/config.gcc Add support multilib parts for m32rx processor.
3201
3202 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3203
3204         * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh.
3205         (mostlyclean): Delete c-options.c and c-options.h.
3206
3207 2003-06-02  Neil Booth  <neil@daikokuya.co.uk>
3208
3209         * c-opts.c (CL_REJECT_NEGATIVE): New.
3210         (c_common_decode_option): Update to use it.
3211         * c.opt: Update documentation; use RejectNegative.
3212         * opts.sh: Handle RejectNegative.
3213
3214 2003-06-01  Zack Weinberg  <zack@codesourcery.com>
3215
3216         * ggc-page.c (init_ggc): Give better diagnostics on failure to
3217         open /dev/zero.
3218         * toplev.c (crash_signal): Reset handling for received signal
3219         to SIG_DFL.
3220
3221 2003-06-02  Ben Elliston  <bje@wasabisystems.com>
3222
3223         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare.
3224         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already.
3225         (arm_use_dfa_pipeline_interface): Implement.
3226         * config/arm/arm.md (arm): New automaton.
3227         (write_buf): Remove function units; new cpu unit.
3228         (write_blockage): Remove function units; new cpu unit.
3229         (core): Remove function units; new cpu unit.
3230         (r_mem_f_wbuf): New instruction reservation.
3231         (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise.
3232         (store1_ldsched, store2, store3, store4): Likewise.
3233         (load_ldsched, load_ldsched_xscale, load_or_store): Likewise.
3234         (mult, mult_ldsched, mult_ldsched_strongarm): Likewise.
3235         (multi_cycle, single_cycle): Likewise.
3236         * config/arm/fpa.md (armfp): New automaton.
3237         (fpa): Remove function units; new cpu unit.
3238         (fpa_mem): Remove function unit; new cpu unit.
3239         (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations.
3240         (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise.
3241
3242 2003-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3243
3244         * builtin-attrs.def (ATTR_ASM_FPRINTF): New.
3245         * c-format.c (enum format_type): Add asm_fprintf_format_type.
3246         (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs,
3247         asm_fprintf_flag_pairs, asm_fprintf_char_table): New.
3248         (format_types_orig): Renamed from format_types.  Add new data.
3249         (format_types): Declare as pointer.
3250         (handle_format_attribute): Move later in file so we have all
3251         necessary declarations.  Add section to capture HOST_WIDE_INT.
3252         * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New.
3253         (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF.
3254
3255 2003-06-01  Andreas Jaeger  <aj@suse.de>
3256
3257         * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and
3258         ROUND_TYPE_SIZE_UNIT.
3259
3260         * stor-layout.c (finalize_record_size): Remove usages of
3261         ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
3262         (finalize_type_size): Likewise.
3263         (layout_type): Likewise.
3264
3265         * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
3266
3267         * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro.
3268
3269         * config/d30v/d30v.h: Remove text copied from the manual.
3270
3271 2003-06-01  Roger Sayle  <roger@eyesopen.com>
3272             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3273             Geoffrey Keating  <geoffk@apple.com>
3274
3275         * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
3276         constants as condition code values.
3277
3278 2003-06-01  DJ Delorie  <dj@redhat.com>
3279
3280         * cppmacro.c (warn_of_redefinition): Handle cases where the two
3281         definitions have different numbers of tokens.
3282
3283 2003-06-01  Andreas Jaeger  <aj@suse.de>
3284
3285         * gen-protos.c (main): Readd unused attribute for argc.
3286
3287 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
3288
3289         * Makefile.in (c-options.c, c-options.h): Parallel make safe.
3290         * c.opt: End in blank line.
3291         * opts.sh: Take AWK from environment if available; use C locale.
3292
3293 2003-06-01  Andreas Schwab  <schwab@suse.de>
3294
3295         * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1.
3296
3297 2003-06-01  Andreas Jaeger  <aj@suse.de>
3298
3299         * gen-protos.c (main): Revert patch to check for argument.
3300
3301 2003-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3302
3303         PR target/11044
3304         * config/i386/i386.md (length attribute): Set length to 4
3305         for instructions of type "fcmp".
3306
3307 2003-06-01  Andreas Jaeger  <aj@suse.de>
3308
3309         * toplev.c: Use ISO C90 prototypes.
3310
3311         * toplev.h: Use ISO C90 prototypes.
3312
3313         * genrecog.c: Use ISO C90 prototypes.
3314         (nodes_identical): Correct declaration to match prototype.
3315         (maybe_both_true): Likewise.
3316         (merge_trees): Likewise.
3317
3318         * genpeep.c (gen_peephole): Remove #if 0 code.
3319         Use ISO C90 prototypes.
3320
3321         * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code.
3322         Remove #if 0'ed function simplify_by_alternatives.
3323         (optimize_attrs): Remove #if 0'ed code.
3324         Remove ^L.
3325         Use ISO C90 prototypes.
3326         (make_canonical): Remove #if 0'ed code.
3327         (convert_const_symbol_ref): Remove #if 0'ed function.
3328
3329         * gen-protos.c (main): Check for argument.
3330
3331         * rtl.h: Use ISO C90 prototypes for functions from lists.c.
3332
3333         * params.h: Use ISO C90 prototypes.
3334         * params.c: Likewise.
3335         * intl.c: Likewise.
3336         * intl.h: Likewise.
3337         * lists.c: Likewise.
3338         * errors.c: Likewise.
3339         * errors.h: Likewise.
3340         * gencodes.c: Likewise.
3341         * genpreds.c: Likewise.
3342         * genattr.c: Likewise.
3343         * gen-protos.c: Likewise.
3344         * genflags.c: Likewise
3345         * genconditions.c: Likewise.
3346         * genautomata.c: Likewise.
3347         * gencheck.c: Likewise.
3348         * genconfig.c: Likewise.
3349         * genconstants.c: Likewise.
3350         * genemit.c: Likewise.
3351         * genextract.c: Likewise.
3352         * gengenrtl.c: Likewise.
3353         * gengtype.c: Likewise.
3354         * gengtype.h: Likewise.
3355         * genopinit.c: Likewise.
3356         * genoutput.c: Likewise.
3357         * gensupport.c: Likewise.
3358         * gensupport.h: Likewise.
3359
3360         * sdbout.h: Use ISO C90 prototypes.
3361
3362         * sdbout.c (CONTIN): Removed empty macro.
3363         (sdbout_one_type): Remove CONTIN usages.
3364         Remove ^Ls.
3365         (tag_of_ru_type): Remove #if 0'ed function.
3366         (sdbout_symbol): Remove #if 0'ed code.
3367         (sdbout_one_type): Remove a #if 1.
3368         (sdbout_one_type): Remove #if 0'ed code.
3369         (sdbout_init): Remove RMS_QUICK_HACK_1 code.
3370         Remove PARAMS, use ISO C90 prototypes for all functions.
3371
3372 2003-06-01  Josef Zlomek  <zlomekj@suse.cz>
3373
3374         * rtl.def (CONST_DOUBLE): Update comment.
3375
3376 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
3377
3378         * opts.sh: Remove path from sort.
3379
3380 2003-06-01  Aldy Hernandez  <aldyh@redhat.com>
3381
3382         PR/9680
3383         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require
3384         TARGET_SPE for SPE_VECTOR_MODE.
3385
3386 2003-05-31  Aldy Hernandez  <aldyh@redhat.com>
3387
3388         * toplev.c (botch): Remove.
3389         (do_abort): Remove.
3390         (set_Wunused): Comment.
3391         (set_Wextra): Comment.
3392         Remove ^L's.
3393         (rest_of_compilation): Factor out common code into functions.
3394         (rest_of_handle_inlining): New.
3395         (rest_of_handle_ssa): New.
3396         (rest_of_handle_cse): New.
3397         (rest_of_handle_gcse): New.
3398         (rest_of_handle_loop_optimize): New.
3399         (rest_of_handle_jump_bypass): New.
3400         (rest_of_handle_sibling_calls): New.
3401         (rest_of_handle_null_pointer): New.
3402         (rest_of_handle_addresof): New.
3403         (rest_of_handle_flow): New.
3404         (rest_of_handle_branch_prob): New.
3405         (rest_of_handle_if_conversion): New.
3406         (rest_of_handle_tracer): New.
3407         (rest_of_handle_loop2): New.
3408         (rest_of_handle_cse2): New.
3409         (rest_of_handle_life): New.
3410         (rest_of_handle_combine): New.
3411         (rest_of_handle_if_after_combine): New.
3412         (rest_of_handle_regmove): New.
3413         (rest_of_handle_sched): New.
3414         (rest_of_handle_old_regalloc): New.
3415         (rest_of_handle_new_regalloc): New.
3416         (rest_of_handle_regrename): New.
3417         (rest_of_handle_reorder_blocks): New.
3418         (rest_of_handle_sched2): New.
3419         (rest_of_handle_new_regalloc): New.
3420         (rest_of_handle_old_regalloc): New.
3421         (rest_of_handle_regrename): New.
3422         (rest_of_handle_reorder_blocks): New.
3423         (rest_of_handle_stack_regs): New.
3424         (rest_of_handle_machine_reorg): New.
3425         (rest_of_handle_delay_slots): New.
3426         (rest_of_handle_final): New.
3427
3428         * toplev.h (botch): Remove prototype.
3429         (do_abort): Same.
3430
3431 2003-05-31  Neil Booth  <neil@daikokuya.co.uk>
3432
3433         * Makefile.in (c-opts.o, c-options.h): Update dependencies.
3434         * c-opts.c: Include c-options.h and c-options.c.
3435         (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY):
3436         Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX.
3437         (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option,
3438         OPT, opt_comp): Remove.
3439         (missing_arg, c_common_init_options, c_common_decode_option,
3440         write_langs): Update for macro redefinitions and enumeration
3441         name changes.
3442         * c.opt, opts.sh: New files.
3443         * doc/passes.texi: Update.
3444
3445 2003-05-31  Andreas Jaeger  <aj@suse.de>
3446
3447         * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
3448         usage.
3449
3450         * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.
3451
3452         * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.
3453
3454         * system.h: Poison ALLOCATE_TRAMPOLINE.
3455
3456         * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
3457         * system.h: Poison HANDLE_PRAGMA.
3458
3459 2003-05-31  Kazu Hirata  <kazu@cs.umass.edu>
3460
3461         * doc/invoke.texi: Update dump file names.
3462
3463 2003-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3464
3465         * c-format.c (format_length_info, format_char_info,
3466         format_flag_spec, format_flag_pair, format_kind_info):
3467         De-const-ify structure members.
3468
3469 2003-05-31  Roger Sayle  <roger@eyesopen.com>
3470
3471         * flags.h (flag_wrapv): New flag controlling overflow semantics.
3472         * toplev.c (flag_wrapv): Declare the variable with default false.
3473         (lang_independent_options): New option "-fwrapv" to set the above.
3474
3475         * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
3476         as x, when signed arithmetic overflow wraps around.
3477         (fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
3478         * loop.c (basic_induction_var): Ignore BIVs that rely on undefined
3479         overflow when flag_wrapv is true.
3480
3481         * doc/invoke.texi: Document new -fwrapv command line option.
3482         * doc/c-tree.texi: Mention that the overflow semantics of
3483         NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
3484         upon both flag_wrapv and flag_trapv.
3485
3486 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3487
3488         * doc/install.texi (mips-sgi-irix5): Add missing
3489         HTML <hr> marker.
3490
3491 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3492
3493         * doc/md.texi (Machine Constraints): Document
3494         missing SPARC constraints.
3495
3496 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3497
3498         * doc/md.texi (Automaton pipeline description): Use
3499         "type" instead of "cpu" as the attribute in the examples.
3500
3501 2003-05-30  Stan Shebs  <shebs@apple.com>
3502
3503         * system.h: Poison OBJC_PROLOGUE.
3504
3505 2003-05-30  Roger Sayle  <roger@eyesopen.com>
3506
3507         * emit-rtl.c (gen_complex_constant_part): New function for getting
3508         the constant real or imaginary part of a complex constant.
3509         (gen_realpart): Use it.
3510         (gen_imagpart): Likewise.
3511
3512 2003-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3513
3514         * doc/invoke.texi: Fix typos.
3515         * doc/rtl.texi: Likewise.
3516
3517 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
3518
3519         * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal
3520         mode.
3521         * config/h8300/crtn.asm: Likewise.
3522         * config/h8300/lib1funcs.asm: Likewise.
3523         * config/h8300/h8300.c (asm_file_start): Likewise.
3524         * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and
3525         h8300snelf emulations for normal mode.
3526         * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn
3527         emulations for normal mode.
3528
3529 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
3530
3531         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return
3532         true if TARGET_NORMAL_MODE.
3533
3534 2003-05-30  Roger Sayle  <roger@eyesopen.com>
3535
3536         * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when
3537         making a substitution.
3538         (dead_libcall_p): If directly replacing a libcall with a
3539         constant value produces an invalid instruction, also try forcing
3540         the constant into the constant pool.
3541         * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not
3542         obvious that the source is a constant.
3543         (compress_float_constant): Use set_unique_reg_note to place
3544         REG_EQUAL notes on instructions.
3545
3546 2003-05-30  Eric Christopher  <echristo@redhat.com>
3547
3548         * config/mips/mips.c (extern_list): Add GTY marker.
3549         (extern_head): Separate out definition. Add marker.
3550         (mips_output_external): Use ggc_alloc for extern_list
3551         allocation.
3552         (mips_output_external_libcall): Ditto.
3553
3554 2003-05-30  Florian Weimer  <fw@deneb.enyo.de>
3555
3556         * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
3557         later.
3558
3559 2003-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3560
3561         * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
3562         warnings.
3563         (PRINT_OPERAND): Likewise.
3564
3565 2003-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3566
3567         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
3568         -mdebug/-no-mdebug switches ...
3569         (MDEBUG_ASM_SPEC): ... here.
3570         Use only with gas.
3571         (EXTRA_SPECS): Initialize mdebug_asm_spec.
3572
3573 2003-05-29  Matt Kraai  <kraai@alumni.cmu.edu>
3574
3575         * gthr-gnat.c: Remove #undef UNUSED.
3576         (__gnat_default_lock, __gnat_default_unlock): Prototype.
3577         (__gnat_task_lock, __gnat_task_unlock): Make declarations
3578         prototypes.
3579         (__gnat_install_locks): Convert declaration to ISO C90, make
3580         parameter declarations prototypes, and remove blank line.
3581         * gthr-gnat.h (__gnat_install_locks): Make parameter
3582         declarations prototypes.
3583
3584 2003-05-29  Jason Merrill  <jason@redhat.com>
3585
3586         * Makefile.in (unstrap): Remove stage_last after make unstage1.
3587
3588 2003-05-29  Roger Sayle  <roger@eyesopen.com>
3589
3590         * mips-tfile.c (PAGE_SIZE): Increase page size to 32K.
3591
3592 2003-05-29  Roger Sayle  <roger@eyesopen.com>
3593             Kaveh Ghazi  <ghazi@caip.rutgers.edu>
3594
3595         PR bootstrap/10169
3596         * mips-tfile.c (main): Use getopt_long instead of getopt.
3597         Add new command line option --version to display version.
3598         Treat --verbose like -v to report a single line version.
3599         (options): New global variable for getopt_long.
3600         * mips-tdump.c (main): Use getopt_long instead of getopt.
3601         New command line options -v, --version and -verbose to display
3602         the program version number (to match mips-tfile's behavior).
3603         (options): New global variable for getopt_long.
3604
3605         * gcov.c (options): Zero-terminate getopt_long array.
3606         * gcov-dump.c (options): Likewise.
3607
3608         * Makefile.in (mips-tdump.o): Add dependency on version.h.
3609
3610 2003-05-29  Stan Shebs  <shebs@apple.com>
3611
3612         Remove OBJC_PROLOGUE everywhere.
3613         * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE.
3614         * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE.
3615         * config/d30v/d30v.h: Similarly.
3616         * config/ip2k/ip2k.h: Similarly.
3617         * doc/tm.texi: Remove doc of OBJC_PROLOGUE.
3618
3619 2003-05-29  Roger Sayle  <roger@eyesopen.com>
3620
3621         * c-semantics.c (genrtl_do_stmt_1): New function split out from...
3622         (gen_rtl_do_stmt): ... here.  Call genrtl_do_stmt_1.
3623         (expand_unreachable_stmt): Expand unreachable while statements
3624         using genrtl_do_stmt_1.
3625
3626 2003-05-29  Richard Sandiford  <rsandifo@redhat.com>
3627
3628         * config/mips/mips-protos.h (mips_output_load_label): Declare.
3629         * config/mips/mips.c (mips_output_load_label): New function.
3630         (mips_output_conditional_branch): Use it.
3631         * config/mips/mips.md (jump): And here.
3632
3633 2003-05-28  Bob Wilson  <bob.wilson@acm.org>
3634
3635         * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
3636         (xtensa_split_operand_pair): New proto.
3637         * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
3638         (smalloffset_double_mem_p): Delete.
3639         (gen_float_relational, printx, print_operand, xtensa_va_arg):
3640         Fix whitespace.
3641         (xtensa_split_operand_pair): New.
3642         (xtensa_dbx_register_number): Fix formatting.
3643         * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
3644         * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
3645         instead of splitting them into single-word moves.  Remove unnecessary
3646         checks for reload_in_progress and reload_completed.
3647         (movdi_internal, movdf_internal): Change to post-reload split patterns.
3648         Add constraints to allow constant operands.
3649         (movsf_internal): Allow CONST_INT operands.
3650
3651 2003-05-27  Danny Smith   <dannysmith@users.sourceforge.net>
3652
3653         * config.gcc (i[34567]86-*-mingw32*): Add host makefile
3654         fragment i386/x-mingw32.
3655         * config/i386/x-mingw32: New file. Make local_includedir
3656         relative to EXEC_PREFIX.
3657
3658 2003-05-27  Aaron W. LaFramboise  <awlaframboise@aol.com>
3659
3660         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update.
3661         (MD_STARTFILE_PREFIX): Define.
3662
3663 2003-05-27  Denis Chertykov  <denisc@overta.ru>
3664
3665         * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
3666         VOIDmode.
3667         * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
3668         call of cselib_invalidate_regno.
3669
3670 2003-05-28  Daniel Jacobowitz  <drow@mvista.com>
3671
3672         * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
3673         -lthread to -lpthread.
3674
3675 2003-05-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3676             Bruce Korb  <bkorb@gnu.org>
3677             Arno Klaassen  <arno@heho.snv.jussieu.fr>
3678
3679         * fixinc/inclhack.def: Add missing declaration of getpagesize()
3680         to unistd.h on Solaris 2.5.1.
3681         Fix prototype of recv() and send() in sys/socket.h on
3682         Solaris 2.5.1 and 2.6.
3683         * fixinc/tests/base/unistd.h: Add solaris_unistd fix test.
3684         * fixinc/tests/base/sys/socket.h: Add solaris_socket test.
3685         * fixinc/check.tpl: Use 'diff -c', not 'diff -u'.
3686         * fixinc/fixincl.x: Regenerate.
3687
3688 2003-05-27  Jason Merrill  <jason@redhat.com>
3689
3690         * tree.c (expr_first, expr_length): New fns.
3691         * tree.h: Declare them.
3692
3693         * tree.c (iterative_hash_expr): Hash commutative expressions
3694         consistently.
3695
3696 2003-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3697
3698         * tree.h (contains_placeholder_p): Now returns bool.
3699         (CONTAINS_PLACEHOLDER_P): New macro.
3700         (type_contains_placeholder_p): New function.
3701         * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
3702         (contains_placeholder_p): Now returns bool.
3703         Rework to use CONTAINS_PLACEHOLDER_P macro.
3704         (type_contains_placeholder_p): New function.
3705         * fold-const.c (fold, case COMPONENT_REF): Don't fold if
3706         type_contains_placeholder_p.
3707         (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
3708         Use CONTAINS_PLACEHOLDER_P macro.
3709         * builtins.c (fold_builtin): Likewise.
3710         * calls.c (initialize_argument_information): Likewise.
3711         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3712         * explow.c (expr_size): Likewise.
3713         * expr.c (store_constructor, get_inner_reference): Likewise.
3714         * function.c (assign_parms): Likewise.
3715         * stor-layout.c (variable_size): Likewise.
3716
3717 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
3718
3719         * diagnostic.h (output_verbatim, verbatim):  Remove  printf
3720         attribute.
3721
3722 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3723
3724         * doc/contrib.texi (Contributors): Update Kean Johnston.
3725
3726 2003-05-24  David Edelsohn  <edelsohn@gnu.org>
3727
3728         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute.
3729
3730 2003-05-24  Nathanael Nerode  <neroden@gcc.gnu.org>
3731
3732         * config/rs6000/440.md, config/stormy16/stormy16protos.h,
3733         config/stormy16/stormy16.c, config/stormy16/stormy16.md:
3734         Replace "GNU CC" with "GCC".
3735
3736 2003-05-24  Matt Kraai  <kraai@alumni.cmu.edu>
3737
3738         * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for
3739         intermediate computation.
3740
3741 2003-05-23  Eric Christopher  <echristo@redhat.com>
3742
3743         * config/mips/mips.md (clzsi, clzdi): New patterns.
3744
3745 2003-05-23  Geoffrey Keating  <geoffk@apple.com>
3746
3747         * gcc.c (default_compilers): Use -o to specify preprocessor's output
3748         file.  Make -no-integrated-cpp work when building PCH files.
3749         * objc/lang-specs.h: Likewise.
3750
3751 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
3752
3753         * fixinc/Makefile.in: Correct description.
3754         * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c,
3755         fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c,
3756         fixinc/genfixes: Replace "GNU CC" with "GCC".
3757
3758 2003-05-23  Roger Sayle  <roger@eyesopen.com>
3759
3760         * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl
3761         builtin functions (and their __builtin_* variants).
3762         * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}.
3763         (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not
3764         optimizing.
3765
3766         * doc/extend.texi: Document new tan and atan builtins, and
3767         their float and long double variants.
3768
3769 2003-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3770
3771         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
3772         __sparcv9 in the TARGET_ARCH64 case.
3773
3774 Fri May 23 22:17:32 CEST 2003  Jan Hubicka  <jh@suse.cz>
3775
3776         * i386.c (ix86_reorg): Calls are also jumps.
3777
3778 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
3779
3780         * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL
3781         note containing an EXPR_LIST, process all the arguments.
3782
3783 Fri May 23 21:19:31 CEST 2003  Jan Hubicka  <jh@suse.cz>
3784                                Andreas Jaeger  <aj@suse.de>
3785
3786         * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
3787         do not use assertion.
3788
3789 2003-05-23  Mike Stump  <mrs@apple.com>
3790
3791         * tlink.c (scan_linker_output): Add support for darwin linker, as it
3792         emits unresolved symbols one per line, consuming the entire line.
3793
3794 2003-05-23  Larin Hennessy <larin@science.oregonstate.edu>
3795             Zack Weinberg <zack@codesourcery.com>
3796
3797         * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe.
3798         * config/m68k/m68k.c (m68k_output_function_prologue):
3799         Remove code under #if NEED_PROBE.
3800         * config/m68k/m68k.h: Don't define NEED_PROBE.
3801         * config/m68k/m68k.md: Remove "probe" insn.
3802         * doc/md.texi: Remove documentation of "probe" pattern.
3803
3804 2003-05-23  Dorit Naishlos  <gcchaifa@il.ibm.com>
3805
3806         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute.
3807
3808 2003-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3809
3810         * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
3811         Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
3812
3813 2003-05-22  Roger Sayle  <roger@eyesopen.com>
3814
3815         * real.c (real_maxval): New function to return the largest finite
3816         value representable in a given mode (i.e. FLT_MAX and DBL_MAX).
3817         * real.h (real_maxval): Prototype here.
3818         * fold-const.c (fold_inf_compare): Transform comparisons against
3819         +-Infinity into comparisons against DBL_MAX (or equivalent).
3820
3821 2003-05-22  Mike Stump  <mrs@apple.com>
3822
3823         * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the
3824         default.
3825
3826 2003-05-22  DJ Delorie  <dj@redhat.com>
3827
3828         * calls.c (expand_call): If the arg block is going to grow
3829         downward, we need argblock to point to the top of the block,
3830         not the bottom.
3831
3832 2003-05-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3833
3834         * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
3835
3836         * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if
3837         constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER.
3838
3839 2003-05-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3840
3841         * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
3842         * m68k.c: Likewise.
3843         * m68k.h: Likewise.
3844
3845 2003-05-22  Zack Weinberg  <zack@codesourcery.com>
3846
3847         PR other/2873
3848         * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
3849         expressions to prevent triggering on recent curses.h,
3850         linux/nls.h, or X11/Xlib.h.
3851         (stdio_va_list): Add _G_va_list to bypass pattern.
3852         (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
3853         * fixinc/fixincl.x: Regenerate.
3854
3855 2003-05-22 Rekha Bhintade <rekhad@kpitcummins.com>
3856
3857         * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target
3858         switches when --target-help option is specified.
3859
3860 2003-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3861
3862         PR bootstrap/10805
3863         * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
3864         failure with Sun assembler 5.0 Alpha 03/27/98.
3865
3866 2003-05-21  Loren James Rittle  <ljrittle@acm.org>
3867
3868         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
3869         to match system compiler convention.
3870
3871 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
3872
3873         * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for nonzero
3874         value, not just if defined.
3875         Update copyright year.
3876
3877 2003-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3878
3879         PR target/6428
3880         * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling
3881         directories from LIB_SPEC to LINK_SPEC.  Emit warning if `-p' or `-pg'
3882         option is used without `-static'.
3883         * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise.
3884         * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise.
3885
3886 2003-05-21  Bob Wilson  <bob.wilson@acm.org>
3887
3888         * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
3889         TARGET_SERIALIZE_VOLATILE): Delete.
3890         (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
3891         (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
3892         (TARGET_SWITCHES): Remove "-mserialize-volatile" and
3893         "-mno-serialize-volatile".
3894         * config/xtensa/xtensa.c (print_operand): Remove checks of
3895         TARGET_SERIALIZE_VOLATILE.
3896         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
3897         * doc/invoke.texi (Option Summary, Xtensa Options): Remove
3898         "-mserialize-volatile" and "-mno-serialize-volatile" options.
3899
3900 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
3901
3902         * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier.
3903         (nested_function): Likewise.
3904         (notype_nested_function): Likewise.
3905
3906 2003-05-21  Nick Clifton  <nickc@redhat.com>
3907
3908         * config/stormy16/stormy-abi: Update overflow type for
3909         R_XSTORMY16_16 reloc.
3910
3911 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
3912
3913         * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
3914         * c-parse.in (reswords): Remove __bounded__ and __unbounded__.
3915         (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
3916         * print-tree.c (print_node): Remove ambient-boundedness.
3917         * tree.h (tree_common): Remove bounded_flag.
3918         (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
3919         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
3920         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
3921         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
3922         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
3923         Remove.
3924         (TYPE_QUALS): Remove BOUNDED.
3925         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
3926         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
3927         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
3928         TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
3929         VA_LIST_POINTER_DEPTH): Remove.
3930         (struct tree_type): Remove pointer_depth.
3931
3932 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3933
3934         * c-pretty-print.c (pp_c_integer_literal): Use
3935         HOST_WIDE_INT_PRINT_DOUBLE_HEX.
3936
3937 2003-05-20  Roger Sayle  <roger@eyesopen.com>
3938             Kazu Hirata  <kazu@cs.umass.edu>
3939             Joern Rennecke  <joern.rennecke@superh.com>
3940
3941         * gcse.c (cprop_jump):  Make use of REG_EQUAL notes on both
3942         setcc and jump, if they exist.  If substituted instruction
3943         fails to validate, store current effort in a REG_EQUAL note.
3944         (cprop_insn): Don't attempt further substitutions if the
3945         current instruction has been deleted.
3946         (local_cprop_pass): Likewise.
3947
3948         * jump.c (redirect_jump):  Also update REG_EQUAL note, if
3949         one is attached to the jump instruction.
3950         (invert_jump): Delete REG_EQUAL note on jump, if one exists.
3951
3952 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
3953
3954         PR c++/9738
3955         * config/i386/winnt.c (i386_pe_encode_section_info): Enable
3956         even if not first.
3957
3958 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3959
3960         * genautomata.c (output_description, output_automaton_units,
3961         output_state_arcs): Add missing specifiers.
3962
3963 2003-05-20  Bob Wilson  <bob.wilson@acm.org>
3964
3965         * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives.
3966         (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros.
3967         (__mulsi3): Use do_addx* instead of ADDX* instructions.  Formatting.
3968         (nsau): Rename to do_nsau.  Provide alternate version for use when
3969         the NSAU instruction is available.
3970         (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro.
3971         (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction.
3972         * config/xtensa/xtensa-config.h: Update comments to match binutils.
3973         (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define.
3974         * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define.
3975         (TARGET_ABS, TARGET_ADDX): Define.
3976         (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX.
3977         (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx".
3978         * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4,
3979         *subx8): Set predicate condition to TARGET_ADDX.
3980         (abssi2): Set predicate condition to TARGET_ABS.
3981         * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs",
3982         "-maddx", and "-mno-addx" options.
3983         (Xtensa Options): Likewise.  Also tag some opcode names with @code.
3984
3985 2003-05-20  Kevin Ryde <user42@zip.com.au>
3986             Wolfgang Bangerth <bangerth@dealii.org>
3987
3988         PR/10355
3989         * doc/extend.texi: Put a warning into the documentation
3990         of attribute regparm.
3991
3992 2003-05-20  Jason Merrill  <jason@redhat.com>
3993
3994         * tree.c (expr_last): New fn.
3995         * tree.h: Declare it.
3996         * objc/objc-act (expr_last): Rename to objc_expr_last.
3997
3998 2003-05-20  J"orn Rennecke <joern.rennecke@superh.com>
3999
4000         * sh.c (sh_register_move_cost): Add clase for moving between
4001         FP registers and MAC registers.
4002
4003 2003-05-19  John David Anglin  <dave.anglin@nrc-gnrc.gc.ca>
4004
4005         * pa/milli64.S ($$mulI): Fix typo.
4006
4007 2003-05-19  Matt Kraai  <kraai@alumni.cmu.edu>
4008
4009         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p)
4010         (nonlocal_set_p): Remove initial blank line.
4011         * dwarf2out.c (simple_type_size_in_bits): Likewise.
4012         * et-forest.c (et_forest_create): Likewise.
4013         * explow.c (stabilize): Likewise.
4014         * fix-header.c (write_lbrac): Likewise.
4015         * graph.c (start_fct, node_data): Likewise.
4016         * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise.
4017         * rtlanal.c (global_reg_mentioned_p): Likewise.
4018         * tree.c (bit_position): Likewise.
4019
4020 2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
4021
4022         * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct
4023         -lthread to -lpthread.
4024
4025 2003-05-19  Neil Booth  <neil@daikokuya.co.uk>
4026
4027         * c-opts.c (c_common_decode_option): Don't accept dollars
4028         as identifier characters in assembly.
4029         * doc/cpp.texi: Document this.
4030
4031 2003-05-19  Seth Arnold  <sarnold@wirex.com>
4032             Aldy Hernandez  <aldyh@redhat.com>
4033
4034         * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
4035         vrsave_size twice.
4036
4037 2003-05-19  Aldy Hernandez  <aldyh@redhat.com>
4038
4039         * doc/tm.texi (function_arg): Fix typo.
4040
4041 2003-05-19  Matt Austern  <austern@apple.com>
4042
4043         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option.
4044         * c-common.h (warn_invalid_offsetof): Declare.
4045         * c-common.c (warn_invalid_offsetof): Define.
4046         * doc/invoke.texi: Document -Winvalid-offsetof.
4047         * testsuite/g++.dg/other/offsetof3.C: New.
4048         * testsuite/g++.dg/other/offsetof4.C: New.
4049
4050 2003-05-19  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
4051             David Edelsohn  <edelsohn@gnu.org>
4052
4053         * config/rs6000/rs6000.c (rs6000_alignment_string,
4054         rs6000_alignment_flags): New variables.
4055         (rs6000_parse_alignment_option): New function.
4056         (rs6000_override_options): Call it.
4057         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
4058         (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
4059         macros.
4060         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
4061         natural alignment if TARGET_NATURAL_ALIGNMENT
4062         (ROUND_TYPE_ALIGN): Always use default record alignment if
4063         TAGET_NATURAL_ALIGNMENT.
4064         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
4065         (ROUND_TYPE_ALIGN): Same.
4066         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
4067         (ROUND_TYPE_ALIGN): Same.
4068         * doc/invoke.texi (Option Summary, PowerPC Options): Document
4069         new options.
4070
4071 2003-05-19  J"orn Rennecke <joern.rennecke@superh.com>
4072
4073         * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME
4074         of a function using ASMSPEC, prepend a star.
4075
4076 2003-05-19  Jason Merrill  <jason@redhat.com>
4077
4078         * tree-inline.c (copy_body_r): Avoid generating &* during inline
4079         substitution.
4080
4081 2003-05-19  Andrew Macleod  <amacleod@redhat.com>
4082
4083         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do
4084         not mark assignments to the hard frame pointer as being stack
4085         frame related.
4086         (xstormy16_expand_epilogue): Mark adjustments to the stack
4087         pointer as being stack frame related.
4088
4089 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
4090
4091         * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY,
4092         ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros.
4093         (PREDICATE_CODES): Add hilo_operand.
4094         * config/mips/mips.c (hilo_operand): New predicate.
4095         (mips_adjust_insn_length): Account for the number nops that might
4096         be needed to avoid hardware hazards.
4097         * config/mips/mips.md (dslot): Remove attribute.
4098         (hazard): New attribute.
4099         (can_delay): Use it.  Check for calls, branches & jumps.
4100         (muldi3): Use the standard dmult pattern for mips16 code.
4101         (muldi3_internal, muldi3_internal2): Adjust conditions accordingly.
4102
4103 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
4104
4105         * config/mips/mips-protos.h (final_prescan_insn,
4106         mips_count_memory_refs, mips_fill_delay_slot): Remove.
4107         * config/mips/mips.h (delay_type, dslots_load_total,
4108         dslots_load_filled, dslots_jump_total, dslots_jump_filled,
4109         dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2,
4110         mips_load_reg3, mips_load_reg4): Remove.
4111         (MASK_STATS): Remove.
4112         (MASK_EXPLICIT_RELOCS): Reuse its value.
4113         (TARGET_STATS): Remove.
4114         (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops.
4115         Warn that -mstats is now ignored.
4116         (FINAL_PRESCAN_INSN): Undefine.
4117         (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics.
4118         (ASM_OUTPUT_REG_POP): Likewise.
4119         * config/mips/mips.c (dslots_load_total, dslots_load_filled,
4120         dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs,
4121         mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4,
4122         mips_fill_delay_slot, mips_count_memory_refs,
4123         final_prescan_insn): Remove.
4124         (output_block_move): Remove calls to mips_count_memory_refs.
4125         (print_operand): Remove printing of #nop for TARGET_STATS.
4126         (mips_output_function_epilogue): Remove TARGET_STATS code.
4127         Reorganize setting of fnnmae.
4128         * config/mips/mips.md: Remove handling of dslot statistics
4129         throughout file.  Change all fcmp patterns into normal asm
4130         templates, removing calls to mips_fill_delay_slot.
4131         * doc/invoke.texi: Remove documentation of -mstats.
4132
4133 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
4134
4135         * config/mips/mips.c (mips_class_max_nregs): Return the number of
4136         words in the mode.
4137
4138 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
4139
4140         * config/mips/mips.c (override_options): Disable explicit
4141         relocs for old ABIs unless using gas.
4142
4143 2003-05-18  Eric Christopher  <echristo@redhat.com>
4144
4145         * config/mips/mips.h: Remove definition of g_switch_value.
4146
4147 2003-05-18  Matt Kraai  <kraai@alumni.cmu.edu>
4148
4149         * flags.h (g_switch_value): Change to an unsigned
4150         HOST_WIDE_INT.
4151         * toplev.c (g_switch_value): Likewise.
4152
4153         * config/alpha/alpha.c (small_symbolic_operand): Remove
4154         g_switch_value cast.
4155         (alpha_in_small_data_p): Cast size to an unsigned
4156         HOST_WIDE_INT.
4157
4158         * config/frv/frv.c (frv_in_small_data_p): Cast size to an
4159         unsigned HOST_WIDE_INT.
4160         * config/frv/frv.h (g_switch_value, g_switch_set): Remove.
4161         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
4162
4163         * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
4164         unsigned HOST_WIDE_INT.
4165         (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4166         * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
4167         (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
4168
4169         * config/rs6000/rs6000.c (rs6000_file_start): Use
4170         HOST_WIDE_INT_PRINT_UNSIGNED.
4171         (small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
4172         (rs6000_elf_in_small_data_p): Cast size to unsigned
4173         HOST_WIDE_INT.
4174         * config/rs6000/sysv4.h (g_switch_value, g_switch_set):
4175         Remove.
4176         (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
4177         g_switch_set.
4178         (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
4179         g_switch_value cast.
4180
4181 2003-05-18  Roger Sayle  <roger@eyesopen.com>
4182             Zack Weinberg  <zack@codesourcery.com>
4183
4184         PR middle-end/10472
4185         * builtins.c (expand_builtin_memcpy):  Call force_operand on
4186         expressions and use simplify_gen_binary to create the addition.
4187
4188 2003-05-18  Andreas Schwab  <schwab@suse.de>
4189
4190         * config/m68k/m68k.md: Use define_constants for unspec numbers.
4191
4192 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
4193
4194         * config/sparc/sparc.h: Define sparc for now.
4195 2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
4196
4197         * config.gcc: Clear xm_file, md_file at the beginning of each pass.
4198
4199         * config/stormy16/stormy16.h: Remove about 3000 lines of
4200         target-independent comments.  Update copyright notice.
4201
4202         * doc/collect2.texi: GNU CC -> GCC.
4203         * doc/headerdirs.texi: GNU CC -> GCC.
4204
4205 2003-05-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
4206
4207         * hashtable.h (struct ht_identifier): Add data member "hash_value".
4208         * hashtable.c (ht_lookup): Use it when searching, remember.
4209         (ht_expand): Do not recompute.
4210         * tree.h (IDENTIFIER_HASH_VALUE): New macro.
4211
4212 2003-05-18  Nathan Sidwell  <nathan@codesourcery.com>
4213
4214         * gcov-io.c (gcov_read_bytes): Fix fread thinko.
4215
4216 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
4217
4218         * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
4219         Default here.
4220         (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
4221         * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
4222         * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
4223         * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
4224         config/arm/linux-elf.h, config/arm/rtems-elf.h,
4225         config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
4226         config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
4227         config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
4228         config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
4229         config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
4230         config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
4231         config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
4232         config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
4233         config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
4234         config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
4235         config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
4236         Don't define __ELF__.
4237         * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
4238         Define __ELF__.
4239         * doc/cpp.texi: Document __ELF__.
4240         * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.     *
4241
4242 2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4243
4244         * builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
4245         always use stdarg.
4246         * c-errors.c (pedwarn_c99): Likewise.
4247         * c-format.c (status_warning): Likewise.
4248         * c-semantics.c (build_stmt): Likewise.
4249         * calls.c (emit_library_call, emit_library_call_value): Likewise.
4250         * collect2.c (notice, fatal_perror, fatal, error): Likewise.
4251         * cpperror.c (cpp_error, cpp_error_with_line): Likewise.
4252         * diagnostic.c (build_message_string, output_printf,
4253         output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
4254         fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
4255         error_with_decl, fnotice): Likewise.
4256         * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
4257         dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
4258         dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
4259         dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
4260         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
4261         dw2_asm_output_encoded_addr_rtx): Likewise.
4262         * emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
4263         * errors.c (warning, error, fatal, internal_error): Likewise.
4264         * final.c (output_operand_lossage, asm_fprintf): Likewise.
4265         * fix-header.c (fatal): Likewise.
4266         * gcc.c (fatal, error, notice): Likewise.
4267         * gcov.c (fnotice): Likewise.
4268         * genattrtab.c (attr_rtx, attr_printf): Likewise.
4269         * gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
4270         * gensupport.c (message_with_line): Likewise.
4271         * mips-tfile.c (fatal, error): Likewise.
4272         * protoize.c (notice): Likewise.
4273         * ra-debug.c (ra_debug_msg): Likewise.
4274         * read-rtl.c (fatal_with_file_and_line): Likewise.
4275         * rtl-error.c (error_for_asm, warning_for_asm): Likewise.
4276         * tree.c (build, build_nt, build_function_type_list): Likewise.
4277
4278 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
4279
4280         * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove.
4281         * gcc.c (cpp_predefines): Remove.
4282         (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES.
4283         (static_specs): Remove predefines.
4284         * system.h: Poison CPP_PREDEFINES.
4285         * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h,
4286         config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES.
4287
4288 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
4289
4290         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h,
4291         config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h,
4292         config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES,
4293         use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead.
4294
4295 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
4296
4297         PR c/9209
4298         * c-common.c, c-common.h (dollars_in_ident): Remove.
4299         * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
4300         (c_common_init_options, c_common_decode_option): Set dollars_in_ident.
4301         * cpphash.h (warned_dollar): Rename warn_dollars.
4302         * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
4303         Permit dollars regardless of -std=.
4304         (post_options): Set warn_dollars.
4305         * cpplex.c (forms_identifier_p): Use warn_dollars.
4306         * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
4307         Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
4308         * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
4309         Update documentation.
4310
4311 2003-05-17  Andreas Schwab  <schwab@suse.de>
4312
4313         * config/m68k/m68k.c (m68k_output_function_prologue): Use
4314         HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when
4315         formatting a HOST_WIDE_INT.
4316         (m68k_output_function_epilogue): Likewise.
4317
4318 2003-05-17  Zack Weinberg  <zack@codesourcery.com>
4319
4320         * doc/install.texi: Remove information about desupported targets.
4321
4322 2003-05-17  Andreas Schwab  <schwab@suse.de>
4323
4324         * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board.
4325         * config/m68k/linux.h: Likewise.
4326         * config/m68k/m68k-none.h: Likewise.
4327         * config/m68k/netbsd-elf.h: Likewise.
4328         * config/m68k/sgs.h: Likewise.
4329         * config/m68k/m68k.h: Likewise.
4330         * config/m68k/m68k.md: Likewise.
4331         * config/m68k/m68k.c: Likewise.
4332         * doc/md.texi (Machine Constraints): Remove Sun FPA specific
4333         constraints.
4334         * doc/invoke.texi (Option Summary): Remove -mfpa.
4335         (M680x0 Options): Likewise.
4336
4337 2003-05-17  David Edelsohn  <edelsohn@gnu.org>
4338
4339         * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
4340
4341 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
4342
4343         * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
4344         * config/sparc/liteelf.h, config/sparc/openbsd64.h,
4345         config/sparc/rtemself.h, config/sparc/sol2-64.h,
4346         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h:
4347         Update for use of TARGET_SUB_OS_CPP_BUILTINS.
4348
4349 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
4350
4351         * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and
4352         TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES.
4353
4354 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
4355
4356         * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h.
4357         * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h,
4358         sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h,
4359         sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h,
4360         sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h,
4361         sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h,
4362         sparc/sysv4.h,
4363         * sparc/sysv4-only.h: New.
4364
4365 2003-05-17  Alan Modra  <amodra@bigpond.net.au>
4366
4367         * function.c (assign_parms): Check for zero size args.
4368
4369 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4370
4371         * cfgloopanal.c (test_for_iteration): Use string concatentation on
4372         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
4373         function calls into one.
4374         * dbxout.c (dbxout_symbol): Likewise.
4375         * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
4376         * dwarf2asm.c (dw2_asm_output_data_uleb128,
4377         dw2_asm_output_data_sleb128): Likewise.
4378         * genrecog.c (debug_decision_2): Likewise.
4379         * loop.c (emit_prefetch_instructions): Likewise.
4380         * print-rtl.c (print_rtx): Likewise.
4381         * print-tree.c (print_node_brief, print_node): Likewise.
4382         * ra-debug.c (dump_igraph, dump_graph_cost,
4383         dump_static_insn_cost): Likewise.
4384         * ra-rewrite.c (dump_cost): Likewise.
4385         * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
4386         * sreal.c (dump_sreal): Likewise.
4387         * unroll.c (unroll_loop, precondition_loop_p): Likewise.
4388         * varasm.c (assemble_vtable_entry): Likewise.
4389
4390         * avr.c (avr_output_function_prologue,
4391         avr_output_function_epilogue, print_operand): Fix format specifier
4392         warnings.
4393         (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
4394         * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.
4395
4396 2003-05-16  Geoffrey Keating  <geoffk@apple.com>
4397
4398         * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING
4399         and ! TARGET_STRING cases.
4400
4401         * doc/cppopts.texi (-undef): Fix texinfo warning.
4402
4403         * doc/cppopts.texi (-H): Document that -H works for PCH files too.
4404         * cppfiles.c (validate_pch): When -H is used, print some information
4405         about PCH files found.
4406
4407 2003-05-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4408
4409         * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h.
4410         * config/mips/t-isa3264, config/mips/t-r3900: Likewise.
4411         * config/mips/t-sr71k: Likewise.
4412
4413 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4414
4415         * arc.c (arc_output_function_prologue,
4416         arc_output_function_epilogue): Fix format specifier warnings.
4417         * arc.h (LARGE_INT): Fix signed/unsigned warnings.
4418
4419         * v850.c (print_operand): Fix format specifier warnings.
4420
4421         * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format
4422         specifier warnings.
4423
4424         * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix
4425         format specifier warnings.
4426
4427         * ip2k.c (function_prologue, function_epilogue, print_operand):
4428         Fix format specifier warnings.
4429         * ip2k.md: Likewise.
4430
4431         * i960.c (i960_output_function_prologue, i960_print_operand,
4432         i960_print_operand_addr): Fix format specifier warnings.
4433
4434         * i370.c (ascebc, ebcasc): Wrap in macros controlling usage.
4435         (i370_output_function_prologue): Fix format specifier warnings.
4436         * i370.h (PRINT_OPERAND): Likewise.
4437
4438         * fr30.c (fr30_print_operand): Fix format specifier warnings.
4439
4440         * dsp16xx.c (print_operand_address): Fix format specifier warning.
4441         * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers.
4442
4443         * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format
4444         specifier warnings.
4445
4446         * alpha.c (print_operand_address, alpha_start_function,
4447         unicosmk_output_ssib): Use string concatentation on
4448         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
4449         function calls into one.
4450         * arm.c (arm_print_operand): Likewise.
4451         * cris.c (cris_asm_output_mi_thunk): Likewise.
4452         * frv.c (frv_asm_output_mi_thunk): Likewise.
4453         * ia64.c (ia64_print_operand, process_set): Likewise.
4454         * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
4455         Likewise.
4456         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
4457         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
4458         * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
4459         * pa.h (PRINT_OPERAND_ADDRESS): Likewise.
4460         * rs6000.c (rs6000_va_start, print_operand_address): Likewise.
4461         * s390.c (s390_assemble_integer): Likewise.
4462         * sparc.c (sparc_flat_function_prologue,
4463         sparc_flat_function_epilogue): Likewise.
4464         * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
4465         * vax.c (vax_output_mi_thunk): Likewise.
4466
4467         * frv.c (frv_print_operand_memory_reference): Fix format specifier
4468         warning.
4469         (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED.
4470
4471         * m68k.c (m68k_output_function_epilogue): Fix format specifier
4472         warnings.
4473
4474         * stormy16-protos.h (xs_hi_general_operand,
4475         xs_hi_nonmemory_operand): Prototype.
4476         * stormy16.c (xstormy16_output_shift): Fix format specifier
4477         warnings.
4478
4479         * cris.c: Fix format specifier warnings.
4480
4481 2003-05-16  Nick Clifton  <nickc@redhat.com>
4482
4483         * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM.
4484
4485 2003-05-16  Wolfgang Bangerth <bangerth@dealii.org>
4486
4487         * doc/bugreport.texi: Remove most of the of the preface of the
4488         bugs section.
4489
4490 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
4491
4492         * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
4493         .save XX, r0.
4494
4495 2003-05-15  Roger Sayle  <roger@eyesopen.com>
4496
4497         * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
4498
4499 2003-05-15  Eric Christopher  <echristo@redhat.com>
4500
4501         * cfgcleanup.c (merge_blocks): Fix return value.
4502
4503 2003-05-15 Eric Christopher <echristo@redhat.com>
4504
4505         * combine.c (expand_compound_operation): Make sure
4506         that zero_extend operation is profitable.
4507
4508 2003-05-15  Richard Henderson  <rth@redhat.com>
4509
4510         * config/alpha/linux.h, config/alpha/linux-elf.h: Remove
4511         code protected by USE_GNULIBC_1.
4512
4513 2003-05-15  Zack Weinberg  <zack@codesourcery.com>
4514
4515         * config.gcc: Purge all targets obsoleted in GCC 3.3.  Also
4516         remove hppa*-*-mpeix* which could not be built, and prune
4517         files from tmake_file= or tm_file= lists that don't exist.
4518
4519         * config/alpha/alpha-interix.h, config/alpha/alpha32.h
4520         * config/alpha/t-interix, config/arm/conix-elf.h
4521         * config/arm/t-arm-aout, config/arm/t-strongarm-coff
4522         * config/arm/unknown-elf-oabi.h, config/i386/win32.h
4523         * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h
4524         * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h
4525         * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h
4526         * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h
4527         * config/m68k/m68k-psos.h, config/m68k/mot3300.h
4528         * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h
4529         * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h
4530         * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h
4531         * config/m68k/t-mot3300, config/m68k/t-mot3300-gald
4532         * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld
4533         * config/m68k/tower-as.h, config/m68k/tower.h
4534         * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h
4535         * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh
4536         * config/m88k/m88k-protos.h, config/m88k/m88k.c
4537         * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h
4538         * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas
4539         * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h
4540         * config/mips/rtems64.h, config/mips/sni-gas.h
4541         * config/mips/sni-svr4.h, config/mips/t-ecoff
4542         * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h
4543         * config/mn10200/mn10200.c, config/mn10200/mn10200.h
4544         * config/mn10200/mn10200.md, config/mn10200/t-mn10200
4545         * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h
4546         * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h
4547         * config/romp/romp-protos.h, config/romp/romp.c
4548         * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h
4549         * config/rs6000/aix3newas.h, config/rs6000/mach.h
4550         * config/sparc/bsd.h, config/sparc/hal.h
4551         * config/sparc/linux-aout.h, config/sparc/lynx-ng.h
4552         * config/sparc/lynx.h, config/sparc/netbsd.h
4553         * config/sparc/sp86x-aout.h, config/sparc/splet.h
4554         * config/sparc/sun4gas.h, config/sparc/sun4o3.h
4555         * config/sparc/sunos4.h, config/sparc/t-chorus-elf
4556         * config/sparc/t-halos, config/sparc/t-sparcbare
4557         * config/sparc/t-splet, config/sparc/t-sunos41
4558         * config/v850/rtems.h: Delete file.
4559
4560 2003-05-15  Aldy Hernandez  <aldyh@redhat.com>
4561
4562         * config/rs6000/rs6000-protos.h (function_value): Protoize.
4563
4564         * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function.
4565
4566         * config/rs6000/rs6000.c (rs6000_function_value): New.
4567
4568 2003-05-15  Philip Blundell  <philb@gnu.org>
4569
4570         * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
4571         All uses updated.
4572         (arm_tune_xscale): New variable.
4573         (arm_override_options): Set it.
4574         (arm_adjust_cost): Use it in place of arm_arch_xscale.
4575         (arm_gen_load_multiple): Likewise.
4576         (arm_gen_store_multiple): Likewise.
4577         * config/arm/arm.md (is_xscale): Likewise.
4578         * config/arm/arm.h (arm_tune_xscale): Declare.
4579
4580 2003-05-15  Philip Blundell  <philb@gnu.org>
4581
4582         PR target/10730
4583         * config/arm/arm.c (adjacent_mem_locations): Reject offsets
4584         involving invalid constants.
4585
4586 2003-05-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4587
4588         * pa.c (hppa_expand_prologue): Remove blockage.
4589
4590 2003-05-15  Wolfgang Bangerth <bangerth@dealii.org>
4591
4592         * doc/bugreport.texi: Remove most of the bug reporting
4593         instructions and merge them into bugs.html.
4594
4595 2003-05-14  Matt Kraai  <kraai@alumni.cmu.edu>
4596
4597         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
4598         g_switch_value to unsigned HOST_WIDE_INT.
4599
4600 2003-05-14  Eric Christopher  <echristo@redhat.com>
4601
4602         * combine.c: Fix header comments.
4603         (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
4604         to all calls and prototype.
4605
4606 2003-05-14  Roger Sayle  <roger@eyesopen.com>
4607
4608         PR optimization/10764
4609         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
4610         Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1).
4611         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3):  Likewise,
4612         add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1).
4613         (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match
4614         the corresponding *fyl2x_?fxf3 instructions.
4615
4616 2003-05-14  Bob Wilson  <bob.wilson@acm.org>
4617
4618         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
4619         * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
4620         XCHAL_HAVE_L32R): New.
4621         * config/xtensa/xtensa-protos.h (non_const_move_operand,
4622         xtensa_load_constant, xtensa_function_prologue,
4623         xtensa_function_epilogue): Delete prototypes.
4624         (xtensa_expand_prologue): New.
4625         * config/xtensa/xtensa.c (frame_size_const,
4626         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
4627         non_const_move_operand, xtensa_load_constant, xtensa_reorg,
4628         xtensa_function_prologue): Delete.
4629         (add_operand, xtensa_mem_offset): Formatting.
4630         (move_operand): If the const16 option is available, allow any SFmode
4631         and SImode constants.
4632         (xtensa_emit_move_sequence): Inline the former contents of
4633         xtensa_load_constant with modifications to handle the const16 option.
4634         (override_options): Add xtensa_char_to_class['W'] and set it to
4635         the general register class only if the const16 option is enabled.
4636         Fix formatting.  Disallow PIC when using the const16 option.
4637         (print_operand): Reorganize to switch on "letter" instead of the
4638         RTL code.  Add output_operand_lossage calls for invalid cases.
4639         Add support for 't' and 'b' letters.
4640         (xtensa_expand_prologue): New function to replace
4641         xtensa_function_prologue and xtensa_reorg.
4642         (xtensa_function_epilogue): Declare this as static.  Delete code
4643         to print the retw.n or retw instruction.
4644         (xtensa_return_addr): Use A0_REG instead of 0.
4645         (xtensa_rtx_costs): Add costs for using the const16 option.
4646         * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
4647         (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
4648         (TARGET_SWITCHES): Add "const16" and "no-const16".
4649         (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
4650         (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
4651         using the const16 option.
4652         (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
4653         (TRAMPOLINE_SIZE): Change from 49 to 59.
4654         (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
4655         (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
4656         when using the const16 option.
4657         (PREDICATE_CODES): Delete non_const_move_operand.
4658         * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
4659         UNSPECV_ENTRY.
4660         (movdi, movdf): If the source is a constant, always expand to a
4661         sequence of movsi insns.
4662         (movdi_internal, movdf_internal): Remove alternative using l32r insns.
4663         (movsi_internal, movsf_internal): Add alternative using const16 insns.
4664         (movsf): Add const16 support.
4665         (entry, prologue, epilogue): New.
4666         (set_frame_ptr): Add missing mode for unspec_volatile operation.
4667         Likewise for subsequent split pattern.
4668         * doc/invoke.texi (Option Summary, Xtensa Options): Document new
4669         "-mconst16" and "-mno-const16" options.
4670
4671 2003-05-14  Richard Henderson  <rth@redhat.com>
4672
4673         * config/ia64/ia64.c (ia64_expand_load_address): Force destination
4674         to be DImode register.  Merge load_symptr.
4675         * config/ia64/ia64.md (load_symptr): Remove.
4676
4677 2003-05-14  Richard Henderson  <rth@redhat.com>
4678
4679         * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from
4680         DEFERRED_CONSTANT_P.
4681         * integrate.c (copy_rtx_and_substitute): Update use.
4682         * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL
4683         to the copy generated.
4684         (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN
4685         of the constant to see if we should emit.
4686         (mark_constant): Similarly.
4687         (output_constant_def_contents): Set TREE_ASM_WRITTEN.
4688
4689 2003-05-14  David Edelsohn  <edelsohn@gnu.org>
4690
4691         * config/rs6000/rs6000.md (movsi_internal2): Use compare for self
4692         move record condition.
4693         (movdi_internal2): Same.
4694
4695 2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
4696
4697         * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here.
4698         (GCOV_TAG_*) Force type to gcov_unsigned_t.
4699         (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New.
4700         (struct gcov_var): Remove modified. Add start, length, offset,
4701         overread. Have buffer array for libgcov.
4702         (gcov_sync, gcov_seek): Definitions moved to gcov-io.c.
4703         (gcov_position, gcov_rewrite, gcov_is_eof): Adjust.
4704         * gcov-io.c (gcov_open): Set mode, do not read anything.
4705         (gcov_close): Write final block.
4706          (gcov_write_block, gcov_allocate): New.
4707         (gcov_write_bytes): Make static. Write or allocate buffer.
4708         (gcov_write_unsigned, gcov_write_counter): Buffer can never be
4709         null.
4710         (gcov_write_string): Adjust.
4711         (gcov_write_tag)
4712         (gcov_write_length): Adjust. Flush the block.
4713         (gcov_write_tag_length): Buffer can never be null.
4714         (gcov_read_bytes): Make static. Read in block.
4715         (gcov_sync): Moved here. Adjust.
4716         (gcov_seek): Moved here. Adjust.
4717         * coverage.c (read_counts_file): Adjust.
4718         * gcov-dump.c (print_prefix): Add position parameter.
4719         (flag_dump_positions): New flag.
4720         (options, main, print_usage): Add it.
4721         (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters,
4722         tag_summary): Adjust.
4723         * gcov.c (read_graph_file, read_count_file): Adjust.
4724         * libgcov.c (gcov_exit): Adjust.
4725
4726         * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files
4727         (libgcov.a): Depend on libgcc.a.
4728         (gcov.o, gcov-dump.o): Add gcov-io.c.
4729         * mklibgcc.in (libgcov_c_dep): Use $(srcdir).
4730
4731         * loop.c (check_dbra_loop): Factor common test.
4732
4733 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
4734
4735         * doc/md.texi (Automaton pipeline description): Grammar fixes.
4736
4737 2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
4738
4739         * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
4740         (TARGET_INITIALIZER): Include it.
4741         * target.h (struct gcc_target): Add machine_dependent_reorg field.
4742         * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
4743         * system.h: Poison MACHINE_DEPENDENT_REORG.
4744
4745         * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
4746         * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
4747         * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4748         (alpha_handle_trap_shadows): Remove "first insn" parameter.
4749         (alpha_align_insns): Likewise.
4750         (alpha_reorg): Likewise.  Make static.  Update calls to above
4751         functions.
4752
4753         * config/arm/arm-protos.h (arm_reorg): Remove declaration.
4754         * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
4755         * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4756         (arm_reorg): Remove parameter.  Make static.
4757
4758         * config/avr/avr-protos.h (machine_dependent_reorg): Remove.
4759         * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
4760         * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4761         (avr_reorg): Renamed from machine_dependent_reorg.  Make static.
4762         Remove parameter.
4763
4764         * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
4765         * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
4766         * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4767         (c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
4768         Remove parameter.
4769
4770         * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
4771         * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
4772         * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
4773
4774         * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
4775         * config/frv/frv.c: Remove orphaned comment.
4776
4777         * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
4778         * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
4779         * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4780         (ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
4781         Remove parameter.
4782
4783         * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
4784         * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
4785         * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4786         (emit_insn_group_barriers): Remove "first insn" parameter.
4787         (emit_all_insn_group_barriers): Likewise.
4788         (ia64_reorg): Likewise.  Make static.  Update calls to above functions.
4789         (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
4790
4791         * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
4792         * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
4793         * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4794         (ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
4795         Remove parameter.
4796
4797         * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
4798         * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
4799         * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4800         (m68hc11_reorg): Make static.  Remove parameter.
4801
4802         * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
4803         * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
4804         * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4805         (conditionalize_optimization): Remove parameter.
4806         (mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
4807         Make static.  Update call to conditionalize_optimization.
4808
4809         * config/mips/mips-protos.h (machine_dependent_reorg): Remove.
4810         * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
4811         * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4812         (mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
4813         Make static.
4814
4815         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
4816         * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
4817         * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4818         (mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
4819         Remove parameter.
4820
4821         * config/pa/pa-protos.h (pa_reorg): Remove declaration.
4822         * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
4823         * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4824         (pa_combine_instructions): Remove "first insn" parameter.
4825         (remove_useless_addtr_insns): Likewise.
4826         (pa_reorg): Likewise.  Make static.  Update calls to above functions.
4827
4828         * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
4829         commented-out definition.
4830
4831         * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
4832         * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
4833         * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4834         (s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
4835         Remove parameter.
4836
4837         * config/sh/sh-protos.h (machine_dependent_reorg): Remove.
4838         * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
4839         * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4840         (sh_reorg): Renamed from machine_dependent_reorg.  Make static.
4841         Remove parameter.
4842         (sh_output_mi_thunk): Call sh_reorg directly.
4843         * config/sh/sh.md: Update comment.
4844
4845         * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
4846         commented-out definition.
4847
4848         * config/v850/v850-protos.h (v850_reorg): Remove declaration.
4849         * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
4850         * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4851         (v850_reorg): Make static.  Remove parameter.
4852
4853         * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
4854         * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
4855         * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
4856         (xtensa_reorg): Make static.  Remove parameter.
4857
4858         * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
4859         (TARGET_MACHINE_DEPENDENT_REORG): Document.
4860
4861 2003-05-13  Richard Henderson  <rth@redhat.com>
4862
4863         * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
4864         the old decl had instantiated DECL_RTL.
4865
4866 2003-05-13  Mike Stump  <mrs@apple.com>
4867
4868         * doc/invoke.texi (Option Summary): Kill off documentation for -$.
4869
4870 2003-05-13  Janis Johnson  <janis187@us.ibm.com>
4871
4872         * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect
4873         HOST_WIDE_INT argument.
4874
4875 2003-05-13  Jason Merrill  <jason@redhat.com>
4876
4877         * tree.h (STRIP_MAIN_TYPE_NOPS): New macro.
4878
4879         * tree.c (iterative_hash_expr): New fn.
4880
4881         * c-semantics.c (emit_local_var): Don't mess with temp slots if
4882         there's no initializer.
4883
4884 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
4885
4886         * final.c (final_scan_insn): Apply the effects of frame-related
4887         delay slot insns before emitting a delayed branch.
4888
4889 2003-05-13  Nick Clifton  <nickc@redhat.com>
4890
4891         * config/mcore/mcore.md (jump): Use emit_jump_insn.
4892
4893 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
4894
4895         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second
4896         parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT.
4897
4898 2003-05-12  DJ Delorie  <dj@redhat.com>
4899
4900         * expr.c (move_by_pieces): Honor the alignment of TO and FROM.
4901         (emit_push_insn): Don't use push when the source alignment is less
4902         than the stack's push rounding.
4903
4904 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
4905
4906         * diagnostic.c (output_format): Add support for %m.
4907         (output_printf, output_verbatim, diagnostic_set_info,
4908         verbatim): Set err_no field of the text_info structure being
4909         initialized.
4910         (fatal_io_error): Delete function.
4911         * diagnostic.h (text_info): Add err_no field.
4912         * toplev.h (fatal_io_error): Delete prototype.
4913
4914         * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c
4915         * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c
4916         * objc/objc-act.c: Replace all calls to fatal_io_error with
4917         calls to fatal_error; add ": %m" to the end of all the affected
4918         error messages.
4919
4920 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
4921
4922         * varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
4923         * rtl.h: Prototype it.
4924         * integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
4925         when appropriate.
4926
4927 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
4928
4929         * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
4930         ("*iorsi3_oi"): Likewise.
4931
4932 2003-05-13  Richard Earnshaw  <rearnsha@arm.com>
4933
4934         * arm.md (compare_scc): Use shorter sequence for EQ case.
4935         (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns.
4936         (and_scc_scc): Ensure split only applies when there is a dominance
4937         of the comparisons.
4938         (and_scc_scc_nodom): New insn-and-split pattern.
4939
4940 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
4941
4942         * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly
4943         to _Unwind_SetGRPtr().
4944
4945 2003-05-13  Michael Eager <eager@mvista.com>
4946
4947         * Makefile.in: Initialize program_transform_cross_name from
4948         @program_transform_name@ instead of target_alias.
4949
4950 2003-05-12  Janis Johnson  <janis187@us.ibm.com>
4951             Alan Modra  <amodra@bigpond.net.au>
4952             Jakub Jelinek  <jakub@redhat.com>
4953
4954         * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
4955         * configure: Rebuild.
4956         * config/rs6000/rs6000-protos.h: Update.
4957         * config/rs6000/rs6000.c (rs6000_tls_size): New.
4958         (rs6000_tls_size_string): New.
4959         (rs6000_parse_tls_size_option): New.
4960         (rs6000_legitimize_tls_address): New.
4961         (rs6000_tls_get_addr): New.
4962         (rs6000_got_sym): New.
4963         (rs6000_tls_symbol_ref): New.
4964         (rs6000_tls_symbol_ref_1): New.
4965         (rs6000_get_some_local_dynamic_name): New.
4966         (rs6000_get_some_local_dynamic_name_1): New.
4967         (TARGET_HAVE_TLS): New.
4968         (TARGET_CANNOT_FORCE_CONST_MEM): New.
4969         (rs6000_override_options): Handle -mtls-size option.
4970         (constant_pool_expr_1): Handle TLS symbols.
4971         (rs6000_legitimize_address): Handle TLS symbols.
4972         (rs6000_tls_referenced_p): New.
4973         (rs6000_legitimate_address): Handle TLS symbols.
4974         (rs6000_emit_move): Handle TLS symbols.
4975         (print_operand): Handle TLS symbols.
4976         (uses_TOC): Handle TLS symbols.
4977         (rs6000_emit_prologue): Use symbol for unspec constant.
4978         * config/rs6000/rs6000.h (HAVE_AS_TLS): New.
4979         (some_ld_name): New.
4980         (LEGITIMATE_CONSTANT_P): Handle TLS symbols.
4981         (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
4982         (PREDICATE_CODES): Add rs6000_tls_symbol_ref.
4983         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
4984         Support TLS.
4985         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
4986         tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
4987         tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
4988         tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
4989         tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
4990         tls_tls_64): New.
4991         * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
4992
4993 2003-05-12  Neil Booth  <neil@cat.daikokuya.co.uk>
4994
4995         * Makefile.in (stage2_build, stage3_build, stage4_build):
4996         Set BUILD_CC to the same as CC.
4997
4998 2003-05-12  Neil Booth  <neil@daikokuya.co.uk>
4999
5000         * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards.
5001
5002 2003-05-12  Andreas Schwab  <schwab@suse.de>
5003
5004         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
5005         as unused.
5006         (bundling): Initialize 'pos'.
5007         (ia64_expand_builtin): Initialize 'rmode'.
5008
5009 2003-05-12  David Edelsohn  <edelsohn@gnu.org>
5010
5011         * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
5012         (ASM_OUTPUT_ALIGNED_COMMON): Same.
5013         (ASM_OUTPUT_LOCAL): Same.
5014
5015 Mon May 12 21:53:29 CEST 2003  Jan Hubicka  <jh@suse.cz>
5016
5017         * varasm.c (output_constant):  Fix underflow.
5018
5019 2003-05-12  Mark Mitchell  <mark@codesourcery.com>
5020
5021         PR other/10745
5022         * configure.in: Correct detection of GNU ld version number.
5023         * configure: Regenerated.
5024
5025 2003-05-12  Zack Weinberg  <zack@codesourcery.com>
5026
5027         * diagnostic.c (diagnostic_for_decl): Take a
5028         diagnostic_context argument.  Restructure to be consistent
5029         with diagnostic_report_diagnostic.
5030         (diagnostic_count_diagnostic): Now static.  Take a
5031         diagnostic_info argument, not just a diagnostic_t.  Some code
5032         moved here from internal_error.  Move a case label for
5033         clarity.
5034         (diagnostic_action_after_output): New function.  Code moved
5035         here from internal_error and fatal_error.
5036         (bug_report_request): New #define so that this text appears in
5037         only one place.
5038         (diagnostic_report_diagnostic): Update to match changes to
5039         diagnostic_count_diagnostic.  Call diagnostic_action_after_output.
5040         (diagnostic_set_info): Call gettext here.
5041
5042         (pedwarn): Update comment.  Don't call gettext here.
5043         (sorry): Use report_diagnostic.  Don't call gettext here.
5044         (fatal_error): Remove final fnotice and exit, but call
5045         real_abort to prevent warnings about noreturn function returning.
5046         (internal_error): Likewise.  Don't do ICE suppression here nor
5047         call context->internal_error.
5048         (warning_with_decl): Suppress for decls in system headers.
5049         Adjust call to diagnostic_for_decl.
5050         (pedwarn_with_decl): Likewise.
5051         (error_with_decl): Adjust call to diagnostic_for_decl.
5052         (error_recursion): Use bug_report_request.
5053
5054         * diagnostic.h: Remove prototype of diagnostic_count_diagnostic.
5055         * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call
5056         diagnostic_count_diagnostic.
5057
5058 2003-05-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5059
5060         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch.
5061
5062 Mon May 12 15:57:54 CEST 2003  Jan Hubicka  <jh@suse.cz>
5063
5064         * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT
5065         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning.
5066         * mips/mips.h (ASM_OUTPUT_SKIP):  Fix typo in the previous patch.
5067
5068 2003-05-12  Roger Sayle  <roger@eyesopen.com>
5069
5070         * doc/rtl.texi: Document zero_extract as a valid destination
5071         of a set insn.
5072
5073 2003-05-12  Richard Earnshaw  <rearnsha@arm.com>
5074
5075         * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with
5076         '.'.  Change all local symbol definitions and references to use LSYM.
5077
5078 Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
5079
5080         * expr.h (assemble_static_space): Update prototype.
5081         * output.h (assemble_zeros, output_constant): Likewise.
5082         * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
5083         * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
5084         it 64bit clean.
5085         * elf.h (ASM_OTUPUT_SKIP): Likewise.
5086         * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
5087         * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
5088         Expect HOST_WIDE_INT operand.
5089         * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
5090         Expect HOST_WIDE_INT operand.
5091         * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
5092         Expect HOST_WIDE_INT operand.
5093         * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
5094         HOST_WIDE_INT operand.
5095         * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
5096         ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
5097         * aout.h (ASM_OTUPUT_SKIP): Likewise.
5098         * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
5099         * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
5100         * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
5101         * frv.h (ASM_OTUPUT_SKIP): Likewise.
5102         * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
5103         * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
5104         Make it 64bit
5105         clean.
5106         * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
5107         * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
5108         Make it 64bit clean.
5109         * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
5110         * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
5111         HOST_WIDE_INT operand
5112         * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
5113         Expect HOST_WIDE_INT operand
5114         * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
5115         * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
5116         ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
5117         * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
5118         Likewise.
5119         * m32r.h (ASM_OUTPUT_COMMON): Likewise.
5120         * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
5121         Likewise.
5122         * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
5123         * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
5124         * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
5125         ASM_OUTPUT_SKIP): Likewise.
5126         * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
5127         Likewise.
5128         * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
5129         ASM_OUTPUT_SKIP): Likewise.
5130         * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
5131         ASM_OUTPUT_SKIP): Likewise.
5132         * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
5133         * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
5134         ASM_OUTPUT_SKIP): Likewise.
5135         * sgs.h (ASM_OUTPUT_SKIP): Likewise.
5136         * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
5137         ASM_OUTPUT_SKIP): Likewise.
5138         * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
5139         Likewise.
5140         * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
5141         * iris.h (ASM_OUTPUT_LOCAL): Likewise.
5142         * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
5143         * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
5144         ASM_OUTPUT_SKIP): Make it 64bit clean.
5145         * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
5146         Make it 64bit clean.
5147         * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
5148         ASM_OUTPUT_SKIP): Make it 64bit clean.
5149         * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
5150         64bit clean.
5151         * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
5152         HOST_WIDE_INT argument
5153         * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
5154         * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
5155         HOST_WIDE_INT argument
5156         * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
5157         * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
5158         * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
5159         * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
5160         HOST_WIDE_INT argument
5161         * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
5162         * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
5163         * varasm.c (asm_output_bss, asm_output_aligned_bss,
5164         asm_emit_uninitialized, assemble_zeros, assemble_static_space):
5165         HOST_WIDE_INT argument
5166
5167 2003-05-10  Steven Bosscher  <steven@gcc.gnu.org>
5168
5169         * cgraphunit.c (cgraph_create_edges): Drop walk_tree in
5170         favor of walk_tree_without_duplicates.  Add comments.
5171
5172 2003-05-12  Josef Zlomek  <zlomekj@suse.cz>
5173
5174         * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type.
5175         (struct alloc_pool_def): New element 'id'.
5176         * alloc-pool.c (fancy_abort): Extern function prototype.
5177         (abort): Macro which uses fancy_abort.
5178         (struct allocation_object_def): New structure.
5179         (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro.
5180         (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro.
5181         (last_id): New variable.
5182         (create_alloc_pool): Add the offset of u.data to size of element,
5183         increase and use last_id.
5184         (free_alloc_pool): Do the checking only when ENABLE_CHECKING.
5185         (pool_alloc): Likewise. Set ID for elements.
5186         (pool_free): Check whether the PTR was allocated from POOL.
5187
5188 2003-05-11  Richard Henderson  <rth@redhat.com>
5189
5190         PR c/10675
5191         * c-decl.c: Include hashtab.h.
5192         (detect_field_duplicates): New.
5193         (finish_struct): Use it.
5194         * Makefile.in (c-decl.o): Update.
5195         * c-parse.in (structsp_attr): Nreverse component_decl_list results.
5196         (component_decl_list, component_decl_list2,
5197         components, components_notype): Build list in reverse order.
5198         (enumlist): Clarify docs.  Use TREE_CHAIN not chainon.
5199
5200         * tree.c (chainon): Special case op2 null as well.
5201         Reorg for clarity.
5202
5203 2003-05-11  Roger Sayle  <roger@eyesopen.com>
5204
5205         * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns
5206         to implement log, logf and logl built-ins as inline x87 intrinsics.
5207         (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction.
5208         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn
5209         patterns for x87's "fyl2x" instruction, used by log?f2 patterns.
5210
5211         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like
5212         UNSPEC_FPATAN, i.e. replaces two stack operands with single result.
5213
5214 2003-05-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5215
5216         * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o.
5217
5218         * sparc.c (print_operand): Fix uninitialized warning.
5219
5220 2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5221
5222         * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
5223         real insns.
5224         * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
5225         condition.
5226
5227 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
5228
5229         * doc/cpp.texi: Fix typos.
5230
5231 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
5232
5233         * config/s390/s390.c (s390_function_arg_float): New function.
5234         (s390_function_arg_pass_by_reference): Use it.
5235         (s390_function_arg_advance): Likewise.
5236         (s390_function_arg): Likewise.
5237         (s390_va_arg): Likewise
5238
5239 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
5240
5241         * coverage.h (coverage_counter_alloc): New function.
5242         * function.h (struct function): Remove arc_profile flag.
5243         * coverage.c (fn_ident): Remove.
5244         (fn_b_ctrs, no_coverage): New.
5245         (get_coverage_counts): Use current_function_funcdef_no.
5246         (coverage_counter_alloc): New.
5247         (coverage_counter_ref): Adjust.
5248         (coverage_begin_output): Check no_coverage. Use
5249         current_function_funcdef_no.
5250         (coverage_end_function): Likewise.
5251         (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
5252         than clearing flag_inline_functions. Do not clear arc_profile
5253         flag.
5254         * function.c (prepare_function_start): Do not set arc_profile
5255         flag.
5256         * profile.c (instrument_edges): Return number of instrumented
5257         edges. Use a for loop.
5258         (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
5259         local to here and simplify. Use profile_arc_flag not arc_profile
5260         flag.
5261         (find_spanning_tree): Reformat.
5262         * toplev.c (rest_of_compilation): Use profile_arc_flags and
5263         flag_test_coverage rather than arc_profile flag.
5264
5265 2003-05-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
5266
5267         * doc/invoke.texi (Wctor-dtor-privacy): Update documentation.
5268
5269 2003-05-11  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5270
5271         * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case.
5272
5273 2003-05-11  Bruno Haible  <bruno@clisp.org>
5274
5275         * cppfiles.c (find_or_create_entry): Preserve errno.
5276
5277 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
5278
5279         * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
5280         cpplib as it's a Standard Predefined Macro.
5281         * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
5282         * cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
5283         __STDC_HOSTED__ appropriately.
5284         * cpplib.h (_cpp_init_builtins): Update.
5285         * fix-header.c (read_scan_file): Update.
5286         * doc/cpp.texi, doc/cppopts.texi: Update documentation.
5287
5288 2003-05-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5289
5290         PR C++/689
5291         PR C++/9257
5292         * c-opts.c (c_common_decode_option): Don't set
5293         warn_ctor_dtor_privacy wen -Wall.
5294         * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
5295
5296 2003-05-10  Alexandre Oliva  <aoliva@redhat.com>
5297
5298         * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's
5299         patch.
5300
5301 2003-05-10  Zack Weinberg  <zack@codesourcery.com>
5302
5303         * diagnostic.c: Reorder functions for clarity, putting all the
5304         functions in the "error" family next to each other, and
5305         likewise all the functions in the "error_with_decl" family.
5306         Some other routines were moved too.  Add comments.
5307         (vbuild_message_string): Fold into sole caller.
5308
5309
5310 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
5311
5312         * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
5313         (EH_RETURN_HANDLER_RTX): Likewise.
5314         (expand_builtin_eh_return): Do not copy stack adjustment
5315         if EH_RETURN_STACKADJ_RTX is not defined.
5316         (expand_eh_return): Likewise.  Also, do not pass stack
5317         adjustment as argument to the eh_return pattern.
5318         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
5319         because EH_RETURN_STACKADJ_RTX is not defined.
5320         * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
5321         is not defined, treat stack pointer like a regular register.
5322         (uw_init_context_1): Set up fake initial stack pointer register.
5323         (uw_install_context_1): Do not compute stack adjustment if
5324         EH_RETURN_STACKADJ_RTX is not defined.
5325
5326         * config/i386/i386.md ("eh_return"): Remove first argument.
5327         * config/mips/mips.md ("eh_return"): Likewise.
5328         * config/rs6000/rs6000.md ("eh_return"): Likewise.
5329         * config/sh/sh.md ("eh_return"): Likewise.
5330
5331         * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
5332
5333 2003-05-10  Alexander Aganichev  <aaganichev@yandex.ru>
5334
5335         * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
5336
5337 2003-05-10  Nathan Sidwell  <nathan@codesourcery.com>
5338
5339         * defaults.h (GCOV_TYPE_SIZE): Remove.
5340         * gcov-io.h (gcov_type): Set to specific mode int on target.
5341         (gcov_unsigned_t, gcov_position_t): New.
5342         (GCOV_TYPE_NODE): New.
5343         (GCOV_TAG_SUMMARY_LENGTH): Adjust.
5344         (GCOV_COUNTERS_SUMMABLE): New.
5345         (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn,
5346         gcov_ctr_info, gcov_info): Adjust types.
5347         (gcov_var): Adjust types.
5348         (gcov_write_unsigned, gcov_write_tag,
5349         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
5350         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
5351         (gcov_position, gcov_sync, gcov_seek): Adjust gcov types.
5352         * gcov-io.c (gcov_write_unsigned, gcov_write_tag,
5353         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
5354         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
5355         * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit,
5356         __gcov_init, __gcov_merge_add): Adjust gcov types.
5357         * coverage.c (ctr_merge_functions): Constify.
5358         (ctr_names): New.
5359         (read_counts_file): Adjust gcov types. Only summarize & merge
5360         summable counters.
5361         (coverage_counter_ref): Use GCOV_TYPE_NODE.
5362         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
5363         build_ctr_info_value, build_gcov_info): Adjust types.
5364         * profile.c (branch_prob): Adjust gcov types.
5365         * gcov_dump (dump_file): Adjust gcov types.
5366
5367 2003-05-10  Richard Earnshaw  <rearnsha@arm.com>
5368
5369         * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New
5370         constants.
5371         (ior_scc_scc, and_scc_scc): New insn_and_split patterns.
5372         * arm.c (arm_select_dominance_cc_mode): Renamed from
5373         select_dominance_cc_mode, no-longer static.  Use DOM_CC... constants.
5374         Callers updated.
5375         * arm-protos.h (arm_select_dominance_cc_mode): Add prototype.
5376
5377 2003-05-09  Roger Sayle  <roger@eyesopen.com>
5378
5379         * config/alpha/alpha.c (alpha_start_function): Declare frame_size
5380         as unsigned to avoid signed/unsigned comparison warnings.
5381
5382 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
5383
5384         * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
5385         instruction if the Xtensa density option is enabled.
5386
5387 2003-05-09  Matt Kraai <kraai@alumni.cmu.edu>
5388
5389        * mklibgcc.in: Remove extra quotes.
5390
5391 2003-05-09  Mark Mitchell  <mark@codesourcery.com>
5392
5393         * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation
5394         of int_ftype_void.
5395
5396 2003-05-09  Alexandre Oliva  <aoliva@redhat.com>
5397
5398         * reload1.c (reload_cse_move2add): Don't turn an implicit
5399         truncation into a self-set in the narrow mode.
5400
5401 2003-05-09  Richard Earnshaw  <rearnsha@arm.com>
5402
5403         * arm.md (clzsi2): The CLZ instruction is predicable.
5404
5405 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
5406
5407         * config/xtensa/xtensa.c: Formatting.
5408
5409 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
5410
5411         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
5412         instead of TREE_OPERAND to access the operand of a
5413         CONSTRUCTOR node.
5414
5415 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
5416
5417         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
5418         one operand.
5419
5420 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
5421
5422         * toplev.h (warning_with_file_and_line): Don't declare.
5423         (error_with_file_and_line): Likewise.
5424         * diagnostic.c (error_with_file_and_line): Remove.
5425         (warning_with_file_and_line): Likewise.
5426
5427 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
5428
5429         * c-parse.in (if_stmt_locus): New object.
5430         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
5431         (select_or_iter_stmt rule): Likewise.
5432         (if_stmt_file): Remove.
5433         (if_stmt_line): Likewise.
5434         * jump.c: include "diagnostic.h"
5435         (never_reached_warning): Don't use warning_with_file_and_line.
5436         * Makefile.in (jump.o): Add dependce on diagnostic.h
5437
5438 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
5439
5440         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
5441         Move code handling pieces not larger than a word to..
5442         * function.c (assign_parms): ..here, but use change_address instead
5443         of adjust_address and operand_subword, and expand_binop instead of
5444         expand_shift.  Adjust calls to move_block_from_reg.
5445         * expr.h (move_block_from_reg): Update declaration.
5446         (copy_blkmode_from_reg): Formatting.
5447         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
5448         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
5449         move_block_from_reg calls.
5450         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
5451         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
5452         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5453         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
5454         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
5455         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
5456         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
5457         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
5458         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
5459
5460 2003-05-08  DJ Delorie  <dj@redhat.com>
5461
5462         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
5463         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
5464         variable-sized types).
5465         (xstormy16_function_arg): New.  Pass them that way too.
5466         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
5467         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
5468
5469 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
5470
5471         * mklibgcc.in: Use mkinstalldirs when installing multilib
5472         directories.
5473
5474 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
5475
5476         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
5477         instead of CODE_FOR_jump
5478
5479 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
5480
5481         * objc/objc-act.c (error_with_ivar): Don't use
5482         error_with_file_and_line.
5483         (warn_with_method): Don't use warning_with_file_and_line.
5484
5485 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5486
5487         * stmt.c (emit_locus): New macro.
5488         (emit_filename): Remove.
5489         (emit_lineno): Likewise.
5490         (struct stmt_status): Replace members x_emit_filename and
5491         x_emit_lineno with x_emit_locus.
5492         (set_file_and_line_for_stmt): Adjust.
5493         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
5494         (warn_if_unused_value): Likewise.
5495         (check_seenlabel): Likewise.
5496
5497 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5498
5499         * c-decl.c (define_label): Tidy.  Don't use any of
5500         error_with_file_and_line or warning_with_file_and_file.
5501         (pending_xref_error): Likewise.
5502         (store_parm_decls): Likewise.
5503         (current_function_prototype_locus): New object.  Package from
5504         current_function_prototype_file and current_function_prototype_line.
5505         (start_function): Use it.
5506         (current_function_prototype_file): Remove.
5507         (current_function_prototype_line): Remove;
5508
5509 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5510
5511         * builtins.c (readonly_data_expr): New function.
5512         (expand_builtin_memmove): Optimize any rodata source, not just
5513         strings.
5514
5515 2003-05-07  David Mosberger <davidm@hpl.hp.com>
5516
5517         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
5518
5519 2003-05-07  Richard Henderson  <rth@redhat.com>
5520
5521         * config/i386/i386.c (ix86_split_long_move): Fix base register
5522         mode for XFmode splits for TARGET_64BIT.
5523
5524 2003-05-07  Richard Henderson  <rth@redhat.com>
5525
5526         * sched-ebb.c (schedule_ebb): Supply the correct starting
5527         block number to save_line_notes.
5528
5529 2003-05-07  Richard Henderson  <rth@redhat.com>
5530
5531         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
5532         (dump_file): Likewise.
5533
5534 2003-05-07  David Mosberger <davidm@hpl.hp.com>
5535
5536         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
5537         forget to preserve gp.
5538         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
5539
5540         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
5541         .prologue directive.
5542         Use .skip instead of data8 for .bss section to make Intel
5543         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
5544         explicit in the .mib bundles and remove the unnecessary stop
5545         bits.  Replace local labels with normal labels, to make ias
5546         happy.  Don't register __do_global_ctors_aux here, do it in
5547         crtend.asm instead.
5548
5549         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
5550         __do_global_ctors_aux in .init_array section instead of
5551         declaring it as a hidden global.  Replace local labels with
5552         ordinary labels to make ias happy.
5553
5554 2003-05-07  Richard Henderson  <rth@redhat.com>
5555
5556         PR c++/10570
5557         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
5558         * flags.h, toplev.c, doc/invoke.texi: Likewise.
5559
5560         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
5561         * unwind.inc (_Unwind_DeleteException): Check for null
5562         exception_cleanup.
5563
5564         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
5565         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
5566         * unwind.h: Declare them.
5567         * libgcc-std.ver (GCC_3.3): Export them.
5568
5569 2003-05-07  Richard Henderson  <rth@redhat.com>
5570
5571         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
5572         not _Unwind_Word.
5573
5574 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
5575
5576         * stmt.c (force_label_rtx): New function, based on logic
5577         formerly found in expand_expr.
5578         * expr.h: Prototype it.
5579         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
5580         appropriate.
5581         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
5582
5583         * print-tree.c (debug_tree): Free the table after we're done
5584         with it.  Use putc.
5585
5586 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
5587
5588         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
5589         Unreverse arguments for __ev_subw.
5590
5591         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
5592
5593 2003-05-07  Nick Clifton  <nickc@redhat.com>
5594
5595         * config/stormy16/stormy-abi: Update to include
5596         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
5597         R_XSTORMY16_12 relocs.
5598
5599 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
5600
5601         * function.c (assign_parms): Correct reversed reg_parm_stack_space
5602         test.  Add partial in-regs size to stack_args_size.
5603
5604 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5605
5606         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
5607         as a C only option.
5608
5609 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
5610
5611         * gcov-io.h (GCOV_LOCKED): New #define.
5612         (GCOV_LINKAGE): Make sure it is #defined.
5613         (gcov_write_string, gcov_write_tag, gcov_write_length,
5614         gcov_read_string, gcov_time): Poison in libgcov.
5615         (gcov_seek_end): Remove.
5616         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
5617         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
5618         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
5619         GCOV_TAG_SUMMARY_LENGTH): New #defines.
5620         (gcov_write_tag, gcov_write_length): Not in libgcov.
5621         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
5622         (gcov_write_tag, gcov_write_length): Not in libgcov.
5623         (gcov_write_tag_length): New.
5624         (gcov_write_summary): Use gcov_write_tag_length.
5625         * libgcov.c: Always #include gcov-io.h.
5626         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
5627         (GCOV_LINKAGE): Define to nothing for L_gcov.
5628         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
5629         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
5630         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
5631         (read_count_file): Likewise.
5632         * gcov-dump.c (dump_file): Likewise.
5633         * coverag.c (read_counts_file): Likewise.
5634
5635 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
5636
5637         PR other/10658
5638         * gcc.c (process_command): Update copyright date.
5639
5640 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
5641
5642         * doc/install.texi (mips-*-*):  Add note about libstdc++.
5643
5644 2003-05-06  DJ Delorie  <dj@redhat.com>
5645
5646         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
5647         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
5648         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
5649
5650 2003-05-06    <neil@cat.daikokuya.co.uk>
5651
5652         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
5653         and -Wstrict-prototypes if C++.
5654
5655 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
5656
5657         * config/rs6000/linuxspe.h: New file.
5658
5659         * config.gcc: Add powerpc-*-linux-gnuspe* target.
5660
5661 2003-05-06  Richard Henderson  <rth@redhat.com>
5662
5663         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
5664         previous frame didn't save sp.  Clear sp for next frame.
5665         (uw_install_context_1): Honor saved sp from frame.
5666
5667 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
5668
5669         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
5670         (mips_move_1word, mips_move_2words): Remove declaration.
5671         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
5672         (mips_restore_gp): Remove insn argument.
5673         * config/mips/mips.h (FP_REG_RTX_P): New macro.
5674         * config/mips/mips.c (volatile_buffer): Remove.
5675         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
5676         (mips_move_1word, mips_move_2words): Remove, replacing with...
5677         (mips_output_move): ...this new function.
5678         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
5679         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
5680         handling of floating-point constants.  Handle zero CONST_DOUBLE
5681         arguments.
5682         (mips_annotate_frame_insn): Replace with...
5683         (mips_set_frame_expr): ...this, which just takes one argument.
5684         (mips_frame_set): Change the register argument to an rtx.
5685         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
5686         check whether moves should be split.  Use mips_split_64bit_move
5687         to split them.  Use mips_subword to generate the high and low
5688         parts of a paired FPR.  Adjust calls to frame_set and
5689         mips_set_frame_expr.
5690         (mips_expand_prologue): Simplify due to above changes.
5691         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
5692         targets, replacing xisting register-only versions.
5693         (UNSPEC_STORE_DF_HIGH): New unspec.
5694         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
5695         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
5696         (*paradoxical_extendhidi2): Remove.
5697         (movdi_internal, movdi_internal2): Use mips_output_move.
5698         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
5699         (movsf_internal1, movsf_internal2): Likewise.
5700         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
5701         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
5702         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
5703         Add m <- G alternative.
5704         (load_df_low, load_df_high, store_df_low): New patterns.
5705         (movhi_internal): Use @ template instead of calling a function.
5706         Remove unnecessary 'z' alternatives.
5707         (movqi_internal): Likewise.
5708         (exception_receiver): Update call to mips_restore_gp.
5709
5710 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
5711
5712         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
5713         (mips_delegitimize_address): Declare.
5714         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
5715         (FIND_BASE_TERM): Define.
5716         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
5717         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
5718         Handle small-data addresses.
5719
5720 2003-05-05  Roger Sayle  <roger@eyesopen.com>
5721
5722         * real.c (real_powi): New function to calculate the value of
5723         a real raised to an integer power, i.e. pow(x,n) for int n.
5724         (real_sqrt): Convert to using the faster do_add, do_multiply
5725         and do_divide API for consistency with the rest of real.c.
5726         * real.h (real_powi): Prototype here.
5727         * builtins.c (fold_builtin):  Avoid local variable mode when
5728         evaluating sqrt at compile time.  Attempt to evaluate pow at
5729         compile-time, by checking for an integral exponent.
5730
5731 2003-05-05  Richard Henderson  <rth@redhat.com>
5732
5733         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
5734
5735 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
5736
5737         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
5738         other FreeBSD ports.
5739         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
5740         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
5741
5742 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
5743
5744         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
5745         expanded variables.
5746         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
5747
5748 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
5749
5750         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
5751         * varasm.c (struct varasm_status): Add deferred_constants field.
5752         (n_deferred_strings): Delete variable.
5753         (n_deferred_constants): New #define.
5754         (struct constant_descriptor_tree): Kill next and label fields.
5755         (const_hash_table, MAX_HASH_TABLE): Delete.
5756         (const_desc_htab): New static variable.
5757         (const_hash): Rename const_desc_hash, and make it fit the
5758         hashtab.h interface.
5759         (const_desc_eq): New.
5760         (const_hash_1, compare_constant): Const-ify arguments.
5761         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
5762         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
5763         (output_constant_def): Do the lookup/insert using the
5764         hashtab.h interface.  Don't muck with n_deferred_constants or
5765         DEFERRED_CONSTANT_P here.
5766         Always call maybe_output_constant_def_contents.
5767         (maybe_output_constant_def_contents): Take a pointer to the
5768         descriptor, not the EXP and RTL separately.  Return
5769         immediately if this constant is not deferred.  Defer output of
5770         everything, except writable string constants.  Update
5771         n_deferred_constants here.
5772         (output_constant_def_contents): Now takes just one argument,
5773         an rtx.  Clear DEFERRED_CONSTANT_P here.
5774         (mark_constant_pool): Update for rename of n_deferred_strings.
5775         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
5776
5777         (init_varasm_status): Clear p->deferred_constants.
5778         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
5779
5780 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5781
5782         * builtins.c (expand_builtin_stpcpy): Only expand when the length
5783         of the source string can be evaluated at compile-time.
5784
5785 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
5786
5787         * testsuite/gcc.c-torture/compile/simd-6.c: New.
5788
5789         * c-typeck.c (digest_init): Handle arrays of vector constants.
5790
5791 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
5792
5793         * builtins.c (expand_builtin_mempcpy): New function.
5794         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
5795         ignored into strcpy no matter what arguments it has.
5796         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
5797         expand_builtin_mempcpy.
5798
5799 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
5800
5801         * testsuite/gcc.dg/20030505.c: New.
5802
5803         * c-typeck.c (convert_for_assignment): Opaque pointers can
5804         interconvert.
5805
5806         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
5807         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
5808         (spe_init_builtins): Rename all pv2si_type_node to
5809         opaque_p_V2SI_type_node.
5810         Remove declaration of pv2si_type_node.
5811         (is_ev64_opaque_type): Accept opaque pointers.
5812
5813 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
5814
5815         * config/rs6000/rs6000.c (validate_condition_mode): Use
5816         flag_finite_math_only.
5817         (rs6000_reverse_condition): Never return UNKNOWN; use
5818         flag_finite_math_only.
5819         (rs6000_generate_compare): Use flag_finite_math_only.
5820         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
5821         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
5822         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
5823
5824         * toplev.c (check_global_declarations): Suppress not-used warning
5825         for volatile variables.
5826
5827 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
5828
5829         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
5830         usage of bitfield instructions for mode1 != BLKmode, only ignoring
5831         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
5832         (store_field): Likewise.
5833
5834 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
5835
5836         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
5837         evsubifw to builtins accepting 5-bit unsigned constants.
5838         (easy_vector_constant): Return if V1DImode.  Fix typo.
5839
5840 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
5841
5842         * config/rs6000/spe.h: Revert licensing change from last patch.
5843
5844 2003-05-05  DJ Delorie  <dj@redhat.com>
5845
5846         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
5847         before reload, but defer the split until after.
5848         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
5849         to match.
5850
5851 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
5852
5853         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
5854         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
5855
5856 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5857
5858         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
5859         is defined.
5860
5861 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5862
5863         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
5864         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
5865         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
5866
5867         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
5868         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
5869         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
5870         New.
5871
5872         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
5873         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
5874
5875         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
5876         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
5877         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
5878         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
5879         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
5880         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
5881         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
5882         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
5883         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
5884         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
5885         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
5886         BUILT_IN_STRDUP): Add "nonnull" attribute.
5887
5888 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5889
5890         * expr.c (store_field): Don't clobber TEMP in shift: it might be
5891         a variable.
5892         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
5893         whose purpose is to step up the alignment.
5894         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
5895
5896         * stor-layout.c (compute_record_mode): Relax restriction
5897         on fields crossing word boundaries forcing BLKmode.
5898
5899 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
5900
5901         * cppinit.c (cpp_create_reader, post_options): Warn about
5902         trigraphs unless explicity set or -trigraphs.
5903         * cpplex.c (warn_in_comment): New.
5904         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
5905         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
5906         * doc/cppopts.texi, doc/cpp.texi: Update.
5907
5908 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5909
5910         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
5911         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
5912         namespace clash.
5913         (GCOV_MERGE_FUNCTIONS): New.
5914         (gcov_merge_fn): Declare.
5915         (struct gcov_ctr_info): New field "merge".
5916         (__gcov_merge_add): Declare.
5917         * coverage.c (ctr_merge_functions): New.
5918         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
5919         of gcov_ctr_info type.
5920         * libgcov.c (__gcov_merge_add): New.
5921         (gcov_exit): Call a hook to merge values of counters.
5922
5923 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
5924
5925         * toplev.h (pedwarn_with_file_and_line): Don't declare.
5926         * diagnostic.c (pedwarn_with_file_and_line): Remove.
5927
5928 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5929
5930         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
5931
5932 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5933
5934         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
5935         expand_builtin_frame_address): Update prototypes.
5936         (expand_builtin_constant_p, expand_builtin_strlen,
5937         expand_builtin_strcpy, expand_builtin_memset,
5938         expand_builtin_bzero, expand_builtin_args_info,
5939         expand_builtin_frame_address): Pass in just the argument(s)
5940         needed, not the entire expression `exp'.
5941         (expand_builtin): Update all calls to these functions.
5942
5943 2003-05-03  Richard Henderson  <rth@redhat.com>
5944
5945         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
5946         <BUILT_IN_DWARF_SP_COLUMN>: New.
5947         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
5948         (BUILT_IN_DWARF_SP_COLUMN): New.
5949         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
5950         (expand_builtin_dwarf_sp_column): New.
5951         * except.h: Update to match.
5952         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
5953         (execute_cfa_program): Record location expression address
5954         before extracting length.
5955         (uw_update_context_1): Install old CFA into stack pointer column.
5956         (uw_init_context_1): Set cfa_reg to stack pointer column.
5957
5958 2003-05-03  Richard Henderson  <rth@redhat.com>
5959
5960         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
5961         return bool.
5962         (toc_relative_expr_p): Likewise.
5963         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
5964         (legitimate_constant_pool_address_p): Move from rs6000.h, change
5965         into a function, downcase all users.
5966         (legitimate_small_data_p): Likewise.
5967         (legitimate_offset_address_p): Likewise.
5968         (legitimate_indexed_address_p): Likewise.
5969         (legitimate_indirect_address_p): Likewise.
5970         (legitimate_lo_sum_address_p): Likewise.
5971         (rs6000_mode_dependent_address): Likewise.
5972         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
5973         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
5974         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
5975         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
5976         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
5977         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
5978         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
5979         * config/rs6000/rs6000-protos.h: Update.
5980
5981 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
5982
5983         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
5984         (REVERSE_CONDITION): Define.
5985
5986         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
5987         to branch_positive_comparison_operator.
5988         (ccr_bit): Check that sCOND conditions are actually a positive bit.
5989         (print_operand): Remove %D substitution.
5990         (rs6000_emit_sCOND): Generate complement operation to ensure that
5991         sCOND input is a positive bit.
5992         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
5993         same order as bCOND, and add the missing ones.  Remove the %D
5994         substitutions from the scc patterns.
5995
5996         * simplify-rtx.c (simplify_relational_operation): Add case for
5997         ! (fabs(x) < 0.0).
5998
5999 2003-05-03  Bruce Korb  <bkorb@gnu.org>
6000
6001         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
6002         in fixincl.x
6003         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
6004
6005 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
6006
6007         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
6008
6009 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
6010
6011         PR c/10604
6012         * c-common.c (warn_sign_compare): Initialize to -1.
6013         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
6014         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
6015         for C++ only.
6016         (c_common_post_options): Set warn_sign_compare from extra_warnings
6017         if it's still -1 at this point.
6018
6019         * toplev.c (maybe_warn_unused_parameter): New static variable.
6020         (set_Wextra): New static function.
6021         (W_options): Remove "extra".
6022         (decode_W_option): Call set_Wextra.
6023         (independent_decode_option): Likewise.
6024         (set_Wunused): Cooperate with set_Wextra in setting
6025         warn_unused_parameter.
6026         (rest_of_compilation): No need to check extra_warnings as
6027         well as warn_uninitialized.
6028
6029         * c-typeck.c (build_binary_op, build_conditional_expr):
6030         No need to check extra_warnings as well as warn_sign_compare.
6031         (internal_build_compound_expr): No need to check extra_warnings
6032         as well as warn_unused_value.
6033         * function.c (expand_function_end): No need to check extra_warnings
6034         as well as warn_unused_parameter.
6035         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
6036         as well as warn_unused_value.
6037
6038         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
6039
6040         * Makefile.in: Disable -Werror for gengtype-lex.o.
6041
6042 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
6043
6044         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
6045         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
6046         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
6047         * calls.c (emit_call_1): Likewise.
6048         (expand_call): For calls initializing constant memory, replace
6049         emission of standalone mem /u clobber with function usage entry.
6050         * expr.c (emit_block_move_via_libcall): Likewise.
6051         * cse.c (count_reg_usage, case EXPR_LIST): New case.
6052         * flow.c (propagate_one_insn): Pass entire operand of
6053         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
6054         * integrate.c (try_constants): For CALL_INSNs, substitute constants
6055         within the FUNCTION_USAGE also.
6056         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
6057         FUNCTION_USAGE lists.
6058         * reload1.c (replace_pseudos_in): Renamed.
6059         (reload): Use it for clobbers surviving until the end of the reload.
6060
6061 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6062
6063         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
6064         gen_lowpart on non-integer modes.
6065
6066         * stor-layout.c (place_field): When adjusting offset_align, use
6067         desired_align, not DECL_ALIGN.
6068
6069 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
6070
6071         * c-decl.c (pending_invalid_xref_file): Remove.
6072         (pending_invalid_xref_line): Remove.
6073         (pending_invalid_xref_location): New.
6074         (lookup_label): Use location_t and input_location directly.
6075         (lookup_tag): Likewise.
6076         (pending_xref_error): Likewise.
6077         (c_expand_body_1): Likewise.
6078         * c-common.c (x_expand_start_cond): Likewise.
6079         * c-semantics.c (genrtl_for_stmt): Likewise.
6080         (find_reachable_label): Likewise.
6081         * expr.c (expand_expr): Likewise.
6082         * integrate.c (output_inline_function): Likewise.
6083         * tree-inline.c (find_alloca_call): Likewise.
6084         (find_builtin_longjmp_call): Likewise.
6085         * gcc.c (input_filename): Make static.
6086
6087 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
6088
6089         * config/mips/mips.md: Fix comment typo.
6090
6091         * config/mips/mips.c (mips_integer_op): New structure.
6092         (MIPS_MAX_INTEGER_OPS): Define.
6093         (mips_const_insns): Use mips_build_integer to determine the number
6094         of instructions needed to load a CONST_INT.
6095         (move_operand): Reject compound CONST_INTs.
6096         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
6097         (mips_move_integer): New fn.
6098         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
6099         (mips_legitimize_move): Only legitimize constants when moving
6100         word or subword values.
6101
6102 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
6103
6104         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
6105
6106 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6107
6108         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
6109         modifying it.
6110
6111 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
6112             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6113
6114         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
6115         Hernandez, and Kazu Hirata.  Update Richard Henderson.
6116
6117 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
6118
6119         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
6120         to tentative declaration.
6121
6122         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
6123         (SYMBOL_FLAG_SMALL_V4): Delete.
6124         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
6125         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
6126         (rs6000_elf_in_small_data_p): Add extra section names.  Add
6127         comment about TREE_PUBLIC test.
6128
6129         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
6130         expand_stmt on result of expand_unreachable_stmt.
6131
6132 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6133
6134         * doc/contrib.texi (Contributors): Add Daniel Berlin.
6135
6136 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
6137
6138         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
6139         number of automata.
6140
6141         * config/rs6000/rs6000.c (symbol_ref_operand): Check
6142         SYMBOL_REF_FUNCTION_P on AIX.
6143         (current_file_function_operand): Same.
6144         * config/rs6000/rs6000.md (call,call_value): Force non-function
6145         symbol_ref into register on AIX.
6146
6147 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
6148
6149         * calls.c (struct arg_data): Move offset, slot_offset, size and
6150         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
6151         (initialize_argument_information): Adjust call to locate_and_pad_parm.
6152         Delete alignment_pad var.  Don't calculate slot_offset here.
6153         (emit_library_call_value_1): Delete alignment_pad, offset and size
6154         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
6155         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
6156         partial in-regs here.  Formatting fixes.
6157         * expr.h (struct locate_and_pad_arg_data): New struct.
6158         (locate_and_pad_parm): Adjust declaration.
6159         * function.c (assign_parms): Localize vars.  Use "locate" instead of
6160         other arg location vars.  Don't invoke FUNCTION_ARG or
6161         FUNCTION_INCOMING_ARG unless pretend_named is different from
6162         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
6163         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
6164         Use slot_offset for stack home of reg parms.  Correct test for
6165         parm passed in memory.  Formatting fixes.
6166         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
6167         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
6168         Correct initial_offset_ptr handling.  Localize vars.  Always pad
6169         locate->offset even when in_regs.
6170
6171 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6172
6173         * Makefile.in (TREE_H): Replace location.h with input.h.
6174         (GTFILES) Remove location.h
6175         (gt-lists.h): Replace gt-location.h with gt-input.h
6176         * input.h (input_filename, input_line): Remove variables.
6177         (location_s, location_t): Move from location.h.
6178         (input_location): New.
6179         (input_filename, input_line): New #defines.
6180         * location.h: Remove.
6181         * tree.h: Replace location.h with input.h.
6182         (input_filename, input_line): Remove.
6183         * diagnostic.h: Replace location.h with input.h.
6184         * gcc.h (input_filename, input_filename_length): Remove declarations.
6185         * toplev.c (input_filename, input_line): Remove.
6186         (input_location): Define.
6187         (push_srcloc, pop_srcloc): Adjust.
6188         * diagnostic.c (diagnostic_report_current_module): Adjust.
6189
6190 2003-05-02  Nick Clifton  <nickc@redhat.com>
6191
6192         * configure.in: Add xstormy16 to list of targets that has a nop
6193         instruction and hence which can be tested to see if the
6194         assembler supports the --gdwarf2 switch.
6195         * configure: Regenerate.
6196
6197 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
6198
6199         PR target/8257
6200         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
6201         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
6202         Avoid undefined shifts by making the shift operand unsigned.
6203
6204 2003-05-01  DJ Delorie  <dj@redhat.com>
6205
6206         * reload.c (find_reloads): Also check that all of a multi-reg
6207         value is in the class.
6208
6209 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
6210
6211         * scan.h (lineno): Revert the rename here.
6212
6213 2003-05-01  Stan Shebs  <shebs@apple.com>
6214
6215         * config/darwin.c (darwin_encode_section_info): Call
6216         default_encode_section_info.
6217
6218 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
6219
6220         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
6221         (movsi_internal1): Use new mfjmpr attribute.
6222         (movhi_internal): Same.
6223         (movqi_internal): Same.
6224         (movcc_internal1): Same.
6225         (movdi_internal64): Same.
6226         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
6227         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
6228         * config/rs6000/40x.md: Add fpu_405.
6229         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
6230         into power4misc automata.  Remove extraneous parentheses.
6231         * config/rs6000/440.md: New file.
6232         * config/rs6000/rs6000.c (processor_target_table): Add 440,
6233         440fp.  Rename 405f to 405fp.
6234         (function_arg_padding): Correct formatting.
6235         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
6236
6237 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
6238
6239         * input.h (lineno): Rename to ...
6240         (input_line): ... here.
6241         * tree.h (lineno): Rename to ...
6242         (input_line): ... here.
6243         * scan.h (lineno): Rename to ...
6244         (input_line): ... here.
6245         * toplev.c (lineno): Rename to ...
6246         (input_line): ... here.
6247         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
6248         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
6249         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
6250         store_parm_decls, c_expand_body_1): Likewise.
6251         * c-errors.c (pedwarn_c99): Likewise.
6252         * c-format.c (status_warning): Likewise.
6253         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
6254         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
6255         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
6256         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
6257         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
6258         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
6259         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
6260         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
6261         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
6262         * coverage.c (create_coverage): Likewise.
6263         * diagnostic.c (pedwarn, sorry, error, fatal_error,
6264         internal_error, warning, diagnostic_report_current_module,
6265         inform): Likewise.
6266         * expr.c (expand_expr): Likewise.
6267         * integrate.c (expand_inline_function,
6268         output_inline_function): Likewise.
6269         * rtl-error.c (file_and_line_for_asm): Likewise.
6270         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
6271         walk_tree): Likewise.
6272         * tree.c (make_node): Likewise.
6273         * ada, cp, f, java, objc, treelang: Likewise.
6274         * objc/objc-act.c (objc_init): Rename lineno to input_line.
6275         (build_module_descriptor, build_selector_translation_table,
6276         build_protocol_template, build_method_prototype_list_template,
6277         build_category_template, build_selector_table,
6278         build_class_template, build_super_template, build_ivar_template,
6279         build_ivar_list_template, build_method_list_template,
6280         build_method_template, add_instance_variable): Likewise.
6281
6282         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
6283         name from input_filename.
6284
6285 2003-04-30  Eric Christopher  <echristo@redhat.com>
6286             Richard Sandiford <rsandifo@redhat.com>
6287
6288         * configure: Regenerate from patches below.
6289         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
6290         for all symbolic operands.
6291         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
6292         to function.
6293         * config/mips/linux.h: Fix typo.
6294         * Merge from mips-3_4-rewrite branch:
6295
6296         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
6297
6298                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
6299                 handling local labels when TARGET_ABICALLS.
6300
6301         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
6302
6303                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
6304                 integer argument.
6305                 (mips_expand_call): Likewise.
6306                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
6307                 (FIXED_REGISTERS): Clear $31 entry.
6308                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
6309                 (EPILOGUE_USES): Define.
6310                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
6311                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
6312                 (override_options): Add a 'j' register class.
6313                 (mips_expand_call): Handle sibcalls
6314                 (mips_expand_epilogue): Handle epilogues for sibcalls.
6315                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
6316                 (sibcall_epilogue): New pattern.
6317                 (call, call_value): Adjust calls to mips_expand_call.
6318                 (sibcall, sibcall_value): New expanders.
6319                 (sibcall_internal, sibcall_value_internal): New patterns.
6320                 (sibcall_value_multiple_internal): New pattern.
6321
6322         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
6323
6324                 * config/mips/mips.md (extended_mips16): New attribute.
6325                 (define_attr length): Default to 8 if extended_mips16 == yes.
6326                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
6327                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
6328                 (call_internal): Set extended_mips16 to yes for direct jumps.
6329                 Remove redundant mode attribute.
6330                 (call_value_internal, call_value_multiple_internal): Likewise.
6331                 (call_split): Remove redundant mode attribute.
6332                 (call_value_split, call_value_multiple_split): Likewise.
6333
6334                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
6335                 of unaligned offsets.
6336
6337                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
6338                 of SYMBOL_GENERAL.
6339
6340         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
6341
6342                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
6343                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
6344                 for mips16 code.
6345
6346         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
6347
6348                 * config/mips/mips.h (ADDRESS_COST): Define.
6349
6350         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
6351
6352                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
6353                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
6354                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
6355
6356         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
6357
6358                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
6359                 of a two-instruction sequence.  Add register->memory alternative.
6360                 (truncdihi2, truncdiqi2): Likewise.
6361                 Rework shift/truncate instructions so that they only handle right
6362                 shifts of 32 (or more, in the case of arithmetic shifts).
6363                 Add patterns for truncate/sign-extend.
6364
6365         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
6366
6367                 * configure.in (mips*-*-*): Check for explicit relocation support.
6368                 * configure: Regenerate.
6369
6370         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
6371
6372                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
6373                 and -mno-explicit-relocs.
6374                 (MASK_EXPLICIT_RELOCS): Define.
6375                 (TARGET_EXPLICIT_RELOCS): Use it.
6376                 (mips_split_addresses): Remove declaration.
6377                 * config/mips/mips.c (override_options): Update comment for
6378                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
6379
6380         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
6381
6382                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
6383                 a CONST as identity.  Check the return value of gen_lowpart_common.
6384
6385         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
6386
6387                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
6388                 references for TARGET_EXPLICIT_RELOCS.
6389                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
6390                 !TARGET_MIPS16.
6391
6392         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
6393
6394                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
6395                 (addsi3): Remove redundant constraints.
6396                 (addsi3_internal): Use separate register & constant alternatives.
6397                 Use a 'Q' constraint and "addiu" insn for the latter.
6398                 (adddi3_internal_3, addsi3_internal_2): Likewise.
6399
6400         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
6401
6402                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
6403                 (mips_expand_unaligned_store): Declare.
6404                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
6405                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
6406                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
6407                 (UNSPEC_ULD, UNSPEC_USD): Remove.
6408                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
6409                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
6410                 (extv, extzv): Use mips_expand_unaligned_load.
6411                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
6412                 predicate for operand 3.
6413                 (movsi_ulw, movsi_usw): Replace with...
6414                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
6415                 (movdi_uld, movdi_usd): Likewise replace with...
6416                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
6417
6418         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
6419
6420                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
6421                 * config/mips/mips.h (LEA_REGS): New register class.
6422                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
6423                 (GR_REG_CLASS_P): Include LEA_REGS.
6424                 (DANGEROUS_FOR_LA25_P): New macro.
6425                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
6426                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
6427                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
6428                 entries to LEA_REGS.
6429                 (mips_global_pic_constant_p): New function.
6430                 (override_options): Add 'e' register constraint.
6431                 (mips_secondary_reload_class): Return LEA_REGS when reloading
6432                 a dangerous constant into a class containing $25.
6433                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
6434                 (movsi_internal): Likewise.
6435
6436         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
6437
6438                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
6439                 * config/mips/mips.md (call_split): New insn.
6440                 (call_value_split, call_value_multiple_split): New insns.
6441                 (call_internal): Turn into a define_insn_and_split.  Split the
6442                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
6443                 (call_value_internal, call_value_multiple_internal): Likewise.
6444
6445         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
6446
6447                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
6448                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
6449                 (mips_encode_section_info): Don't take symbol visibility into
6450                 account if TARGET_ABICALLS.  Add more commentary.
6451                 * config/mips/mips.md: Add commentary above reloc constants.
6452
6453         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
6454
6455                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
6456                 from mips_legitimize_move.  Legitimize constant pool references.
6457                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
6458                 a REG_EQUAL note to the last instruction.
6459
6460         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
6461
6462                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
6463                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
6464                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
6465                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
6466                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
6467                 (UNSPEC_RELOC_GPREL16): Rename to...
6468                 (RELOC_GPREL16): ...this.
6469                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
6470                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
6471                 (macro_calls): New attribute.
6472                 (length): Use it to set the default length of calls.  Don't allow
6473                 calls to have delay slots if macro_calls is "yes".
6474                 (luisi, luidi): New patterns.
6475                 (lowsi, lowdi): Use '%R' to print the relocation.
6476                 (lowdi_extend): Remove.
6477                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
6478                 (call_internal): Merge alternatives.  Always use "jal".
6479                 (call_value_internal, call_value_multiple_internal): Likewise.
6480                 (reloc_gprel16): Remove.
6481                 * config/mips/mips.c (mips_got_alias_set): New variable.
6482                 (mips_classify_constant): Handle the new relocation constants.
6483                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
6484                 (mips_symbolic_address_p): Return false if generating explicit relocs.
6485                 Otherwise allow local PIC symbols to have an offset.
6486                 (mips_splittable_symbol_p): New function.
6487                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
6488                 (mips_const_insns): Always accept HIGH.
6489                 (call_insn_operand): Don't accept global symbols if using explicit
6490                 relocs.
6491                 (move_operand): Don't accept HIGH when generating PIC.
6492                 (mips_reloc, mips_lui_reloc): New functions.
6493                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
6494                 be a valid right-hand-side for a SET pattern.
6495                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
6496                 (mips_emit_high): New function.
6497                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
6498                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
6499                 address should be used.  Use mips_emit_high to generate the
6500                 high part of such an address.  Adjust the global symbol + offset
6501                 case to match the change to mips_force_temprorary.
6502                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
6503                 If generating explicit-reloc PIC, load the address of global
6504                 symbols from the GOT.  Use mips_emit_high to emit the high part
6505                 of an address.
6506                 (mips_simplify_dwarf_addr): New function.
6507                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
6508                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
6509                 (mips_expand_call): Load the addresses of global functions using
6510                 %call* relocs if generating explicit-reloc PIC.  Don't generate
6511                 an exception_receiver pattern.
6512                 (override_options): Initialize mips_got_alias_set.
6513                 (print_relocation): Remove in favor of...
6514                 (mips_reloc_string): ...this new function.
6515                 (print_operand): Handle '%R'.  Use mips_reloc_string.
6516                 (print_operand_address): Use print_operand to print the symbolic
6517                 part of a LO_SUM address.
6518                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
6519                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
6520                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
6521                 for local symbols.
6522
6523         2003-02-02  Eric Christopher  <echristo@redhat.com>
6524
6525                 * config/mips/mips.c (mips_sign_extend): Remove.
6526                 * config/mips/mips-protos.h: Ditto.
6527                 * config/mips/mips.md (movdi_internal2_extend): Remove.
6528                 (extendsidi2): Fix mode of convert_memory_address.
6529
6530         2003-01-24  Eric Christopher  <echristo@redhat.com>
6531
6532                 * config/mips/mips.md: Rewrite zero_extend* and extend*
6533                 patterns. Use explicit instructions and split after reload
6534                 for register extensions.
6535                 (ashlsi3_internal1_extend): New combiner pattern for
6536                 shift and extend combinations.
6537                 * config/mips/mips.h: Change Pmode back to ptr_mode
6538                 for performance enhancement.
6539                 * combine.c (expand_compound_operation): Make sure
6540                 that zero_extend operation is profitable.
6541
6542         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
6543
6544                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
6545                 addresses depend on ptr_mode rather than Pmode.
6546                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
6547                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
6548                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
6549                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
6550                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
6551                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
6552                 (tablejump_internal1): Remove condition.
6553                 (tablejump_internal2): Change condition to TARGET_64BIT.
6554                 (cpaddsi): Rename to...
6555                 (cpadd): ...this.
6556                 (cpadddi): Remove.
6557
6558         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
6559
6560                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
6561                 mips_address_cost, mips_check_split, double_memory_operand,
6562                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
6563                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
6564                 (mips_legitimate_address_p): Return bool.
6565                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
6566                 mips_legitimize_address, mips_legitimize_move,
6567                 mips_expand_call): Declare.
6568                 (mips_return_addr): Move outside #ifdef RTX_CODE.
6569
6570                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
6571                 (PIC_FN_ADDR_REG): New reg_class.
6572                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
6573                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
6574                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
6575                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
6576                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
6577                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
6578                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
6579                 (LEGITIMATE_PIC_OPERAND): Undefine.
6580                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
6581                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
6582                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
6583                 (FUNCTION_MODE): Change to SImode.
6584                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
6585                 most constants.  Treat const_artih_operands specially if they
6586                 occur in a PLUS or MINUS.
6587                 (CONSTANT_POOL_COST): New macro.
6588                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
6589                 Add LO_SUM handling.
6590                 (ADDRESS_COST): Undefine.
6591                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
6592                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
6593                 to call_insn_operand and remove CONST_INT.
6594
6595                 * config/mips/mips.c: Include integrate.h.
6596                 (SINGLE_WORD_MODE_P): New macro.
6597                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
6598                 (mips_constant_info, mips_address_info): New structs.
6599                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
6600                 (mips_classify_constant, mips_classify_symbol,
6601                 mips_valid_base_register_p, mips_symbolic_address_p,
6602                 mips_classify_address, mips_symbol_insns,
6603                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
6604                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
6605                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
6606                 mips_print_relocation): New functions.
6607                 (const_arith_operand): New operand predicate.
6608                 (arith_operand): Use it.
6609                 (mips_const_double_ok, mips16_simple_memory_operand,
6610                 simple_memory_operand, double_memory_operand, mips_check_split,
6611                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
6612                 mips16_gp_offset_p, mips16_output_gp_offset,
6613                 mips16_constant_after_function_p, mips16_constant): Remove.
6614                 (call_insn_operand): Be more fussy about symbolic constants.
6615                 Use register_operand.
6616                 (move_operand): Use mips_symbolic_address_p to check symbolic
6617                 operands and general_operand to check the rest.
6618                 (symbolic_operand): Use mips_classify_constant.
6619                 (mips_legitimate_address_p): Use mips_classify_address.
6620                 (mips_move_1word): Combine handling of symbolic addresses.
6621                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
6622                 (move_move_2words): Likewise.  Assume addresses are offsettable
6623                 if they need to refer to more than one word.  Add HIGH handling.
6624                 (mips_restore_gp): Use ptr_mode for the GP save slot.
6625                 (mips_expand_call): New function, combining the old mips.md
6626                 call and call_internal define_expands.  If the address isn't
6627                 a call_insn_operand, force it into a register.  For SVR4 PIC,
6628                 emit an exception_receiver instruction after the call.
6629                 (override_options): Only override flag_pic for TARGET_ABICALLS
6630                 if it is currently zero.  Allow mips_split_addresses when
6631                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
6632                 Add new register class letter, 'c'.
6633                 (print_operand): Use mips_classify_constant for constant operands.
6634                 (print_operand_address): Use mips_classify_address.
6635                 (mips_output_function_prologue): Don't use .cprestore.
6636                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
6637                 via the frame pointer if current_function_calls_eh_return.
6638                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
6639                 to mark whether a symbol is local or global.
6640                 (build_mips16_call_stub): Expect the address of the function rather
6641                 than a MEM reference to it.  Update call generation sequences.
6642                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
6643                 small-data adjustments.
6644
6645                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
6646                 length for loads and stores.
6647                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
6648                 (define_attr type): Add const and prefetch.
6649                 (define_attr length): Use mips_const_insns for const instructions.
6650                 Use mips_fetch_insns for load and store instructions.
6651                 (define_attr single_insn): New.
6652                 (define_attr can_delay): Use it.
6653                 (define_attr abicalls): Remove.
6654                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
6655                 (addsi3_internal_2): Add 'Q' constraint.
6656                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
6657                 (high): Remove.
6658                 (lowsi): Renamed from low.
6659                 (lowdi): New pattern.
6660                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
6661                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
6662                 (loadgp): Change operand 0 to an immediate_operand.
6663                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
6664                 beforehand.
6665                 (cpaddsi, cpadddi): New patterns.
6666                 (tablejump_internal3, tablejump_internal4): Remove define_expands
6667                 and associated define_splits.
6668                 (call, call_value): Use mips_expand_call.
6669                 (call_internal): New, replacing all existing call_internal* insns.
6670                 (call_value_internal): Likewise call_value_internal*.
6671                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
6672                 (untyped_call): Remove if (operands[0]) magic.
6673                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
6674                 (prefetch_di_address, prefetch_di): Likewise.
6675                 (leasi, leadi): Remove.
6676                 (reloc_gprel16): New.
6677
6678                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
6679                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
6680                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
6681
6682         2003-01-08  Eric Christopher  <echristo@redhat.com>
6683
6684                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
6685                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
6686                 configure check for libgloss.
6687                 * config/mips/elf64.h: Ditto.
6688                 * config/mips/mips.c: Remove ABI_MEABI.
6689                 * config/mips/mips.h: Ditto.
6690
6691         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
6692
6693                 Fix merge fallout.
6694                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
6695                 (muldi3_internal): Remove outdated comment.
6696                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
6697                 (*smsac_di, *umsac_di): Likewise.  Reformat.
6698                 (umulsi3_highpart): Minor formatting tweaks.
6699                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
6700                 redundant scratch operand.  Minor formatting tweak.
6701                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
6702                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
6703                 (smulsi3_highpart): As for the unsigned version.
6704                 (smulsi3_highpart_internal): Likewise.
6705                 (smulsi3_highpart_mulhi_internal): Likewise.
6706                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
6707                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
6708                 (*smul_acc_di): Remove duplicated pattern.
6709                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
6710                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
6711                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
6712
6713         2002-10-22  Eric Christopher  <echristo@redhat.com>
6714
6715                 * config/mips/mips-protos.h (mips_return_addr): New.
6716                 * config/mips/mips.c (mips_return_addr): New.
6717                 (movdi_operand): Remove.
6718                 (se_register_operand): Ditto.
6719                 (se_reg_or_0_operand): Ditto.
6720                 (se_uns_arith_operand): Ditto.
6721                 (se_arith_operand): Ditto.
6722                 (se_nonmemory_operand): Ditto.
6723                 (extend_operator): Ditto.
6724                 (highpart_shift_operator): Ditto.
6725                 (mips_initial_elimination_offset): Remove return address pointer
6726                 elimination.
6727                 (mips_reg_names): Remove $ra.
6728                 (mips_regno_to_class): Ditto.
6729                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
6730                 and TARGET_64BIT.
6731                 (POINTER_BOUNDARY): Remove.
6732                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
6733                 (PROMOTE_MODE): Promote to Pmode.
6734                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
6735                 (Pmode): Define to TARGET_64BIT.
6736                 (FUNCTION_MODE): Define as Pmode.
6737                 (mips_args): Remove deleted functions.
6738                 (SIZE_TYPE): Depend on POINTER_SIZE.
6739                 (PTRDIFF_TYPE): Ditto.
6740                 (FIXED_REGISTERS): Fix extra registers.
6741                 (CALL_USED_REGISTERS): Ditto.
6742                 (CALL_REALLY_USED_REGISTERS): Ditto.
6743                 (RAP_REG_NUM): Remove.
6744                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
6745                 (RETURN_ADDR_RTX): Define to mips_return_addr.
6746                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
6747                 (CAN_ELIMINATE): Ditto.
6748                 * config/mips/mips.md: For DImode patterns, take into account
6749                 deletions above. Split mulsidi patterns into sign_extend and
6750                 zero_extend.
6751
6752         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
6753                     Michael Meissner  <meissner@redhat.com>
6754
6755                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
6756                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
6757                 mop up unnecessarly moves through LO.
6758                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
6759                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
6760                 change mtlo/macc sequences into mul/add sequences when a three-
6761                 address mul is available.
6762                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
6763                 (*mul_sub_si): Fix contraint for operand 5.
6764                 (*muls): Use in 32-bit code as well.
6765                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
6766                 if the destination is LO.  Remove duplicate define_split.
6767                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
6768                 (*msac_di): Likewise.  Fix formatting.
6769                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
6770                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
6771                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
6772                 (*xmulsi3_neg_highpart_mulhi): Likewise.
6773                 (*mul_acc_64bit_di): Remove.
6774                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
6775
6776         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
6777
6778                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
6779                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
6780                 (MULTILIB_DIRNAMES): Remove long32.
6781                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
6782                 (MULTILIB_REDUNDANT_DIRS): Remove.
6783
6784         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
6785
6786                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
6787                 * gcc.c (driver_self_specs): New variable.
6788                 (do_self_spec): New function.
6789                 (main): Use it to process driver_self_specs.
6790
6791         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
6792
6793                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
6794                 Remove DImode define_split for !TARGET_64BIT.
6795                 (anddi3): Remove !TARGET_64BIT support from here as well.
6796                 Change operand 2's predicate to se_uns_arith_operand.
6797                 Add constant alternatives to define_insn.
6798                 (iordi3, xordi3, *nordi3): Likewise.
6799                 (anddi3_internal1, xordi3_immed): Remove.
6800
6801         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
6802
6803                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
6804                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
6805                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
6806                 * config/mips/mips.md: Apply same renaming here.
6807
6808         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
6809
6810                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
6811                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
6812                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
6813                 * config/mips/mips.md (define_attr cpu): Remove r4320.
6814                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
6815
6816         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
6817
6818                 * config/mips/mips.c (mips16_strings): New variable.
6819                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
6820                 symbol in mips16_strings.  Free the list.
6821                 (mips_encode_section_info): Keep track of local strings.
6822
6823         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
6824
6825                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
6826                 (sordered_df, sordered_sf): Remove.
6827                 * config/mips/mips.c (get_float_compare_codes): New fn.
6828                 (gen_int_relational, gen_conditional_move): Use it.
6829
6830         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
6831
6832                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
6833                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
6834                 * config/mips/mips.c (fcc_register_operand): New function.
6835                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
6836                 (override_options): Allow TFmode values in float registers
6837                 if ISA_HAS_8CC.
6838                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
6839                 to fcc_register_operand.  Remove misleading source constraint.
6840                 Use mips_emit_fcc_reload.
6841                 (reload_outcc): Duplicate reload_incc.
6842
6843
6844 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
6845
6846         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
6847
6848 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
6849
6850         * tree-inline.c (inlinable_function_p): Back out last change, it's
6851         unnecessary.
6852
6853 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6854
6855         * ggc-page.c (TREE_EXP_SIZE): Define.
6856         (extra_order_size_table): New entry for expr trees with
6857         two operands.
6858
6859 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
6860
6861         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
6862         (c_expand_start_cond): Adjust.
6863         (c_expand_end_cond): Don't use warning_with_file_and_file.
6864         (shadow_warning): Likewise.
6865
6866 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
6867
6868         * tree.h (DECL_POINTER_DEPTH): Remove.
6869         (struct tree_decl): Remove pointer_depth.
6870
6871 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
6872
6873         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
6874         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
6875         (rs6000_xcoff_encode_section_info): Remove.
6876         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
6877         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
6878         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
6879         Use SYMBOL_REF_FLAGS.
6880         (rs6000_elf_encode_section_info): Call default_encode_section_info for
6881         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
6882         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
6883         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
6884         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
6885         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
6886
6887 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
6888
6889         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
6890
6891 2003-04-30  Andreas Schwab  <schwab@suse.de>
6892
6893         * doc/extend.texi (Other Builtins): Enclose multiple word data
6894         type in braces for @deftypefn.
6895
6896 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6897
6898         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
6899
6900         * doc/install.texi (--enable-threads): Document "gnat" option.
6901
6902 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
6903
6904         * diagnostic.h (output_formatted_scalar): Tweak.
6905         * diagnostic.c (output_long_decimal): Likewise.
6906         (output_unsigned_decimal): Likewise.
6907         (output_long_unsigned_decimal): Likewise.
6908         (output_octal): Likewise.
6909         (output_long_octal): Likewise.
6910         (output_hexadecimal): Likewise.
6911         (output_long_hexadecimal): Likewise.
6912         (output_pointer): New function.
6913         (output_format): Use it.  Recognize "%p" format specifier.
6914
6915 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6916
6917         * function.c (purge_addressof_1): Postpone insn in fewer cases.
6918
6919 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
6920
6921         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
6922         call abort() after running out of stack space.
6923
6924         * c-typeck.c (function_types_compatible_p): Ignore incompatible
6925         'volatile' qualifiers on a function's return type in GNU mode.
6926
6927 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
6928
6929         * expr.c (emit_group_load): Dump parallels of simd types to
6930         memory.
6931
6932 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
6933
6934         * genautomata.c (add_vect): Check undefined value for range type
6935         too.
6936
6937 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
6938
6939         * configure.in:  More general test for cmp --ignore-initial.
6940         * configure:  Regenerate.
6941
6942 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6943
6944         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
6945         (layout_decl, place_field): Likewise.
6946         Also make minor type and whitespace changes.
6947
6948         * tree.c (save_expr): Don't fold a COMPONENT_REF.
6949
6950 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
6951
6952         * calls.c (expand_call): When modes of target and valreg match, force
6953         sibcall failure when target is a MEM.
6954
6955 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
6956
6957         * tree-inline.c (inlinable_function_p): Don't support inlining
6958         functions using varargs.
6959
6960         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
6961
6962         * dwarf2out.c (output_call_frame_info): No need to output EH
6963         unwind information if all_throwers_are_sibcalls.
6964
6965         * c-semantics.c (expand_unreachable_stmt): Return a tree.
6966         (expand_stmt): Update for change to expand_unreachable_stmt.
6967         (expand_unreachable_if_stmt): Likewise.
6968
6969         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
6970
6971 2003-04-29  Jason Merrill  <jason@redhat.com>
6972
6973         PR middle-end/10336
6974         * jump.c (never_reached_warning): Really stop looking if we reach
6975         the beginning of the function.
6976
6977 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
6978
6979         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
6980         Remove redundant macros.
6981         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
6982         (LOCAL_LABEL_PREFIX): Define unconditionally.
6983         (NO_DOT_IN_LABEL): Clarify comment.
6984         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
6985         definition to "long int".
6986
6987 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
6988
6989         bootstrap/10452
6990         * gengtype-yacc.y: Improve portability.
6991
6992 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
6993
6994         * config.gcc: Install obsolete target list for GCC 3.3.
6995         * doc/install.texi: Mention in specific-target instructions
6996         that certain configurations are deprecated.
6997
6998 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
6999
7000         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
7001
7002 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
7003
7004         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
7005         * gcc.c (display_help): Likewise.
7006         * toplev.c (f_options): Likewise.
7007         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
7008         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
7009         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
7010         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
7011         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
7012
7013 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
7014
7015         * varasm.c (default_assemble_visibility): Use assemble_name.
7016
7017 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
7018
7019         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
7020         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
7021         (SIZE_TYPE): New macro.
7022         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
7023         (SET_ASM_OP): New macro.
7024         (HANDLE_SYSV_PRAGMA): New macro.
7025         (ASM_WEAKEN_LABEL): New macro.
7026
7027 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
7028
7029         PR c++/10180
7030         * tree-inline.c (expand_call_inline): Call push_srcloc when
7031         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
7032
7033 2003-04-28  Mike Stump  <mrs@apple.com>
7034
7035         * gdbinit.in: Update to reflect new identifier structure.
7036
7037 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
7038
7039         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
7040         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
7041         struct tree_complex, struct tree_vector): Remove RTL field.
7042         (CONSTRUCTOR_ELTS): Use elt 0.
7043         * tree.def (CONSTRUCTOR): Delete first of its two operands.
7044         * varasm.c (output_constant_def): Remove early exit if
7045         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
7046         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
7047         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
7048         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
7049
7050 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
7051
7052         * c-decl.c (finish_decl): When prototype with asmspec is found
7053         for built-in, adjust built_in_decls as well as expr.c decls.
7054         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
7055         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
7056         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
7057
7058 2003-04-28  Richard Henderson  <rth@redhat.com>
7059
7060         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
7061         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
7062         integral constant mult operand.
7063         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
7064         (const_smulsi3_highpart_v8plus): Likewise.
7065         (const_smulsi3_highpart): Likewise.
7066         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
7067         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
7068         (const_umulsi3_highpart_v8plus): Likewise.
7069         (const_umulsi3_highpart): Likewise.
7070
7071 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
7072
7073         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
7074         Define as 1.
7075
7076 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
7077
7078         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
7079
7080 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
7081
7082         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
7083         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
7084         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
7085         functions.
7086         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
7087
7088 2003-04-28  Nick Clifton  <nickc@redhat.com>
7089
7090         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
7091
7092 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
7093
7094         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
7095         output_constant_def, use its result instead of TREE_CST_RTL (exp).
7096         Can assume it has the form (mem (symbol_ref ".LCxxx")).
7097         (expand_expr <COMPONENT_REF>): Can always just extract the
7098         relevant field of a CONSTRUCTOR.
7099         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
7100         ARRAY_RANGE_REF>): Make control flow explicit.
7101         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
7102         an INTEGER_CST.
7103
7104 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
7105
7106         * reload1.c (reg_set_luid): Fix a comment typo.
7107
7108 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
7109
7110         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
7111         struct deferred_string, const_str_htab): Kill.
7112         (n_deferred_strings): New static variable.
7113         (build_constant_desc): Set SYMBOL_REF_DECL of the new
7114         symbol_ref to point to the constant.
7115         (output_constant_def): When a deferred string is forced out,
7116         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
7117         (mark_constant): Likewise.
7118         (maybe_output_constant_def_contents): When deferring a string
7119         constant, just set STRING_POOL_ADDRESS_P and increment
7120         n_deferred_strings.
7121         (mark_constant_pool): Check n_deferred_strings, not the size
7122         of const_str_htab.
7123         (init_varasm_once): No need to create const_str_htab.
7124
7125         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
7126         SYMBOL_REF_DECL points to a constant.
7127
7128 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
7129
7130         * varasm.c (output_constant_def): Split out two new static
7131         functions, build_constant_desc and maybe_output_constant_def_contents.
7132         Restructure for comprehensibility.  Don't call
7133         output_addressed_constants.  Treat defstr being non-NULL for
7134         STRING_POOL_ADDRESS_P constants as an invariant.
7135         (struct deferred_string): Remove labelno field.
7136         (output_constant_def_contents): Kill labelno argument. Call
7137         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
7138         asm_out.internal_label.
7139         (mark_constant): Update call to output_constant_def_contents.
7140         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
7141         constants as an invariant.
7142
7143 2003-04-26  Richard Henderson  <rth@redhat.com>
7144
7145         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
7146         (ix86_expand_call, ix86_rtx_consts): Likewise.
7147
7148 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7149
7150         * doc/md.texi (cmpstr): Document additional restrictions.
7151
7152 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
7153
7154         * flags.h (time_report): Remove.
7155         * timevar.c (timevar_enable): New.
7156         (TIMEVAR_ENABLE): Remove, use timevar_enable.
7157         (timevar_init): Rename from init_timevar.
7158         * timevar.h (timevar_init): Rename from init_timevar.
7159         * toplev.c (time_report): Make static.
7160         (do_compile): Conditionally call init_timevar first.
7161         (preprocess_options): Move some code to do_compile.
7162
7163 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
7164
7165         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
7166
7167 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
7168
7169         * _cpp_lex_direct: Remove pointless code.
7170
7171 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
7172
7173         * doc/extend.texi (Function Attributes): Document "near" and "far"
7174         for 68HC11 and 68HC12.
7175
7176 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7177
7178         * expr.c (store_field): When making temporary for store, don't
7179         make it TYPE_QUAL_CONST.
7180
7181 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
7182
7183         * toplev.c (read_integral_parameter):  Use "argument" in error
7184         message to distinguish it from actual invalid options.
7185
7186 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
7187
7188         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
7189         addition of __PIC__ and __pic__ macros.
7190         * config/xtensa/xtensa.h: Clean up indentation.
7191
7192 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
7193
7194         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
7195         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
7196         (SUBTARGET_CPP_SPEC): Define.
7197         (LIB_SPEC): Delete.
7198         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
7199         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
7200         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
7201         Define.
7202         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
7203         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
7204
7205 2003-04-25  H.J. Lu <hjl@gnu.org>
7206
7207         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
7208         for return mode.
7209         (ia64_expand_builtin): Set rmode to SImode for
7210         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
7211         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
7212         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
7213         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
7214
7215 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
7216
7217         * configure.in (make_compare_target):  Test for GNU cmp and set this
7218         variable appropriately.
7219         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
7220         compare4-lean): Rename actual targets to slowcompare*.  New compare*
7221         targets depend on names based on make_compare_target.
7222         * configure:  Regenerated.
7223
7224 2003-04-25  Richard Henderson  <rth@redhat.com>
7225
7226         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
7227         to clobber ar.pfs and ar.unat.
7228         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
7229         fix test for spilling ar.pfs to the stack.
7230
7231 2003-04-25  Richard Henderson  <rth@redhat.com>
7232
7233         PR opt/10315
7234         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
7235         checks during reload; use validize_mem instead of adjust_address.
7236
7237 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
7238
7239         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
7240         return values from recog_memoized().
7241
7242 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7243
7244         PR opt/8705
7245         * gcse.c (try_replace_reg): On a successful substitution of a constant
7246         into a single set, try to simplify the source of the set.
7247         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
7248         constant source.
7249
7250 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
7251
7252         * cpplex.c (cpp_token_len): Tighten up.
7253         (cpp_token_as_text): Need extra byte now.
7254         * cpplib.c (glue_header_name): Need extra 2 bytes.
7255         * cppmacro.c (cpp_macro_definition): Need extra byte.
7256
7257 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
7258
7259         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
7260         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
7261         where they might be not present. Use their _sp64 equivalent
7262         instead.
7263
7264 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
7265
7266         * i386.md (cvtsi2sdq): Fix typo in previous patch.
7267
7268 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
7269
7270         * configure.in: Check whether mbstowcs works.
7271         * configure, config.in: Regenerate.
7272         * intl.c: Use HAVE_WORKING_MBSTOWCS.
7273
7274 2003-04-24  H.J. Lu <hjl@gnu.org>
7275
7276         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
7277         for __sync_bool_compare_and_swap_di for int return type.
7278
7279         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
7280         Change return type to int.
7281         (__sync_bool_compare_and_swap): Likewise.
7282
7283 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
7284
7285         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
7286         looking for fallthru edge.
7287
7288         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
7289         Fix.
7290         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
7291         athlon-fvector): New.
7292         (athlon_*): Revisit to match new optimization guide.
7293         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
7294         * i386.md (cvt??2?? patterns): Fix modes.
7295         (fistp patterns): Set modes.
7296
7297         Accidentaly commited with my earlier reload patch:
7298         PR c/10308
7299         * reload.c (find_reloads_address_1): Reload plus at the place of
7300         index register.
7301
7302 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
7303
7304         New GCOV_TAG_FUNCTION layout
7305         * coverage.c (struct function_list): Replace name with ident.
7306         (struct counts_entry): Likewise.
7307         (fn_ident): New.
7308         (htab_counts_entry_hash, htab_counts_entry_eq,
7309         htab_counts_entry_del): Adjust.
7310         (reads_count_file, get_coverage_counts,
7311         coverage_begin_output, coverage_end_function): Adjust.
7312         (build_fn_info_type, build_fn_info_value): Likewise.
7313         * gcov-dump.c (tag_function): Adjust.
7314         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
7315         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
7316         * gcov.c (struct function_info): Add ident.
7317         (read_graph_file, read_count_file): Adjust.
7318         * libgcov.c (gcov_exit): Adjust.
7319
7320 2003-04-23  Richard Henderson  <rth@redhat.com>
7321
7322         PR opt/8300
7323         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
7324         after initialize_uninitialized_subregs; update reg info assuming
7325         new pseudos were created.
7326
7327 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
7328
7329         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
7330         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
7331         (lex_string): Take cpp_string with full spelling.
7332         (cb_ident): Update.
7333         (c_lex): Update diagnostics.
7334         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
7335         (create_literal): New.
7336         (lex_string): Unterminated literals have type CPP_OTHER.
7337         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
7338         for CPP_OTHER.
7339         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
7340         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
7341         * cpplib.c (parse_include, do_line, do_linemarker,
7342         destringize_and_run): Update for token storing full spelling.
7343         * cpplib.h: Update token spelling types.
7344         * cppmacro.c (stringify_arg, check_trad_stringification):
7345         Update for token storing full spelling.
7346
7347 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
7348
7349         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
7350
7351 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
7352
7353         * arm.h (TARGET_OPTIONS): Add value field.
7354
7355 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
7356
7357         * doc/extend.texi: Remove duplicate 2003 copyright date.
7358
7359 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
7360
7361         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
7362         (libgcov.a): Depends on LIBGCC_DEPS.
7363         * basic-block.h (profile_info): Moved here from coverage.h. Made
7364         a pointer.
7365         * coverage.c (struct function_list): Fixed array of counter types.
7366         (struct counts_entry): Keyed by counter type, contains summary.
7367         (profile_info): Moved to profile.c.
7368         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
7369         vars.
7370         (profiler_label): Remove.
7371         (ctr_labels): New.
7372         (set_purpose, label_for_tag, build_counter_section_fields,
7373         build_counter_section_value, build_counter_section_data_fields,
7374         build_counter_section_data_values, build_function_info_fields,
7375         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
7376         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
7377         build_ctr_info_value, build_gcov_info): New.
7378         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
7379         (reads_counts_file): Adjust.
7380         (get_coverage_counts): Takes counter number. Add summary
7381         parameter. Adjust.
7382         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
7383         create counter array labels.
7384         (coverage_end_function): Adjust.
7385         (create_coverage): Adjust.
7386         (find_counters_section): Remove.
7387         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
7388         (struct section_info, struct profile_info): Remove.
7389         (profile_info): Moved to basic-block.h.
7390         (coverage_counter_ref): Takes a counter number.
7391         (get_coverage_counts): Takes a counter number. Added summary
7392         parameter.
7393         (find_counters_section): Remove.
7394         * gcov-dump.c (tag_arc_counts): Rename to ...
7395         (tag_counters): ... here. Adjust.
7396         (tag_table): Move tag_counters to 3rd entry. Remove
7397         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
7398         (dump_file): Check for counter tag values here.
7399         (tag_summary): Adjust.
7400         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
7401         * gcov-io.h (GCOV_LOCKED): New.
7402         (GCOV_TAG_ARC_COUNTS): Rename to ...
7403         (GCOV_TAG_COUNTS_BASE): ... here.
7404         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
7405         Remove.
7406         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
7407         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
7408         GCOV_TAG_IS_COUNTER): New.
7409         (struct gcov_ctr_summary): New.
7410         (struct gcov_summary): Adjust.
7411         (struct gcov_counter_section): Remove.
7412         struct gcov_counter_section_data): Remove.
7413         (struct gcov_function_info): Rename to ...
7414         (struct gcov_fn_info): ... here. Adjust.
7415         (struct gcov_ctr_info): New.
7416         (struct gcov_info): Adjust.
7417         * gcov.c (read_count_file): Adjust.
7418         (output_lines): Adjust.
7419         * libgcov.c (gcov_exit): Adjust.
7420         (__gcov_flush): Adjust.
7421         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
7422         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
7423         probably_never_executed_bb_p, compute_frequency_function): Adjust
7424         profile_info use.
7425         * profile.c (struct counts_entry): Remove.
7426         (profile_info): Define here.
7427         (get_exec_counts): Adjust get_coverage_counts call.
7428         (compute_branch_probablilities): Remove find_counters_section
7429         call.
7430         (gen_edge_profiler): Adjust coverage_counter_ref call.
7431         * tracer.c (tail_duplicate): Adjust profile_info use.
7432
7433 2003-04-23  Roger Sayle  <roger@eyesopen.com>
7434
7435         PR optimization/10339
7436         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
7437         directly instead of unsafely transforming call into a memcmp.
7438         (expand_builtin_strncmp): Likewise.
7439
7440 2003-04-22  Roger Sayle  <roger@eyesopen.com>
7441
7442         * alias.c (mark_constant_function):  Check for constancy and
7443         purity even of void functions.  Update both the function decl
7444         and the cgraph RTL info with the results.
7445
7446 2003-04-22  Roger Sayle  <roger@eyesopen.com>
7447
7448         * real.c (do_add): Change to return a bool indicating that the
7449         result of the operation may be inexact due to loss of precision.
7450         (do_multiply): Likewise.
7451         (do_divide): Likewise.
7452
7453 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
7454             Loren James Rittle  <ljrittle@acm.org>
7455
7456         * dwarf2out.c (fde_table_allocated): Mark with GTY.
7457         (decl_die_table_allocated): Likewise.
7458         (abbrev_die_table_allocated): Likewise.
7459         (line_info_table_allocated): Likewise.
7460         (separate_line_info_table_allocated): Likewise.
7461         (pubname_table_allocated): Likewise.
7462         (arange_table_allocated): Likewise.
7463         (ranges_table_allocated): Likewise.
7464         (decl_die_table_in_use): Unconditionalize; mark with GTY.
7465         (abbrev_die_table_in_use): Likewise.
7466         (line_info_table_in_use): Likewise.
7467         (separate_line_info_table_in_use): Likewise.
7468         (pubname_table_in_use): Likewise.
7469         (arange_table_in_use): Likewise.
7470         (ranges_table_in_use): Likewise.
7471         (have_location_lists): Likewise.
7472         (emitcount): New GTY-marked static, moved...
7473         (maybe_emit_file): ...from here.
7474         (label_num): New GTY-marked static, moved...
7475         (gen_internal_sym): ...from here.
7476
7477 2003-04-22  Richard Henderson  <rth@redhat.com>
7478
7479         PR 8866
7480         * rtl.h (MEM_NOTRAP_P): New.
7481         (MEM_COPY_ATTRIBUTES): Copy it.
7482         * rtlanal.c (may_trap_p): Check it.
7483         * expr.c (do_tablejump): Set it.
7484         * doc/rtl.texi (Flags): Document it.
7485
7486         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
7487
7488 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
7489
7490         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
7491         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
7492
7493 2003-04-22  Vincent Celier <celier@gnat.com>
7494
7495         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
7496         --enable-threads=gnat.
7497         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
7498         * configure.in: Add gnat to the list of thread packages
7499         * configure: Rebuild.
7500         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
7501
7502 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
7503
7504         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
7505
7506 2003-04-22  Devang Patel  <dpatel@apple.com>
7507
7508         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
7509         parameter count.
7510         (_cpp_copy_replacement_text): Same.
7511
7512 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
7513
7514         * c-lex.c (c_lex): Handle CPP_OTHER differently.
7515         * cppexp.c (_cpp_parse_expr): Similarly.
7516         * cpplex.c (SPELL_CHAR): Remove.
7517         (_cpp_lex_direct): Stray chars are saved as byte strings.
7518         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
7519         handle SPELL_CHAR.
7520         (cpp_avoid_paste): Update handling of CPP_OTHER.
7521         * cpplib.h: Spell CPP_OTHER like a number.
7522         (struct cpp_token): Remove member c.
7523         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
7524
7525 2003-04-22  David Turner <novalis@gnu.org>
7526
7527         * gbl-ctors.h: Add special license exception.
7528         * libgcc2.h: Likewise.
7529         * tsystem.h: Likewise.
7530         * gcov-io.h: Likewise.
7531
7532 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
7533
7534         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
7535         macro defaulting to original BRANCH_COST heuristic.
7536         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
7537
7538         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
7539
7540 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
7541
7542         * config/rs6000/t-spe: Merge in t-fprules into file.
7543
7544         * config.gcc: Add t-spe to powerpc-eabispe.
7545
7546 2003-04-22  Kean Johnston  <jkj@sco.com>
7547
7548         * tlink.c (recompile_files): Add missing '=' to putenv calls
7549
7550 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7551
7552         * ginclude/stddef.h: Provide C++ safe offsetof.
7553
7554 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
7555
7556         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
7557         for reg notes, if there are no substitutions, just use a SUBREG.
7558
7559 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
7560
7561         * Makefile.in (calls.o): Depend on except.h.
7562         * calls.c: Include except.h.
7563         (emit_call_1): Call note_eh_region_may_contain_throw if
7564         appropriate.
7565         * except.c (eh_region): Add may_contain_throw.
7566         (expand_eh_region_end_cleanup): Do not include handler code when
7567         it cannot be reached.
7568         (note_eh_region_may_contain_throw): New function.
7569         * except.h (note_eh_region_may_contain_throw): New function.
7570
7571 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
7572
7573         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
7574         changes.
7575
7576 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
7577
7578         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
7579         64-bit long doubles.
7580
7581 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
7582
7583         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
7584         a number of conversions required for type consistency and previously
7585         stripped off by STRIP_NOPS.
7586
7587         * calls.c (expand_call): Prevent sibcall optimization for calls to
7588         nested subprograms.
7589
7590         * expmed.c (extract_bit_field): Reverse operands of && condition to
7591         prevent a potential division by zero in the previously first branch.
7592         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
7593
7594 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
7595
7596         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
7597         (subrange_type_die): Likewise.
7598         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
7599         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
7600
7601 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
7602
7603         Break out coverage routines to new file.
7604         * Makefile.in (COVERAGE_H): New variable
7605         (C_OBJS): Add coverage.o
7606         (coverage.o): New target.
7607         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
7608         dependencies.
7609         (GTFILES): Adjust.
7610         (gt-coverage.h): New target.
7611         (gt-profile.h): Remove.
7612         * profile.h: Remove. Move to ...
7613         * coverage.h: ... here. New. #include gcov-io.h.
7614         * gcov-io.h: Move function definitions to ...
7615         * gcov-io.c: ... here. New.
7616         * profile.c: Move coverage routines to coverage.c.
7617         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
7618         end_branch_prob): Adjust.
7619         * coverage.c: New. Coverage routines from profile.c
7620         (coverage_counter_ref, coverage_init, coverage_finish,
7621         coverage_end_function, coverage_begin_output,
7622         coverage_counter_ref, get_coverage_counts): Define.
7623         * gcov-dump.c, gcov.c: #include gcov-io.c.
7624         * libgcov.c: Likewise. Adjust.
7625         * loop-init.c: Don't #include profile.h
7626         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
7627         * rtl.h: Add coverage prototypes.
7628         * toplev.c (compile_file): Init coverage, not branch_prob.
7629         Always call coverage_finish.
7630         (rest_of_compilation): Call coverage_end_function.
7631
7632 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
7633
7634         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
7635
7636 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
7637
7638         * c-ppoutput.c (cb_include): Don't take a cpp_token.
7639         * cppfiles.c: Don't undef strcmp.
7640         (find_include_file): Don't take a cpp_token.  Check for empty
7641         file names.
7642         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
7643         (cpp_push_include): Simplify.
7644         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
7645         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
7646         (parse_include): Similary.  Don't check for zero-length filenames.
7647         (do_include_common, do_pragma_dependency): Update accordingly.
7648         * cpplib.h (struct cpp_callbacks): Change prototype of include.
7649
7650 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7651
7652         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
7653         details of conflict handling.
7654
7655         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
7656         when conversion overflows.
7657
7658         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
7659
7660         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
7661         before clearing.
7662
7663 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
7664
7665         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
7666         have the same form as the old RTL.
7667
7668 2003-04-21  Andreas Jaeger  <aj@suse.de>
7669
7670         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
7671
7672 2003-04-20  Chris Lattner  <sabre@nondot.org>
7673             Zack Weinberg  <zack@codesourcery.com>
7674
7675         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
7676         genrtl_cleanup_stmt.  Correct comment at head of
7677         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
7678
7679         * stmt.c (struct nesting): Kill n_function_calls.
7680         (expand_start_bindings): Don't set
7681         thisblock->data.block.n_function_calls.
7682         (expand_end_bindings): Compare function_call_count against 0.
7683         (expand_cleanups): Kill DONT_DO argument; all callers passed
7684         NULL_TREE. All callers updated to match.
7685
7686 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
7687
7688         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
7689         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
7690         (output_constant_def): Remove code predicated on
7691         defer_addressed_constants_flag.
7692
7693         * output.h: Remove prototypes of deleted functions.
7694         * c-typeck.c (constructor_subconstants_deferred): Kill.
7695         (struct initializer_stack): Remove 'deferred' field.
7696         (start_init): Remove all references to the above.
7697         (finish_init): Likewise. Also remove never-executed call to
7698         output_deferred_addressed_constants.  Pull assignment to
7699         defstr out of if expression.
7700
7701 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
7702
7703         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
7704         NOTE_NEWLINE): Remove.
7705         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
7706         to handle new form of line note type.
7707
7708 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
7709
7710         * target.h (encode_section_info): Add new argument carrying
7711         the RTL to be modified by the hook.
7712
7713         * varasm.c (make_decl_rtl, output_constant_def): Update calls
7714         to encode_section_info.
7715         (default_encode_section_info): Take and use RTL argument,
7716         don't use TREE_CST_RTL or DECL_RTL.
7717         * output.h: Update prototype of default_encode_section_info.
7718         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
7719         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
7720         Update calls to encode_section_info.
7721
7722         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
7723         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
7724         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
7725         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
7726         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
7727         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
7728         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
7729         except for PE dllimport/dllexport.  Update calls to
7730         default_encode_section_info.
7731
7732         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
7733         Update prototypes.
7734
7735         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
7736
7737 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7738
7739         PR/8705
7740         * pa.md (movccfp): New expander.
7741         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
7742         Reverse fcmp conditions.
7743
7744 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7745
7746         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
7747         of operand 1 correctly.
7748
7749 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
7750
7751         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
7752         * gcov.c (output_lines): Don't be so fussy about going past EOF.
7753
7754 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
7755
7756         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
7757         (cppcharset.o): New target.
7758         * c-lex.c (is_extended_char): Move to cppcharset.c.
7759         (utf8_extend_token): Delete.
7760         * cppcharset.c: New file.
7761         * cpphash.h (_cpp_valid_ucn): New.
7762         * cpplex.c (lex_identifier): Update prototype.
7763         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
7764         escapes.
7765         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
7766         in cppcharset.c.
7767         (lex_number, lex_identifier, cpp_parse_escape): Update.
7768         (_cpp_lex_direct): Update to handle UCNs.
7769         (cpp_avoid_paste): Don't paste to form a UCN.
7770
7771 2003-04-19  Roger Sayle  <roger@eyesopen.com>
7772
7773         * builtins.c (expand_builtin):  Don't expand a pure or const
7774         built-in function if the result will be ignored and none of
7775         its arguments are volatile.
7776
7777 2003-04-19  Kean Johnston  <jkj@sco.com>
7778
7779         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
7780         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
7781         target fragment now: t-sco5; dont compile crti.o.
7782         * config/i386/sco5.h: major overhaul to remove all COFF remnants
7783         and to use elfos.h for most definitions.
7784         (BSS_SECTION_ASM_OP): set correct segment attributes.
7785         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
7786         (DWARF2_UNWIND_INFO): Always set to 1.
7787         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
7788         (MD_STARTFILE_PREFIX_1): Define.
7789         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
7790         (DEFAULT_LINKER): Define if not specified to configure.
7791         (CTORS_SECTION_ASM_OP): Remove COFF crud.
7792         (DTORS_SECTION_ASM_OP): Remove COFF crud.
7793         (WINT_TYPE): Define.
7794         (SDB_DEBUGGING_INFO): Remove.
7795         (EXTRA_SECTIONS): Likewise.
7796         (EXTRA_SECTION_FUNCTIONS): Likewise.
7797         (CTOR_LIST_BEGIN): Likewise.
7798         (CTOR_LIST_END): Likewise.
7799         (INIT_SECTION_FUNCTION): Likewise.
7800         (FINI_SECTION_FUNCTION): Likewise.
7801         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
7802         (LOCAL_LABEL_PREFIX): Likewise.
7803         (NON_SAVING_SETJMP): Likewise.
7804         (RETURN_POPS_ARGS): Likewise.
7805         (ASM_OUTPUT_SKIP): Likewise.
7806         (TARGET_ASM_NAMED_SECTION): Likewise.
7807         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
7808         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
7809         (ASM_OUTPUT_IDENT): Likewise.
7810         (ASM_OUTPUT_CASE_LABEL): Likewise.
7811         (ASM_OUTPUT_ASCII): Likewise.
7812         (ASM_OUTPUT_LIMITED_STRING): Likewise.
7813         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
7814         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7815         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
7816         (ASM_FINISH_DECLARE_OBJECT): Likewise.
7817         (ASM_DECLARE_OBJECT_NAME): Likewise.
7818         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
7819         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7820         (ASM_DECLARE_RESULT): Likewise.
7821         (ASM_WEAKEN_LABEL): Likewise.
7822         (SUPPORTS_WEAK): Likewise.
7823         (APPLY_RESULT_SIZE): Likewise.
7824         (LPREFIX): Likewise.
7825         (ALIGN_ASM_OP): Likewise.
7826         (ASCII_DATA_ASM_OP): Likewise.
7827         (IDENT_ASM_OP): Likewise.
7828         (ASM_SHORT): Likewise.
7829         (ASM_LONG): Likewise.
7830         (TYPE_ASM_OP): Likewise.
7831         (SIZE_ASM_OP): Likewise.
7832         (STRING_ASM_OP): Likewise.
7833         (SKIP_ASM_OP): Likewise.
7834         (EH_FRAME_SECTION_ASM_OP): Likewise.
7835         (READONLY_DATA_SECTION_ASM_OP): Likewise.
7836         (INIT_SECTION_ASM_OP): Likewise.
7837         (FINI_SECTION_ASM_OP): Likewise.
7838         (TEXT_SECTION_ASM_OP): Likewise.
7839         (DATA_SECTION_ASM_OP): Likewise.
7840         (TYPE_OPERANT_FORMAT): Likewise.
7841         (ASM_SPEC): Remove COFF code.
7842         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
7843         cause -pg to emit an error; use pcrt1elf.o with -pp
7844         (ENDFILE_SPEC): Likewise.
7845         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
7846         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
7847         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
7848         add -z alt_resolve to support weak symbols the way GCC wants them.
7849         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
7850         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
7851         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
7852         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
7853         (CRTSTUFF_T_CFLAGS_S): Define.
7854         (MULTILIB_OPTIONS): Likewise.
7855         (MULTILIB_DIRNAMES): Likewise.
7856         (MULTILIB_MATCHES): Likewise.
7857         (MULTILIB_EXTRA_OPTS): Likewise.
7858         (LIBGCC): Likewise.
7859         (INSTALL_LIBGCC): Likewise.
7860         (crti.o): Remove.
7861         * config/i386/t-sco5gas: Remove.
7862         * doc/install.texi: Updated for new OpenServer instructions.
7863         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
7864
7865 2003-04-19  Kean Johnston  <jkj@sco.com>
7866
7867         * fixinc/check.tpl: Allow user to over-ride diff program.
7868         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
7869         (sco_math): Added test for SCO math header files.
7870         (sco_regset): Added check for conflicts with ieeefp.h.
7871         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
7872         * fixinc/fixincl.x: Regenerated
7873         * fixinc/tests/base/math.h: Added sco_math tests.
7874         * fixinc/tests/base/string.h: New file.
7875         * fixinc/tests/base/sys/regset.h: New file.
7876
7877 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
7878
7879         * cpphash.h (struct cpp_buffer): Remove backup_to.
7880         * cpplex.c (BACKUP, get_effective_char): Die.
7881         (_cpp_skip_block_comment): Assume '*' is location on entry.
7882         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
7883         (IF_NEXT_IS): Update.
7884         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
7885
7886 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
7887
7888         * README.Portability: Move to a new section and obsolete K+R
7889         portability issues.
7890
7891 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
7892
7893         * rtlanal.c (subreg_offset_representable_p):  Fix call of
7894         subreg_lowpart.
7895
7896 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
7897
7898         * cpphash.h (struct cpp_reader): New member warned_dollar.
7899         * cpplex.c (continues_identifier_p): New function.
7900         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
7901         lex_number and lex_string, and simplify.
7902         (parse_slow, unescaped_terminator_p): Die.
7903         (_cpp_lex_direct): Update.
7904
7905 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7906
7907         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
7908
7909 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
7910
7911         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
7912         fork behavior.
7913
7914 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
7915
7916         * cppexp.c (eval_token): Permit true and false even if pedantic.
7917
7918 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
7919
7920         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
7921
7922 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
7923
7924         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
7925         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
7926         (struct include_file): Remove fefcnt, mapped members.
7927         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
7928         (read_include_file): Don't use mmap, terminate buffers in '\r'.
7929         (purge_cache): Don't use munmap.
7930         * cpphash.h (CPP_BUF_COLUMN): Update.
7931         (lexer_state): Remove lexing_comment.
7932         (struct _cpp_line_note): New.
7933         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
7934         next_line and need_line.  Remove col_adjust and saved_flags.
7935         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
7936         _cpp_skip_block_comment, scan_out_logical_line): New.
7937         (_cpp_init_mbchar): Remove.
7938         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
7939         (cpp_read_main_file): Set line to 1 earlier.
7940         (post_options): -traditional-cpp doesn't want trigraphs.
7941         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
7942         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
7943         _cpp_get_fresh_line): New.
7944         (handle_newline, skip_escaped_newlines, trigraph_p,
7945         continue_after_nul, _cpp_init_mbchar): Remove.
7946         (get_effective_char): Update.
7947         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
7948         (skip_line_comment): Simplify.
7949         (skip_whitespace, parse_identifier, parse_slow, parse_number,
7950         parse_string): Update.
7951         (cpp_lex_direct): Use clean lines and process line notes.  Update.
7952         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
7953         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
7954         directly.
7955         (_cpp_handle_directive): Don't set saved_flags.
7956         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
7957         cpp_undef, handle_assertion, cpp_push_buffer): Update.
7958         (_cpp_pop_buffer): Free notes.
7959         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
7960         * cpppch.c (cpp_read_state): \n terminate buffer.
7961         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
7962         (copy_comment): Use _cpp_skip_block_comment.
7963         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
7964         Simplify.
7965         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
7966         save_replacement_text): Update.
7967         (scan_out_logical_line): Update to use clean lines and process
7968         line notes.
7969         * fix-header.c (read_scan_file): Update.
7970
7971 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
7972
7973         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
7974         null begin parameter (as well as pointer to null).
7975         (__deregister_frame_info_bases): Likewise.
7976
7977 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7978
7979         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
7980         hard or virtual register and copy into pseudo if replacement fails.
7981
7982         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
7983
7984         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
7985
7986 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
7987
7988         * calls.c (expand_call): Move special case for constructor calls
7989         to right place. Ensures constructor calls used to initialize
7990         arguments get a clean outgoing argument block for themselves.
7991         Move check for stack deallocation completeness until after last
7992         deallocation.  Add stack_pointer_delta to set of state
7993         variables saved and restored along with current stack_level.
7994
7995         * integrate.c (expand_inline_function): Ensure non-const actuals
7996         don't end up const in the caller's flow after conversion to possibly
7997         const formal type.
7998
7999 2003-04-18  Vincent Celier  <celier@gnat.com>
8000
8001         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
8002         and *_DIV_EXPR as TRUNC_*_EXPR.
8003
8004 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
8005
8006         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
8007         for orphaned jump tables.
8008
8009 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
8010
8011         * reload1.c: Revert my previous patch on 2002-04-17.
8012
8013 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8014
8015         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
8016         Add Segher Boessenkool.
8017
8018 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
8019
8020         PR c/9177
8021         * c-decl.c (c_expand_body): Don't garbage collect the function
8022         body if we are going to dump it later.
8023
8024 2003-04-18  Richard Henderson  <rth@redhat.com>
8025
8026         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
8027         (alpha_end_function): Don't set them.
8028         (decl_in_text_section): Remove.
8029         (alpha_encode_section_info): Remove.
8030         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
8031         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
8032         sections, rather than decl_in_text_section results.
8033
8034 2003-04-18  Roger Sayle  <roger@eyesopen.com>
8035
8036         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
8037         and SIGN_EXTRACT.
8038
8039 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8040
8041         PR optimization/7675
8042         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
8043         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
8044         nested functions if they refer to declarations from parent functions.
8045         * stmt.c (expand_decl): Don't put automatic variables in registers
8046         if the DECL_NONLOCAL flag is set.
8047
8048 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
8049
8050         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
8051         consider those to be movable where the source matches
8052         want_to_gcse_p.
8053         (update_ld_motion_stores): In comment, refer to
8054         compute_ld_motion_mems for validity of replacement.
8055
8056 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
8057
8058         * gcov-dump.c (tag_summary): Remove max_sum
8059         * gcov-io.h (gcov_summary, gcov_write_summary,
8060         gcov_read_summary): Kill max_sum.
8061         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
8062         message more verbose.
8063
8064         * emit-rtl.c (subreg_hard_regno):  Check that register is
8065         representable.
8066
8067         * reload.c (reload_inner_reg_of_subreg):  When register is not
8068         representable, reload the whole thing.
8069         (find_reloads): Likewsie.
8070         * rtlanal.c (subreg_representable_p):  New function.
8071
8072         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
8073         allow negative probabilities for edges from the call to exit.
8074         (branch_prob): Do not add fake edges for functions that may return
8075         twice.
8076
8077 2003-04-17  DJ Delorie  <dj@redhat.com>
8078
8079         * toplev.c (target_options): Add value field.
8080         (set_target_switch): Handle target options with values.
8081         * doc/tm.texi: Document how fixed vs variable target
8082         options work.
8083         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
8084         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
8085         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8086         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
8087         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
8088         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
8089         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
8090         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
8091         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
8092         Add value initializer to target options.
8093
8094 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
8095
8096         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
8097
8098 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
8099
8100         * reload1.c (move2add_last_cc0): New.
8101         (reload_cse_move2add): Detect implicit sets.
8102         (move2add_note_store): Notice a store into cc0.
8103
8104 2003-04-17  Roger Sayle  <roger@eyesopen.com>
8105
8106         PR c/10375
8107         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
8108         function attributes.
8109
8110 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
8111
8112         * doc/sourcebuild.texi (Test Suites): Document support for testing
8113         binary compatibility (moved from testsuite/README.compat).
8114
8115 2003-04-17  Richard Henderson  <rth@redhat.com>
8116
8117         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
8118
8119 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
8120
8121         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
8122         the one provided by the FSF.
8123
8124 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8125
8126         * doc/install.texi (Binaries): Update URL and list of platforms
8127         provided by ftp.thewrittenword.com.
8128
8129 2003-04-17  Richard Henderson  <rth@redhat.com>
8130
8131         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
8132         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
8133         * config/xtensa/xtensa.md (call, call_value): Likewise.
8134
8135 2003-04-17  Richard Henderson  <rth@redhat.com>
8136
8137         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
8138         (print_operand_address): Likewise.
8139         (ep_memory_operand): Likewise.
8140         (special_symbolref_operand): Likewise.
8141         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
8142         (v850_encode_section_info): Call default_encode_section_info.
8143         (v850_strip_name_encoding): Remove.
8144         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
8145         (ASM_OUTPUT_LABELREF): Remove.
8146         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
8147         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
8148         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
8149         (ENCODED_NAME_P): Remove.
8150         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
8151         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
8152         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
8153
8154 2003-04-17  Richard Henderson  <rth@redhat.com>
8155
8156         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
8157         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
8158         SYMBOL_REF_FUNCTION_P.
8159
8160 2003-04-17  Richard Henderson  <rth@redhat.com>
8161
8162         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
8163         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
8164         (text_segment_operand): Likewise.
8165
8166 2003-04-17  Richard Henderson  <rth@redhat.com>
8167
8168         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
8169         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
8170         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
8171         (sh_encode_section_info): Remove.
8172         (sh_strip_name_encoding): Remove.
8173         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
8174         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
8175         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
8176         (ASM_OUTPUT_LABELREF): Remove.
8177         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
8178         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
8179
8180 2003-04-17  Richard Henderson  <rth@redhat.com>
8181
8182         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
8183         (tls_model_chars): Remove.
8184         (larl_operand): Use SYMBOL_REF_FLAGS.
8185         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
8186         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
8187         (s390_output_mi_thunk): Likewise.
8188         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
8189         (s390_function_profiler): Likewise.
8190         (s390_encode_section_info): Use default_encode_section_info
8191         and SYMBOL_FLAG_ALIGN1.
8192         (s390_strip_name_encoding): Remove.
8193         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
8194         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
8195         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
8196
8197 2003-04-17  Richard Henderson  <rth@redhat.com>
8198
8199         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
8200         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
8201         (print_operand_address): Likewise.
8202
8203         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
8204         * config/ns32k/ns32k.c (expand_block_move): Don't check
8205         flag_unroll_loops.
8206
8207 2003-04-17  Richard Henderson  <rth@redhat.com>
8208
8209         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
8210         SYMBOL_REF_FLAG.
8211
8212 2003-04-17  Richard Henderson  <rth@redhat.com>
8213
8214         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
8215
8216         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
8217         (SYMBOL_REF_MODEL): New.
8218         (LIT_NAME_P): Move from m32r.h.
8219         (m32r_select_section): Remove.
8220         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
8221         (m32r_strip_name_encoding): Remove.
8222         (m32r_in_small_data_p): New.
8223         (small_data_operand): Use SYMBOL_REF_SMALL_P.
8224         (addr24_operand): Use SYMBOL_REF_MODEL.
8225         (call26_operand): Likewise.
8226         (addr32_operand): Tidy.
8227         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
8228         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
8229         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
8230         (READONLY_DATA_SECTION_ASM_OP): Remove.
8231         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
8232         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
8233         (TARGET_ASM_SELECT_SECTION): Remove.
8234         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
8235         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
8236         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
8237         (ASM_OUTPUT_LABELREF): Remove.
8238
8239 2003-04-17  Richard Henderson  <rth@redhat.com>
8240
8241         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
8242         (encode_section_info): Remove.
8243         * config/ip2k/ip2k-protos.h: Update.
8244
8245 2003-04-17  Richard Henderson  <rth@redhat.com>
8246
8247         * varasm.c (default_encode_section_info): Don't set
8248         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
8249         * config/i370/i370.c (i370_encode_section_info): Remove.
8250         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
8251         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
8252         * config/i370/i370.md (movsi): Likewise.
8253
8254         * config/i370/t-i370: Add missing backslash.
8255
8256 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
8257
8258         * doc/invoke.texi (inline-limit): Fix pasto.
8259
8260 2003-04-17  Richard Henderson  <rth@redhat.com>
8261
8262         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
8263         (small_call_insn_operand): Use it.
8264         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
8265         (h8300_eightbit_constant_address_p): Use it.
8266         (SYMBOL_FLAG_TINY_DATA): New.
8267         (h8300_tiny_constant_address_p): Use it.
8268         (h8300_encode_label, h8300_strip_name_encoding): Remove.
8269         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
8270         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
8271         (ASM_OUTPUT_LABELREF): Remove.
8272
8273 2003-04-16  Richard Henderson  <rth@redhat.com>
8274
8275         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
8276         all users with SYMBOL_REF_SMALL_P.
8277         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
8278         (frv_encode_section_info): Remove.
8279         (frv_strip_name_encoding): Remove.
8280         (frv_in_small_data_p): Merge tests from encode_section_info.
8281         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
8282         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
8283         (SDATA_NAME_P): Remove.
8284         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
8285         (ASM_OUTPUT_LABELREF): Remove.
8286         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
8287
8288         * config/frv/frv.c (frv_asm_out_constructor): New.
8289         (frv_asm_out_destructor): New.
8290         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
8291         (DTORS_SECTION_ASM_OP): New.
8292         (ASM_OUTPUT_CONSTRUCTOR): Remove.
8293         (ASM_OUTPUT_DESTRUCTOR): Remove.
8294
8295 2003-04-16  Richard Henderson  <rth@redhat.com>
8296
8297         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
8298         SYMBOL_REF_LOCAL_P; abort if not pic.
8299         (cris_encode_section_info): Remove.
8300
8301 2003-04-16  Richard Henderson  <rth@redhat.com>
8302
8303         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
8304         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
8305
8306         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
8307         flag_inline_trees.
8308
8309 2003-04-16  Richard Henderson  <rth@redhat.com>
8310
8311         * config/avr/avr.c (avr_encode_section_info): Remove.
8312         (avr_insert_attributes): New.
8313         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
8314         (avr_assemble_integer): Likewise.
8315
8316 2003-04-16  Richard Henderson  <rth@redhat.com>
8317
8318         * arc.c (arc_encode_section_info): Remove.
8319         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
8320         (arc_print_operand, arc_print_operand_address): Likewise.
8321         * arc.h (EXTRA_CONSTRAINT): Likewise.
8322
8323 2003-04-16  Roger Sayle  <roger@eyesopen.com>
8324
8325         * c-semantics.c (find_reachable_label): New function to find a
8326         potentially reachable label in an expression.
8327         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
8328         assumes the start of the IF_STMT is unreachable (dead) code.
8329         (expand_unreachable_stmt): Similar to expand_stmt but assumes
8330         the start of the statement list is unreachable (dead) code.
8331         (genrtl_if_stmt):  If the controlling expression of the IF
8332         is constant, use expand_unreachable_stmt for the THEN or ELSE
8333         clause as appropriate.
8334         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
8335         the body of a SWITCH statement.
8336         (expand_stmt): The code immediately following a "return",
8337         "break", "continue" or "goto" is unreachable.
8338         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
8339
8340 2003-04-16  Richard Henderson  <rth@redhat.com>
8341
8342         * rtl.h (MEM_ALIAS_SET): Update documentation.
8343         * doc/rtl.texi (Special Accessors): New node.
8344         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
8345
8346 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
8347
8348         * reload1.c (reload_cse_noop_set_p): Return false if mode of
8349         SET_DEST is not the same as that returned by...
8350         * cselib.h (cselib_reg_set_mode): ... new function.
8351         * cselib.c (cselib_reg_set_mode): Define it.
8352         (REG_VALUES): Document semantics of first element as set mode.
8353         (cselib_subst_to_values): Skip first element if ELT is NULL.
8354         (cselib_lookup): Likewise.  Insert past the first element.
8355         (cselib_invalidate_regno): NULLify first element.
8356         (cselib_record_set): Set first element.
8357
8358 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
8359
8360         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
8361         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
8362         * tree.h: Add prototypes for the two new functions.
8363         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
8364         updates introduced in the previous revision by call to saved_expr_p.
8365         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
8366
8367         * expr.c (store_field): Force usage of bitfield instructions when
8368         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
8369         (expand_expr, case BIT_FIELD_REF): likewise.
8370
8371 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
8372
8373         PR middle-end/8866
8374         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
8375         jumptables.
8376
8377 2003-04-16  Richard Henderson  <rth@redhat.com>
8378
8379         * config/ia64/ia64.c (sdata_symbolic_operand): Use
8380         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
8381         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
8382         (function_operand): Use SYMBOL_REF_FUNCTION_P.
8383         (ia64_expand_load_address): Likewise.
8384         (ia64_assemble_integer): Likewise.
8385         (ia64_encode_section_info): Remove.
8386         (ia64_strip_name_encoding): Remove.
8387         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
8388         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
8389
8390 2003-04-16  Richard Henderson  <rth@redhat.com>
8391
8392         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
8393         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
8394         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
8395         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
8396         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
8397         (global_symbolic_operand): Similarly.
8398         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
8399         (tls_symbolic_operand_type): Likewise.
8400         (alpha_encode_section_info): Use default_encode_section_info.
8401         (alpha_strip_name_encoding): Remove.
8402         (get_tls_get_addr): Split out from ...
8403         (alpha_legitimize_address): ... here.
8404         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
8405         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
8406         (alpha_initialize_trampoline): Use init_one_libfunc.
8407         (alpha_setup_incoming_varargs): Mark unused parameters.
8408         (alpha_initial_elimination_offset): Likewise.
8409         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
8410         (unicosmk_unique_section): Use default_strip_name_encoding.
8411         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
8412
8413 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
8414
8415         * config.gcc: Add t-spe for eabispe.
8416
8417         * config/rs6000/t-spe: New.
8418
8419 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
8420
8421         Re-apply this patch:
8422
8423         2002-05-16  Dale Johannesen  <dalej@apple.com>
8424           * combine.c (cant_combine_insn_p):  Reenable combinations
8425           involving hard regs unless CLASS_LIKELY_SPILLED_P.
8426
8427 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8428
8429         PR/10271
8430         * pa-protos.h (function_arg): Remove last argument.
8431         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
8432         * pa.h (struct hppa_args): Add member incoming.
8433         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
8434         member incoming.
8435         (FUNCTION_ARG): Revise call to function_arg.
8436         (FUNCTION_INCOMING_ARG): Delete.
8437
8438 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
8439
8440         * configure.in: Unify the code which creates symlinks to a
8441         just-built as, ld, objdump, and nm with the code that detects
8442         their presence for purposes of feature tests.
8443         * configure: Regenerate.
8444
8445 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
8446
8447         * varasm.c (output_constant_def): Do not consult
8448         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
8449         (after_function_constants, output_after_function_constants): Delete.
8450         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
8451         * config/mips/mips-protos.h, config/mips/mips.c
8452         (mips16_constant_after_function_p): Delete.
8453         * config/mips/mips.h: Delete #if-0-ed definition of
8454         CONSTANT_AFTER_FUNCTION_P.
8455         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
8456         mention of CONSTANT_AFTER_FUNCTION_P in comment.
8457
8458 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
8459
8460         * tree.c (next_decl_uid): Mark with GTY.
8461         (next_type_uid): Likewise.
8462
8463 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
8464
8465         PR target/9594:
8466         * sh.c (barrier_align): Also recognize stuff_delay_slot as
8467         an indicator that a barrier was created by branch splitting.
8468
8469 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
8470
8471         * c-decl.c (implicitly_declare): Copy declarations that are going
8472         to be placed in a local scope.
8473
8474 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
8475
8476         * invoke.texi (Spec Files): Wrap if-exists-else example.
8477         (MCore): Remove duplicate @itemx entries and @opindex entries.
8478
8479 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
8480
8481         * unwind.inc (_Unwind_Backtrace): New function.
8482         * unwind.h (_Unwind_Backtrace): Declare it.
8483         * libgcc-std.ver (_Unwind_Backtrace): Export it.
8484
8485 2003-04-14  Jason Merrill  <jason@redhat.com>
8486
8487         PR middle-end/10336, c++/10401
8488         * jump.c (never_reached_warning): Also stop looking if we reach the
8489         beginning of the function.
8490
8491 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8492
8493         PR target/10338
8494         PR bootstrap/10198
8495         PR bootstrap/10140
8496         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
8497
8498 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
8499
8500         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
8501
8502 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8503
8504         * optabs.c (expand_binop): In multi-word add cases, ensure
8505         XTARGET is copied to TARGET if they are different.
8506
8507 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
8508
8509         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
8510         to region, possible after integration of function with unreachable
8511         regions that were optimized away.
8512
8513 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
8514
8515         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
8516         instead of TOC_REGISTER in epilogue in
8517         current_function_calls_eh_return functions.
8518
8519 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
8520
8521         * doc/extend.texi (Empty Structures): Correct description of G++'s
8522         handling of these structures.
8523
8524         * c-decl.c (grokdeclarator): Reject extern redeclarations of
8525         static variables.
8526
8527 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
8528
8529         * config/rs6000/rs6000.md (define_constants): Define constants for
8530         all UNSPEC usage, including new values for TLS support.
8531         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
8532         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
8533         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
8534         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
8535         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
8536         eh_set_lr_di): Use them.
8537         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
8538         rs6000_emit_epilogue) Use them.
8539
8540         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
8541
8542 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
8543
8544         * Makefile.in (c-opts.o): Use custom action.
8545
8546 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
8547
8548         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
8549
8550 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8551
8552         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
8553         handle "superflat arrays" in Ada.
8554
8555         * integrate.c (expand_inline_function): Don't inline if would
8556         lose /u on a BLKmode TARGET.
8557
8558 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
8559
8560         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
8561         extracted from dbxout_type.
8562         (dbxout_range_type): print large bounds in octal format.
8563         (dbxout_type): Replace extracted code by call to
8564         print_int_cst_bounds_in_octal_p.
8565
8566         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
8567         of DW_LANG_Ada83 for Ada units.
8568
8569 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
8570
8571         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
8572         temporary used to round CONST_INT sizes.
8573
8574         * tree.c (int_fits_type_p): Extract generic checks from the case
8575         of constant type bounds. Refine the checks against constant type
8576         bounds to allow for possible decisions against each of these bounds
8577         without requiring both bounds to be constant.
8578         (tree_int_cst_msb): Put back.
8579         * tree.h (tree_int_cst_msb): Likewise.
8580
8581         * global.c (global_conflicts): Prevent allocation of call clobbered
8582         hard regs to pseudos live across abnormal edges, as later passes are
8583         not ready to handle them.
8584
8585         * fold-const.c (fold): Reorder tests for conditional expressions.
8586
8587         * expr.c (highest_pow2_factor): Return unsigned.
8588         * expr.h (offset_address): Likewise.
8589         * emit-rtl.c (offset_address): POW2 argument now unsigned.
8590
8591 2003-04-14  Roger Sayle  <roger@eyesopen.com>
8592
8593         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
8594         string literals at compile-time.
8595
8596 2003-04-14  Roger Sayle  <roger@eyesopen.com>
8597
8598         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
8599         comparison operation and c1/c2 are floating point constants into
8600         x swap(cmp) (c1 - c2).
8601
8602 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
8603
8604         * genautomata.c (output_translate_vect): Fix a typo in loop
8605         condition.
8606
8607 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
8608
8609         PR target/10377
8610         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
8611         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
8612         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
8613         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
8614         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
8615         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
8616         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
8617         ("*extopqihi_swap_side", "*extopqisi_swap_side")
8618         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
8619         When next to constraint R, replace constraint i with n.
8620
8621 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
8622
8623         PR opt/10024
8624         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
8625
8626 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
8627
8628         * doc/contrib.texi (Contributors): Correct my entry.
8629
8630 2003-04-13  Roger Sayle  <roger@eyesopen.com>
8631
8632         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
8633         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
8634         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
8635         implies DECL_BUILT_IN to simplify logic.
8636         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
8637
8638 2003-04-13  Roger Sayle  <roger@eyesopen.com>
8639
8640         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
8641         (BT_FN_PTR_SIZE_SIZE): Likewise.
8642         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
8643         New built-in functions for malloc, calloc and strdup respectively.
8644         * calls.c (special_function_p): No need to handle malloc-like
8645         functions any longer.  ECF_MALLOC is set via built-in attributes.
8646
8647         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
8648
8649         * doc/extend.texi: Document these new built-in functions.
8650
8651 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8652
8653         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
8654         (expand_builtin_stpcpy): New.
8655         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
8656         * builtins.def: Add mempcpy & stpcpy support.
8657         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
8658
8659 2003-04-13  Nick Clifton  <nickc@redhat.com>
8660
8661         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
8662         "GCC".
8663         * config/rs6000/40x.md, config/rs6000/603.md,
8664         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
8665         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
8666         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
8667         config/rs6000/aix43.h, config/rs6000/aix51.h,
8668         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
8669         config/rs6000/altivec.h, config/rs6000/altivec.md,
8670         config/rs6000/beos.h, config/rs6000/darwin.h,
8671         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
8672         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
8673         config/rs6000/freebsd.h, config/rs6000/gnu.h,
8674         config/rs6000/host-darwin.c, config/rs6000/linux.h,
8675         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
8676         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
8677         config/rs6000/netbsd.h, config/rs6000/power4.md,
8678         config/rs6000/rios1.md, config/rs6000/rios2.md,
8679         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
8680         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
8681         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
8682         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
8683         config/rs6000/spe.md, config/rs6000/sysv4.h,
8684         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
8685         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
8686
8687 2003-04-13  Nick Clifton  <nickc@redhat.com>
8688
8689         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
8690         support for -mcall-aix switch.
8691         * config/rs6000/eabiaix.h: Delete.
8692         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
8693         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
8694         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
8695         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
8696         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
8697         debug_stack_info, output_function_profiler,
8698         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
8699         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
8700         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
8701         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
8702         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
8703         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
8704         multilibs.
8705         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
8706         (MULTILIB_EXCEPTIONS): Delete.
8707         (MULTILIB_MATCHES): Remove mcall-aix matches.
8708
8709         * doc/fragments.texi: Replace -mcall-aix example with an ARM
8710         one.
8711         * doc/install.texi: Delete powerpc-*-eabiaix target.
8712         * doc/invoke.texi: Remove documentation of mcall-aix switch.
8713         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
8714         * config.gcc: Delete powerpc-*-eabiaix target.
8715
8716 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
8717
8718         * doc/invoke.texi: Fix typos.
8719         * doc/tm.texi: Likewise.
8720
8721 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
8722
8723         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
8724
8725 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
8726
8727         * tree.c (build_constructor): New function.
8728         * tree.h: Prototype it.
8729
8730         * c-typeck.c (build_c_cast, pop_init_level)
8731         * profile.c (build_function_info_value, build_gcov_info_value)
8732         (create_profiler):
8733         Use build_constructor.
8734
8735         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
8736
8737         * objc/objc-act.c (build_constructor):
8738         Rename objc_build_constructor. Use build_constructor.
8739         (build_objc_string_object, objc_add_static_instance)
8740         (init_def_list, init_objc_symtab, init_module_descriptor)
8741         (generate_static_references, build_selector_translation_table)
8742         (build_descriptor_table_initializer, generate_descriptor_table)
8743         (build_protocol_initializer, build_ivar_list_initializer)
8744         (generate_ivars_list, build_dispatch_table_initializer)
8745         (generate_dispatch_table, generate_protocol_list)
8746         (build_category_initializer, build_shared_structure_initializer):
8747         Update to match.
8748
8749 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
8750
8751         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
8752
8753 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
8754
8755         * config/m68hc11/m68hc11-protos.h
8756         (m68hc11_eq_compare_operator): Declare
8757         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
8758         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
8759         (d_register_operand): Check the operand mode.
8760         (hard_addr_reg_operand): Likewise.
8761
8762 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
8763
8764         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
8765         pattern for dbcc/ibcc generation for 68HC12.
8766         ("doloop_end"): New pattern.
8767         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
8768         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
8769         ("m68hc12_dbcc_dec_qi"): New pattern.
8770         ("m68hc12_dbcc_inc_qi"): New pattern.
8771         (split): Add split for the above when we can't use dbcc/ibcc due to
8772         reloading.
8773         (peephole2): Add peephole2 to generate the above when possible.
8774
8775 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
8776
8777         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
8778         mode of operand 0.
8779         (peephole2 optimize const load): Likewise for operand 2.
8780         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
8781         clobbers CC_REGNUM.
8782         ("*rotrhi3_with_carry"): Likewise.
8783         (ashift:DI 1 split): Update pattern to create the above rotate.
8784         (lshiftrt:DI 1 split): Likewise.
8785
8786 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
8787
8788         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
8789         ("tstqi_z_used" split): Use it.
8790         ("cmphi_z_used"): Likewise.
8791         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
8792         ("cmpqi_z_used"): Likewise.
8793
8794 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
8795
8796         PR c++/7910
8797         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
8798
8799 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
8800
8801         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
8802         * configure, config.in: Regenerate.
8803         * intl.c (gcc_gettext_width): New function.
8804         * intl.h: Prototype it.
8805
8806 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
8807
8808         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
8809         recognize -mnorelax.
8810         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
8811         (REG_CLASS_NAMES): Add its name.
8812         (REG_CLASS_CONTENTS): Define its content.
8813
8814 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
8815
8816         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
8817         parameters so that offsets are valid for far definition.
8818         (__mulsi3): Likewise and use ret to return.
8819         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
8820
8821 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
8822
8823         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
8824
8825 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
8826
8827         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
8828         containing a libgcc.a, move lib* to the corresponding stage dir.
8829
8830         * Makefile.in (stage1-start, stage2-start, stage3-start,
8831         stage4-start): Move $(SPECS) to specs in stage dir.
8832         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
8833         back as $(SPECS).
8834
8835         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
8836         object files from the non-libgcc/ multilib directories as well.
8837
8838 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
8839
8840         * profile.c (read_counts_file): Initialise 'checksum'.
8841
8842         * emit-rtl.c (gen_rtx): Really correct typo.
8843
8844         PR c++/9393
8845         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
8846         * configure.in: Check for gettimeofday.
8847         * tree.c (flag_random_seed): Define.
8848         (default_flag_random_seed): New.
8849         (append_random_chars): Use flag_random_seed rather than trying
8850         to acquire randomness here.
8851         * tree.h (default_flag_random_seed): Declare.
8852         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
8853         descriptions.
8854         (decode_f_option): Handle -frandom-seed.
8855         (print_switch_values): Call default_flag_random_seed.
8856         * flags.h (flag_random_seed): Declare.
8857         * configure: Regenerate.
8858         * config.in: Regenerate.
8859         * config/alpha/t-crtfm: Use -frandom-seed.
8860
8861         * doc/extend.texi (Empty Structures): New.
8862
8863         * c-pch.c: Include flags.h.  Add comments to routines.
8864         (struct c_pch_validity): New.
8865         (get_ident): Update PCH file version number.
8866         (pch_init): Output current debugging type.
8867         (c_common_valid_pch): Check debugging type.
8868         * Makefile.in (c-pch.o): Update dependencies.
8869         * flags.h (debug_type_names): Declare.
8870         * toplev.c (debug_type_names): Move out of decode_g_option.
8871
8872 2003-04-11  Eric Christopher  <echristo@redhat.com>
8873
8874         * emit-rtl.c (gen_rtx): Fix typos.
8875
8876 2003-04-11  Richard Henderson  <rth@redhat.com>
8877
8878         * emit-rtl.c (gen_rtx): Zero '0' fields.
8879
8880 2003-04-11  Richard Henderson  <rth@redhat.com>
8881
8882         PR c++/10202
8883         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
8884         not COMPLETE_TYPE_P for re-invoking layout_decl.
8885
8886 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
8887
8888         * doc/bugreport.texi: Fix paragraph breaking between sections
8889         in preparation for TeXinfo's paragraph indentation fixes.
8890         * doc/extend.texi: Ditto.
8891         * doc/invoke.texi: Ditto.
8892         * doc/objc.texi: Ditto.
8893         * doc/gcov.texi: Wrap 'gcov' in @command{}.
8894         * doc/invoke.texi (Darwin Options): Add a preamble.
8895
8896 2003-04-11  Richard Henderson  <rth@redhat.com>
8897
8898         * config/i386/i386.c (tls_model_chars): Remove.
8899         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
8900         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
8901         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
8902         (tls_symbolic_operand_1): Likewise.
8903         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
8904         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
8905         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
8906         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
8907         bits "copied from i386.h" with default_encode_section_info.
8908
8909 2003-04-11  Richard Henderson  <rth@redhat.com>
8910
8911         * rtl.def (SYMBOL_REF): Add two 0 fields.
8912         * gengtype.c (adjust_field_rtx_def): Handle them.
8913         * print-rtl.c (print_rtx): Print them.
8914         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
8915         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
8916         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
8917         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
8918         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
8919         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
8920         (SYMBOL_FLAG_MACH_DEP): New.
8921         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
8922         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
8923         (assemble_static_space): Set SYMBOL_REF_FLAGS.
8924         (assemble_trampoline_template): Likewise.
8925         (output_constant_def, force_const_mem): Likewise.
8926         (default_encode_section_info): New.
8927         * output.h: Declare it.
8928         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
8929
8930 2003-04-11  Richard Henderson  <rth@redhat.com>
8931
8932         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
8933         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
8934         * optabs.c (init_optabs): Initialize them.
8935         (init_libfuncs): Use init_one_libfunc.
8936         * calls.c (expand_call): Use gcov_flush_libfunc.
8937         * expr.c (store_constructor): Use setbits_libfunc.
8938         * function.c (expand_main_function): Use init_one_libfunc.
8939         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
8940
8941 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
8942
8943         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
8944         documentation; add DECL_FRIEND_CONTEXT.
8945
8946 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8947
8948         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
8949         notes on linker selection and configuration for 64-bit HP-UX port.
8950         * doc/invoke.texi (hppa): Remove hppa text from description for
8951         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
8952         and -threads options.
8953
8954         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
8955         libc.a on libdld.sl when -static is specified and -nolibdld is not
8956         specified.
8957         * pa64-hpux.h (LIB_SPEC): Likewise.
8958         * pa-hpux11.h (LIB_SPEC): Likewise.
8959         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
8960         is not specified.
8961
8962 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
8963
8964         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
8965         not IDENTIFIER_LOCAL_VALUE.
8966
8967 2003-04-11  Richard Henderson  <rth@redhat.com>
8968
8969         PR c/10201
8970         * expr.c (expand_expr): Move DECL_RTL frobbing ...
8971         * stor-layout.c (layout_decl): ... here.
8972
8973 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
8974
8975         * doc/invoke.texi: Eliminate extra white-space caused by
8976         @gccoptlist{ on its own line.
8977         * doc/invoke.texi: Ensured there are two spaces between each option.
8978         * doc/invoke.texi: Re-wrapped option lines that were too wide.
8979         Added @gol to options that didn't have them.
8980
8981 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
8982
8983         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
8984         gcov-iov.h.
8985
8986         Simplify interface to gcov reading and writing.
8987         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
8988         gcov_alloc, gcov_modified, gcov_errored): Move into ...
8989         (struct gcov_var gcov_var): ... this static structure.
8990         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
8991         Return void.
8992         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
8993         read object.
8994         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
8995         (gcov_reserve_length): Remove.
8996         (gcov_write_tag): New.
8997         (gcov_write_length): Adjust.
8998         (gcov_read_summary, gcov_write_summary): Adjust.
8999         (gcov_eof, gcov_ok): Rename to ...
9000         (gcov_is_eof, gcov_is_error): ... here. Return error code.
9001         (gcov_save_position, gcov_resync): Rename to ...
9002         (gcov_position, gcov_seek): ... here.
9003         (gcov_skip, gcov_skip_string): Remove.
9004         (gcov_error): Remove.
9005         (gcov_open, gcov_close): Adjust.
9006         * gcov.c (find_source): Take const char *, copy it on allocation.
9007         (read_graph_file): Adjust.
9008         (read_count_file): Adjust.
9009         * libgcov.c (gcov_exit): Adjust.
9010         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
9011         tag_arc_counts, tag_summary): Return void. Adjust.
9012         (struct tag_format): Adjust proc member.
9013         (dump_file): Adjust gcov calls.
9014
9015 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
9016
9017         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
9018         mkfixinc.sh.
9019         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
9020         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
9021         build != host sysrooted builds.
9022         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
9023         TARGET_SYSTEM_ROOT even on sysrooted natives.
9024         * configure: Rebuilt.
9025
9026 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
9027
9028         * c-decl.c (struct binding_level): Add shadowed_tags and
9029         function_body; remove this_block, tag_transparent, and
9030         subblocks_tag_transparent; update comments.
9031         (clear_binding_level, lookup_tag_reverse): Kill.
9032         (make_binding_level): Use ggc_alloc_cleared or memset.
9033         (lookup_tag): Remove struct binding_level* parameter.  All
9034         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
9035         current_binding_level->tags if asked for thislevel_only or if
9036         we might have to diagnose "struct foo; union foo;"
9037         (pushlevel): Ignore argument.  Do not push another binding
9038         level on the transition from the parameters to the top level
9039         of the function body; just tweak the flags and proceed.
9040         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
9041         a function body, separate the parameter list from the
9042         top-level local variables.
9043         (set_block): Do nothing.
9044         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
9045         shadowed_tags if necessary.
9046         (warn_if_shadowing): Nuke the special case for local shadowing
9047         parameter.
9048         (pushdecl): Do not create a shadow entry if we are replacing
9049         an older decl in the same binding level.
9050         (pushdecl_function_level): Tweak for new way of indicating
9051         function scope.
9052         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
9053         (start_function): Don't set subblocks_tag_transparent.
9054         (finish_function): Fix up the binding_level stack for totally
9055         empty functions.  Otherwise, don't call poplevel.
9056
9057         * c-common.c (shadow_warning): MANDATORY argument is no longer
9058         necessary.  Always use plain warning.
9059         * c-common.h: Update to match.
9060
9061         * cfglayout.c (scope_to_insns_initialize): Clear block when we
9062         hit the FUNCTION_DECL.
9063         * function.c: Do not create cyclic tree structure.
9064
9065 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
9066
9067         * c-tree.h (struct lang_identifier): Replace global_value,
9068         local_value members with symbol_value, tag_value.  Kill
9069         implicit_decl and limbo_value.
9070         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
9071         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
9072         C_MISSING_PROTOTYPE_WARNED): Kill.
9073         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
9074         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
9075         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
9076         (implicit_decl_warning, lookup_name_current_level,
9077         record_function_scope_shadow): Don't prototype.
9078         (pushdecl_function_level): Prototype.
9079
9080         * c-decl.c (truly_local_externals): New variable.
9081         (struct binding_level): Adjust commentary.
9082         (get_function_binding_level, clear_limbo_values,
9083         record_function_scope_shadow): Kill.
9084         (lookup_name_current_level, implicit_decl_warning): Are now static.
9085         (any_external_decl, record_external_decl): New static functions.
9086         (clone_underlying type): Split out of pushdecl.
9087         (c_print_identifier): Update to match changes to struct
9088         lang_identifier.
9089         (poplevel): Delete #if 0 block.  Make externals invisible
9090         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
9091         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
9092         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
9093         (duplicate-decls): For real parm decl after a forward decl,
9094         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
9095         foo(...) { } with only a warning.  Say whether a previous
9096         declaration was implicit.
9097         (warn_if_shadowing): Now handles all shadowing, not just
9098         local-over-local.  Clarify comments.
9099         (pushdecl): Rewritten.  There is no longer a distinction
9100         between global and local symbol values; they're all
9101         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
9102         DECL_EXTERNAL decls, and use any_external_decl to check
9103         against previous externals.  Kill #if 0 blocks.  Don't
9104         tolerate error_mark_node being NULL.
9105         (pushdecl_top_level): Handle only those cases which
9106         Objective C (the only user) needs.
9107         (pushdecl_function_level): New function.
9108         (implicitly_declare): Create ordinary decls with
9109         C_DECL_IMPLICIT set.  Recycle old decls, however they got
9110         created.
9111         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
9112         for C_DECL_INVISIBLE symbols.
9113         (lookup_name_current_level): Likewise.  Use chain_member.
9114         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
9115         Use pushdecl_function_level.
9116         (builtin_function): Use C_DECL_INVISIBLE.
9117         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
9118         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
9119         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
9120         (identifier_global_value): Same.  Must scan
9121         global_binding_level in extremis.
9122
9123         * c-typeck.c (undeclared_variable): New static function, split
9124         from build_external_ref.
9125         (build_external_ref): Use DECL_CONTEXT, not
9126         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
9127         an instance variable.  Restructure for clarity.
9128         * objc/objc-act.c: Use identifier_global_value, not
9129         IDENTIFIER_GLOBAL_VALUE.
9130
9131 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
9132
9133         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
9134         not Working Paper.
9135         * doc/invoke.texi (C++ Dialect Options): Same.
9136
9137 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
9138
9139         * tree.c (tree_operand_check_failed): New function.
9140         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
9141         TREE_RTL_OPERAND_CHECK): New checking macros.
9142         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
9143         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
9144         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
9145         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
9146         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
9147         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
9148         checking macros.
9149
9150 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
9151
9152         PR inline-asm/8803
9153         * function.c (instantate_virtual_regs):  Verify that all ASM statements
9154         match after the virutal regs instantiation.
9155
9156 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
9157
9158         * ia64-protos.h (addp4_optimize_ok): New.
9159         * ia64.c (addp4_optimize_ok): New.
9160         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
9161         (*ptr_extend_plus_2): Ditto.
9162
9163 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
9164
9165         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
9166         not with convert_memory_address.
9167         (store_constructor): Ditto, and same for copy_size_rtx.
9168         (expand_expr): Ditto.
9169
9170 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
9171
9172         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
9173
9174 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
9175
9176         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
9177         even if it is configured to be write-through.
9178
9179 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
9180
9181         * config/s390/s390.c (larl_operand): Do not allow symbols
9182         marked with '@'.
9183         (s390_encode_section_info): Mark symbols with forced 1-byte
9184         alignment with '@'.
9185         (s390_strip_name_encoding): Strip '@'.
9186         (legitimize_pic_address): Handle symbols that are not valid
9187         LARL operands in 64-bit mode.
9188
9189 2003-04-10  Andrew Haley  <aph@redhat.com>
9190
9191         * tree-inline.c (inlinable_function_p): Disable inlining for
9192         synchronized methods.
9193
9194 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
9195
9196         * c-common.h (lang_statement_code_p): Remove declaration.
9197         (statement_code_p): Ditto.
9198         (c_common_stmt_codes): Define; list of c-common statement codes.
9199         (statement_code_p): New extern declaration.
9200         (STATEMENT_CODE_P): Define.
9201         (INIT_STATEMENT_CODES): Define.
9202         * c-common.c (statement_code_p): Kill the function, declare
9203         as an array of bools instead.
9204         (lang_statement_code_p): Remove.
9205         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
9206         (c_safe_from_p): Ditto.
9207         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
9208         to initialize the statement_code_p array.
9209         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
9210         statement_code_p.
9211         (copy_tree_r): Ditto.
9212         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
9213         statement tree codes.
9214         * cp/lex.c (cxx_init): Add missing print line break.  Use
9215         INIT_STATEMENT_CODES to initialize the statement_code_p array.
9216         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
9217         instead of statement_code_p.
9218         * cp/pt.c (tsubst_expr): Ditto.
9219         * cp/tree.c (verify_stmt_tree_r): Ditto.
9220         (cp_statement_code_p): Remove.
9221         (init_tree): Don't set lang_statement_code_p, it's gone.
9222
9223 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
9224             Zack Weinberg  <zack@codesourcery.com>
9225
9226         * regrename.c (struct du_chain): Use a bitfield for reg_class.
9227         * cse.c (struct qty_table_elem, struct table_elt, struct set):
9228         Use bitfields for fields holding enum rtx_code or
9229         enum machine_mode values.  Add comments explaining size choices.
9230
9231 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
9232
9233         * config/fp-bit.c (unpack_d): Handle pair of doubles with
9234         different signs correctly.
9235
9236 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
9237
9238         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
9239         (reg_pending_barrier): Make it of the enumeration type.
9240         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
9241         TRUE_BARRIER.
9242         (sched_analyze): Ditto.
9243         (sched_analyze_insn): Ditto.  Use anti-dependencies for
9244         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
9245         (init_deps_global): Initialize the barrier as NO_BARRIER.
9246
9247 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
9248
9249         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
9250         Check that asm insn starts on a new cycle.  Add nops after asm
9251         insn to end bundle.
9252         (bundling): Move insn type evaluation from the loop.  Call
9253         issue_nops_and_insn with the new parameter.  Ignore changing
9254         position for nops after asm insn.
9255
9256 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
9257
9258         * optabs.c: Comment that gen_add2_insn and others may actually
9259         return emitted insns, if the gen functions turn out to return
9260         emitted insns.
9261         * reload1.c (reload_cse_move2add): Cope with emitted insns from
9262         gen_add2_insn.
9263
9264 2003-04-09  Richard Henderson  <rth@redhat.com>
9265
9266         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
9267         but not tls_symbolic_operand.
9268         (ia64_expand_load_address): Remove scratch operand.
9269         (ia64_expand_tls_address): Split out from ia64_expand_move.
9270         (ia64_expand_move): Split symbolics only after reload.
9271         (ia64_emit_cond_move): New.
9272         * config/ia64/ia64-protos.h: Update.
9273         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
9274         (symbolic splitter): Accept SImode operands too.
9275         (cmove splitter): Use ia64_emit_cond_move.
9276
9277 2003-04-09  Nick Clifton  <nickc@redhat.com>
9278
9279         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
9280         newer.
9281         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
9282         instead of -mno-fpu.
9283         * config/arm/semi.h (ASM_SPEC): Likewise.
9284         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
9285         but only if -msoft-float is specified pass.  Otherwise pass
9286         -mfpu=softvfp.
9287
9288 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9289
9290         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
9291         free_EXPR_LIST_node.
9292
9293 2003-04-08  Roger Sayle  <roger@eyesopen.com>
9294
9295         * fold-const.c (fold):  Use "fold" following build in more places.
9296         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
9297         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
9298
9299 2003-04-08  Roger Sayle  <roger@eyesopen.com>
9300
9301         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
9302         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
9303         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
9304         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
9305         Delete function scope "fcode" variable to avoid shadowing.
9306
9307 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
9308
9309         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
9310         Take into account DWARF_INITIAL_LENGTH_SIZE.
9311
9312 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
9313
9314         * reorg.c (fill_slots_from_thread): When considering changing the
9315         insn following a reg-to-reg copy insn to use the source reg of the
9316         copy, bail out if there's overlap between the registers.
9317
9318 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9319
9320         * function.c (postponed_insns): New.
9321         (purge_addressof_1): Postpone processing of insns if addressofs
9322         are not put into stack.
9323         (purge_addressof): Process postponed insns.
9324
9325 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
9326
9327         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
9328         this is FP_MODE_DOUBLE .
9329         * sh.c (ra.h): #include.
9330         (push_regs): Add second parameter.  Changed all callers.
9331         If necessary, set fpscr before saving floating point registers.
9332         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
9333         do saves / restores with SZ == 1.
9334         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
9335         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
9336         registers are being restored, restore FPSCR only after restoring them.
9337
9338 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
9339
9340         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
9341         regardless of architecture.
9342         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
9343
9344 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
9345
9346         * sh.c (push_regs, calc_live_regs): Return int.  Take single
9347         HARD_REG_SET * parameter.  Changed all callers.
9348
9349 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
9350
9351         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
9352         GOTOFF operand.
9353         (legitimize_pic_address): Move plus outside the unspec.
9354         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
9355         for validity.
9356
9357 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
9358
9359         * gcov-io.h (gcov_save_position): Remove __inline__ from
9360         declaration.
9361
9362 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
9363
9364         * doc/install.texi: Use @command and @samp for single- and
9365         multi-word commands respectively.
9366         * doc/makefile.texi: Likewise.
9367         * doc/sourcebuild.texi: Likewise.
9368
9369 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
9370             Richard Henderson  <rth@redhat.com>
9371
9372         PR c/9516
9373         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
9374         favor of looping and tail recursion for TREE_LIST and binops.
9375
9376 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9377
9378         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
9379         for insns without luid.
9380
9381 2003-04-07  Glen Nakamura  <glen@imodulo.com>
9382
9383         PR opt/8634
9384         * explow.c (maybe_set_unchanging): Don't flag non-static const
9385         aggregate type initializers with RTX_UNCHANGING_P.
9386
9387 2003-04-07  Richard Henderson  <rth@redhat.com>
9388
9389         PR opt/8634
9390         * function.c (purge_addressof_1): Don't try arithmetics for
9391         unchanging memories.
9392
9393 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
9394
9395         * doc/sourcebuild.texi (Test Suites): Document testing support for
9396         gcov and profile-directed optimizations; describe gcc.misc-tests.
9397
9398 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
9399
9400         PR target/10077
9401         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
9402
9403 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9404
9405         * doc/rtl.texi (Comparison operations): Update to
9406         record the allowed comparison modes.
9407
9408 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
9409
9410         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
9411         V2SI_type_node to opaque_V2SI_type_node.  Rename all
9412         V2SF_type_node to opaque_V2SF_type_node.
9413         (rs6000_init_builtins): Define opaque_V2SI_type_node and
9414         opaque_V2SF_type_node.
9415         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
9416         opaque_V2SF_type_node are opaque types.
9417
9418 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
9419
9420         * gcse.c (replace_store_insn): Use single_set.
9421
9422 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
9423
9424         Change gcov file interface to single file at a time.
9425         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
9426         Convert to C89 prototypes.
9427         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
9428         gcov_error, gcov_modified): New static variables.
9429         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
9430         functions.
9431         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
9432         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
9433         (gcov_read_summary, gcov_write_summary): Adjust.
9434         (gcov_save_position, gcov_reserve_length, gcov_write_length):
9435         Adjust.
9436         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
9437         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
9438         (da_file_position, da_file_seek, da_file_write, da_file_read):
9439         Remove.
9440         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
9441         * gcov.c (gcov_type): Don't typedef here.
9442         (IN_GCOV): #define
9443         (read_graph_file, read_count_file): Adjust.
9444         * gcov-dump.c (gcov_type): Don't typedef here.
9445         (IN_GCOV): #define.
9446         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
9447         Remove FILE parameter, adjust.
9448         (struct tag_format): Adjust proc member.
9449         (dump_file): Adjust.
9450         * libgcov.c (IN_LIBGCOV): #define.
9451         (gcov_exit): Adjust.
9452         * loop-init.c: Don't #include gcov-io.h
9453         * profile.c (struct counts_entry): New structure to hold counter
9454         values.
9455         (struct section_reference, struct da_index_entry): Remove.
9456         (bbg_file, da_file): Remove.
9457         (htab_counts_index_hash, htab_counts_index_eq,
9458         htab_counts_index_del): Replace with ...
9459         (htab_counts_entry_hash, htab_counts_entry_eq,
9460         htab_counts_entry_del): ... these.
9461         (cleanup_counts_index, index_counts_file): Remove.
9462         (read_counts_file): New function.
9463         (get_exec_counts): Adjust.
9464         (compute_branch_probabilities): Don't free the exec counts here.
9465         (branch_prob): Adjust.
9466         (init_branch_prob): Adjust.
9467         (end_branch_prob): Adjust.
9468
9469 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
9470
9471         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9472         -mfloat-gprs.
9473
9474         * config/rs6000/rs6000.c: Delete rs6000_fprs.
9475         Declare rs6000_float_gprs.
9476         Declare rs6000_float_gprs_string.
9477         (rs6000_parse_float_gprs_option): New.
9478         (rs6000_override_options): Genericize rs6000_parse_* calls to use
9479         rs6000_parse_yes_no_option.
9480         Change check for cpu=8540, to use TARGET_E500.
9481         (rs6000_parse_isel_option): Delete.
9482         (rs6000_parse_spe_option): Delete.
9483         (rs6000_parse_vrsave_option): Delete.
9484
9485         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
9486         Define rs6000_float_gprs_string.
9487         (TARGET_OPTIONS): Add rs6000_float_gprs option.
9488
9489         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
9490
9491         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
9492
9493 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
9494
9495         PR opt/10024
9496         * cfglayout.c (cfg_layout_redirect_edge):
9497         Redirect any branch edges unified with the fallthru one.
9498         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
9499         case fallthru edges when called via cfglayout.c
9500
9501 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
9502
9503         * c-typeck.c (output_init_element): Check for type == error_mark_node.
9504
9505 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
9506
9507         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
9508         split.
9509         (a splitter): Do zero-extension via HImode.
9510
9511 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
9512
9513         * doc/invoke.texi: Eliminate extra white-space caused by
9514         @gccoptlist{ on its own line.
9515         * doc/invoke.texi: Ensured there are two spaces between each option.
9516         * doc/invoke.texi: Re-wrapped option lines that were too wide.
9517         Added @gol to options that didn't have them.
9518
9519 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
9520
9521         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
9522
9523 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
9524
9525         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
9526         at the sizes of the relevant structures, rather than relying
9527         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
9528         sizes of any such we don't know about.  Use
9529         lang_hooks.identifier_size for IDENTIFIER_NODE.
9530
9531         (initializer_zerop): Use CONSTRUCTOR_ELTS.
9532         * tree.def: Update commentary.  Make fourth element of
9533         the definition for all 'c' and 'x' nodes zero.
9534
9535         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
9536         * langhooks-def.h: Update to match.
9537         * langhooks.c: New default, lhd_tree_size.
9538
9539         * c-common.def (SRCLOC): Kill.
9540         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
9541         Remove entirely - was already #if-ed out.
9542
9543
9544 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
9545
9546         * mklibgcc.in: Use a here document to avoid running afoul of
9547         shells that generate control-A from "echo \1".
9548
9549 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
9550
9551         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
9552         option.
9553
9554         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9555         rs6000_spe.
9556
9557         * config/rs6000/eabi.h (TARGET_E500): Define.
9558
9559         * config/rs6000/rs6000.h (TARGET_E500): Define.
9560         (TARGET_OPTIONS): Add spe= option.
9561         Declare rs6000_spe and rs6000_spe_string extern.
9562
9563         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
9564         Change TARGET_SPE to TARGET_E500.
9565         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
9566         !TARGET_FPRS.
9567         (print_operand): Same.
9568         (rs6000_generate_compare): Same.
9569         (output_cbranch): Same.
9570         (rs6000_spe): Declare.
9571         (rs6000_spe_string): Declare.
9572         (rs6000_override_options): Call rs6000_parse_spe_option.
9573         (rs6000_parse_spe_option): New.
9574
9575 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
9576
9577         * hashtable.c (gcc_obstack_init): Delete this function
9578         and everything related to it.
9579         * hashtable.h: Remove prototype.
9580         * bitmap.c (bitmap_element_allocate): Cleanup redundant
9581         defines.  Cleanup some unnecessary whitespace.
9582         * defaults.h (obstack_chunk_alloc): Redefine with
9583         appropriate casts for libiberty obstacks.
9584         (obstack_chunk_free): Ditto.
9585         (OBSTACK_CHUNK_SIZE): Define, default to 0.
9586         (gcc_obstack_init): Define as a call to _obstack_begin.
9587         * tree.c (print_obstack_statistics): Delete this unused
9588         function.
9589         * tree.h (obstack): Don't forward-declare.
9590         (print_obstack_statistics): Delete prototype.
9591         (print_obstack_name): Ditto.
9592         (gcc_obstack_init): Ditto.
9593         * rtl.h (gcc_obstack_init): Ditto.
9594         * java/jv-scan.c (gcc_obstack_init): Delete this
9595         function, its prototype and related defines.
9596         * java/jvgenmain.c (gcc_obstack_init): Delete this
9597         function, and related defines.
9598         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
9599         (obstack_chunk_free): Ditto
9600
9601 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
9602
9603         * dbxout.c (dbxout_handle_pch): Move prototype out from
9604         #if defined DBX_DEBUGGING_INFO.
9605
9606 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
9607
9608         * gcov.c (struct arc_info): Replace local_span with cycle.
9609         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
9610         (solve_flow_graph): Set is_call_return.
9611         (add_line_counts): Adjust. In block mode, blocks attach to last line.
9612         (accumulate_line_counts): Find graph cycles, not spanning tree.
9613         (output_branch_count): Adjust.
9614         (output_lines): Adjust.
9615         * doc/gcov.texi: Update.
9616
9617 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
9618
9619         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
9620         the second alternative to "#".
9621
9622 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
9623
9624         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
9625         (single_zero_operand): Likewise.
9626
9627 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
9628
9629         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
9630         * df.c: Include alloc-pool.h, not obstack.h.
9631         (df_ref_obstack): Remove.
9632         (df_ref_pool, df_link_pool): Add pools.
9633         (df_alloc): Init the new pools.
9634         (df_free): And free them.
9635         (df_link_create): Use the pools.
9636         (df_ref_create): Ditto.
9637
9638 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
9639
9640         * simplify-rtx.c: Fix formatting.
9641
9642 2003-04-05  Andrew Pinski  <apinski@apple.com>
9643
9644         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
9645         reg with reg1 == reg2 and offset1 = -8.
9646
9647 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
9648
9649         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
9650         multiply costs.  Correct Power4 divide costs.
9651         * config/rs6000/power4.md: Restore multiply and FP latency.
9652
9653 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9654
9655         * alias.c (find_base_term): Export.
9656         * rtl.h (find_base_term): Declare.
9657         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
9658         instead of flag_exceptions.  Move test for parameter passing ...
9659         (store_killed_in_insn): ... here.
9660
9661 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9662
9663         PR bootstrap/10267
9664         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
9665         for configuring.
9666
9667 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
9668
9669         * dbxout.c (scope_labelno): Add GTY.
9670         (have_used_extensions): Add GTY.
9671         (source_label_number): Add GTY.
9672         (lastfile): Add GTY.
9673         (lastfile_is_base): New.
9674         (base_input_file): New.
9675         (dbxout_handle_pch): New.
9676         (dbx_debug_hooks): Add handle_pch.
9677         (xcoff_debug_hooks): Likewise.
9678         (dbxout_function_end): Remove scope_labelno.
9679         (dbxout_init): Set base_input_file.
9680         (dbxout_handle_pch): New.
9681         (dbxout_source_file): Honour lastfile_is_base.
9682         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
9683         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
9684         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
9685         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
9686         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
9687         * debug.h (struct gcc_debug_hooks): Add handle_pch.
9688         * c-pch.c (pch_init): Don't call start_source_file, but do call
9689         handle_pch.
9690         (c_common_write_pch): Call handle_pch.
9691         (c_common_read_pch): Don't call start_source_file,
9692         or end_source_file.
9693
9694 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
9695
9696         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
9697         use of default attributes to agree MEM_ALIGN macro.
9698
9699 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
9700
9701         * dbxout.c (dbxout_type): When printing type index of range type
9702         whose bounds are printed in octal format, print type of parent type if
9703         it exists so enumerated type descriptions are not transformed
9704         into unsigned types.
9705
9706 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
9707
9708         * config/h8300/h8300-protos.h: Add a prototype for
9709         compute_a_shift_cc.
9710         * config/h8300/h8300.c (shift_one): Update the CC status.
9711         (shift_two): Likewise.
9712         (output_a_shift_cc): Set cc_inline and cc_special.
9713         (compute_a_shift_cc): New.
9714         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
9715
9716 2003-04-04  Richard Henderson  <rth@redhat.com>
9717
9718         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
9719
9720 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
9721
9722         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
9723         * fixinc/fixincl.x: Rebuilt.
9724         * fixinc/tests/base/stdio.h: Regenerated.
9725
9726 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
9727
9728         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
9729
9730 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
9731
9732         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
9733         (NORMAL_MODE).
9734         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
9735
9736 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9737
9738         * doc/contrib.texi (Contributors): Add entries for Wolfgang
9739         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
9740         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
9741         Danny Smith, and Ulrich Weigand.
9742         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
9743         entry.
9744
9745 2003-04-04  Nick Clifton  <nickc@redhat.com>
9746
9747         * config/sparc/sol2-bi.h: Revert previous delta.
9748         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
9749
9750 2003-04-04  Nick Clifton  <nickc@redhat.com>
9751
9752         * config/v850/v850.c (expand_prologue): Only use register save
9753         helper functions if long calls are not being used.
9754         Add a clobber of r11 id using long calls.
9755         (pattern_is_ok_for_prologue): Account for the extra clobber.
9756         (construct_save_jarl): Likewise.
9757         * config/v850/v850.md (prolog pattern): Do not use this pattern
9758         for v850e's.
9759
9760 2003-04-04  Andreas Schwab  <schwab@suse.de>
9761
9762         * stor-layout.c (layout_decl): Avoid syntax error in last change
9763         when PCC_BITFIELD_TYPE_MATTERS is defined but not
9764         EMPTY_FIELD_BOUNDARY.
9765
9766 2003-04-03  Jason Merrill  <jason@redhat.com>
9767
9768         PR c/10175
9769         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
9770         Look backwards for a line note.
9771
9772 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
9773
9774         * fix-header.c (read_scan_file): Defer switch processing.
9775
9776 2003-04-03  Matt Austern  <austern@apple.com>
9777
9778         * cpppch.c (reset_ht): Remove.
9779         (cpp_read_state): Remove loop to reset hashtable identifiers.
9780         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
9781         after pch file is written.
9782         * ggc.h (gt_pch_fixup_stringpool): Declare.
9783         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
9784         hashnode's value to another hashtable, then clear the original.
9785         (saved_ident_hash): Define.
9786         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
9787         store definitions in ident_hash, and clear ident_hash.
9788         (gt_pch_fixup_stringpool): Define.  Restore definitions from
9789         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
9790
9791 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
9792
9793         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
9794
9795 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9796
9797         PR optimization/10157
9798         * gcse.c (can_copy_p): Rename it to can_copy.
9799         (can_copy_init_p): Remove.
9800         (compute_can_copy): Use can_copy instead of can_copy_p.
9801         (can_copy_p): New exported function. Call compute_can_copy.
9802         (hash_scan_set): Use it.
9803         (gcse_main): Don't call compute_can_copy.
9804         (bypass_jumps): Don't call compute_can_copy.
9805         * rtl.h (can_copy_p): Declare.
9806         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
9807         copy if the mode doesn't support copy operations.
9808
9809 2003-04-03  Jason Merrill  <jason@redhat.com>
9810
9811         * Makefile.in (unstrap): Also remove stage_last.
9812
9813         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
9814         (dwarf2out_source_line): Don't do anything if line==0.
9815
9816         * stor-layout.c (do_type_align): New fn, split out from...
9817         (layout_decl): ...here.  Do all alignment calculations for
9818         FIELD_DECLs here.
9819         (update_alignment_for_field): Not here.
9820         (start_record_layout, debug_rli): Remove unpadded_align.
9821         * tree.h (struct record_layout_info_s): Remove unpadded_align.
9822         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
9823         or DECL_MODE on the CONST_DECLs.
9824         (finish_struct): Don't mess with DECL_ALIGN.
9825
9826 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
9827
9828         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
9829
9830 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
9831
9832         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
9833         function is an interrupt handler.
9834
9835         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
9836         restoring target registers with EH_RETURN_STACKADJ_RTX; use
9837         multiple registers in round-robin fashion.
9838
9839 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9840
9841         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
9842         * system.h (CHAR_BITFIELD): New.
9843
9844 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
9845
9846         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
9847         and LE.
9848         (another peephole2): Likewise.
9849
9850 2003-04-03  Nick Clifton  <nickc@redhat.com>
9851
9852         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
9853         (DEF_ARCH64_SPEC): Likewise.
9854
9855 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
9856
9857         * i386.c (constant_address_p): Use legitimate_constant_p.
9858         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
9859
9860 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
9861
9862         * config/h8300/h8300-protos.h: Add a prototype for
9863         gtle_operator.
9864         * config/h8300/h8300.c (gtle_operator): New.
9865         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
9866         gtle_operator.
9867         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
9868         and LE.
9869
9870 2003-04-02  Richard Henderson  <rth@redhat.com>
9871
9872         * libgcc-std.ver (_Unwind_GetCFA): New.
9873         * unwind-dw2.c (_Unwind_GetCFA): New.
9874         * unwind-libunwind.c (_Unwind_GetCFA): New.
9875         * unwind-sjlj.c (_Unwind_GetCFA): New.
9876         * unwind.h: Declare it.
9877
9878 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
9879
9880         PR inline-asm/8088
9881         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
9882         when MMX/SSE is not available.
9883
9884 2003-04-02  Mike Stump  <mrs@apple.com>
9885
9886         * doc/install.texi (Specific): Update pointers to apple.com.
9887
9888 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
9889
9890         * i386.c (override_options):  Disable red zone by default on i386.
9891         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
9892         Do not test TARGET_64BIT together with TARGET_RED_ZONE
9893
9894 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
9895
9896         * config/h8300/h8300.md (a peephole2): Tighten the condition.
9897
9898 2003-04-02  Richard Henderson  <rth@redhat.com>
9899
9900         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
9901
9902 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
9903
9904         * config/h8300/h8300.md (a peephole2): New.
9905
9906 2003-04-02  Richard Henderson  <rth@redhat.com>
9907
9908         * except.c (sjlj_find_directly_reachable_regions): Recognize when
9909         must-not-throw region has been deleted.
9910
9911 2003-04-02  Richard Henderson  <rth@redhat.com>
9912
9913         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
9914         optimization when flag_exceptions not enabled.
9915
9916 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9917
9918         * config/rs6000/rs6000.c
9919         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
9920         macros.
9921         (rs6000_issue_rate): Add case for 8540.
9922         (rs6000_use_sched_lookahead): New function.
9923
9924         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
9925         units into MU ones.
9926         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
9927         reservation before retirement.
9928         (ppc8540_multiply, ppc8540_load, ppc8540_store,
9929         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
9930         Remove additional cycle in the reservation before retirement.
9931         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
9932         reservation of ppc8540_issue.
9933
9934 2003-04-02  Andreas Schwab  <schwab@suse.de>
9935
9936         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
9937
9938 2003-04-01  Richard Henderson  <rth@redhat.com>
9939
9940         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
9941         notes for nothrow calls if flag_forced_unwind_exceptions.
9942         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
9943         (sjlj_find_directly_reachable_regions): Likewise.
9944         (reachable_handlers): Likewise.
9945         (can_throw_external): Likewise.
9946         (collect_one_action_chain): Record cleanups after catch-all and
9947         must-not-throw if flag_forced_unwind_exceptions.
9948         * flags.h (flag_forced_unwind_exceptions): Declare.
9949         * toplev.c (flag_forced_unwind_exceptions): New.
9950         (lang_independent_options): Add it.
9951         * doc/invoke.text: Add it.
9952
9953 2003-04-01  David Mosberger <davidm@hpl.hp.com>
9954
9955         * config/ia64/crti.asm: Clean up trailing whitespace.
9956         Remove trailing hashes (#) from identifiers.
9957
9958         * config/ia64/crtn.asm: Ditto.
9959
9960         * config/ia64/crtend.asm: Remove trailing hashes (#) from
9961         identifiers.
9962         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
9963         directives.  Drop explicit bundling---it just makes the code
9964         harder to read.  Don't save/restore gp needlessly.
9965
9966         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
9967         identifiers (they're only needed if the identifier would clash
9968         with a register name otherwise).
9969         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
9970         directives.  Drop explicit bundling---it just makes the code
9971         harder to read.
9972         (__do_jv_register_classes): Ditto.
9973         (.fini_array): Remove "progbits" (newer
9974         assemblers don't like wrong section-types).
9975         (.init_array): Ditto.
9976
9977 2003-04-01  Roger Sayle  <roger@eyesopen.com>
9978
9979         PR fortran/9974
9980         * gcse.c (reg_killed_on_edge): New function to test whether the
9981         given reg is overwritten by any instruction queued on an edge.
9982         (bypass_block): Ignore substitutions killed on incoming edges.
9983         Don't bypass outgoing edges that have queued instructions.
9984
9985 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
9986
9987         * real.h (EXP_BITS): Make room for...
9988         (struct real_value): ... added canonical bit.
9989         (struct real_format): Added pnan.
9990         (mips_single_format, mips_double_format, mips_extended_format,
9991         mips_quad_format): New.
9992         * real.c: Copy p to pnan in all formats.
9993         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
9994         (real_nan): Use pnan to compute significand's shift.
9995         (real_identical): Disregard significand in canonical
9996         NaNs.
9997         (real_hash): Likewise.  Take signalling into account.
9998         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
9999         Disregard significand bits in canonical NaNs.  Set all bits of
10000         canonical NaN if !qnan_msb_set.
10001         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
10002         qnan_msb_set to tell the base double format.
10003         (ibm_extended_format): Use 53 as pnan.
10004         (mips_single_format, mips_double_format, mips_extended_format,
10005         mips_quad_format): Copied from the corresponding ieee/ibm
10006         formats, with qnan_msb_set false.
10007         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
10008         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
10009         * config/mips/mips.c (override_options): Use mips_single_format
10010         and mips_double_format.  Default TFmode to mips_quad_format.
10011         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
10012         * config/mips/t-irix6: Likewise.
10013         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
10014         * config/fp-bit.c (pack_d, unpack_d): Obey it.
10015
10016 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
10017
10018         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
10019         (live_image_destructor): Reset image to initial state.
10020         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
10021
10022 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
10023
10024         * config/sparc/sparc.c (input_operand): Accept bare
10025         CONSTANT_P_RTX operands.
10026
10027 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10028
10029         * gcse.c (struct ls_expr): Added pattern_regs field.
10030         (ldst_entry): Initialize it.
10031         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
10032         (store_ops_ok): Use regs precomputed by them.
10033         (find_loads, store_killed_in_insn, load_kills_store): Change return
10034         type to bool.
10035         (store_killed_before, store_killed_after): Take position of register
10036         set in account.
10037         (reg_set_info): Store position of the setter.
10038         (gcse_main): Enable store motion.
10039         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
10040         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
10041         sharing.
10042         (simple_mem): Enable store motion of non-symbol mems.
10043         (regvec): Type changed.
10044         (LAST_AVAIL_CHECK_FAILURE): New.
10045         (compute_store_table_current_insn): New.
10046         (build_store_vectors): Computation of availability and anticipatability
10047         moved ...
10048         (compute_store_table, find_moveable_store): ... here.
10049         (delete_store): Remove senseless comment.
10050         (store_motion): Reorganize.
10051
10052 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
10053
10054         * config/mips/mips.c (override_options): Provide mappings for
10055         HI_REGNUM and LO_REGNUM.
10056         * config/mips/mips.h (MD_DBX_FIRST): Define.
10057
10058 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10059
10060         * combine.c (merge_outer_ops): Fix typo.
10061
10062         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
10063
10064 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
10065
10066         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
10067         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
10068         imul_compare.  Add lmul_compare.
10069         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
10070         in second pair of dispatch slots.  Model stores more accurately.
10071         Tweak multiply model.  Add bypasses for CR instructions dependent
10072         on complicated compares.
10073         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
10074         (muldi3): Add lmul_compare patterns.
10075         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
10076         and FPSTORE_UX to split instructions and add COMPARE,
10077         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
10078         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
10079         (rs6000_rtx_costs): Separate POWER4 multiply case.
10080
10081 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
10082
10083         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
10084         Do nothing if __builtin_return_address was not used.
10085
10086 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
10087
10088         * i386.md (test patterns):  Allow memory operand in operand1.
10089
10090 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
10091
10092         * testsuite/gcc.c-torture/execute/simd-3.c: New.
10093
10094         * expr.c (expand_expr): Handle VECTOR_CST.
10095         (const_vector_from_tree): New.
10096
10097         * varasm.c (output_constant): Handle VECTOR_CST.
10098
10099         * c-typeck.c (digest_init): Build a vector constant from a
10100         VECTOR_TYPE.
10101
10102         * config/rs6000/rs6000.c: Remove prototype for
10103         easy_vector_constant.
10104         (easy_vector_constant): Add mode parameter.  Rewrite to handle
10105         more easy constants.
10106         (rs6000_emit_move): Pass mode to easy_vector_constant.
10107         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
10108         (emit_easy_vector_insn): New.
10109         (easy_vector_same): New.
10110         (EASY_VECTOR_15): New macro.
10111         (EASY_VECTOR_15_ADD_SELF): New macro.
10112         (bdesc_2arg): Rename to xorv2si3.
10113         (easy_vector_constant_add_self): New.
10114         (input_operand): Allow vector constants.
10115
10116         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
10117         easy_vector_constant, easy_vector_constant_add_self.
10118         (EXTRA_CONSTRAINT): Add 'W'.
10119
10120         * config/rs6000/rs6000-protos.h: Add prototype for
10121         easy_vector_constant, emit_easy_vector_insn.
10122
10123         * config/rs6000/altivec.md (xorv8hi3): New.
10124         (xorv16qi3): New.
10125         Remove all _const0 patterns.
10126         (movv4si_internal): Rewrite to use code.  Add vector constant to
10127         vector alternative.  Add splitter.
10128         (movv8hi_internal): Same.
10129         (movv16qi_internal): Same.
10130         (movv4sf_internal): Same.
10131         Change the unspecs for vspltis* to use constants.
10132
10133         * config/rs6000/spe.md ("xorv4hi3"): New.
10134         ("spe_evxor"): Rename to xorv2si3.
10135         ("xorv1di3"): New.
10136         Remove all _const0 patterns.
10137         (movv2si_internal): Rewrite to use code.  Add vector constant to
10138         alternatives.  Add splitter.
10139         (movv4hi_internal): Add vector constant to alternatives.
10140         (movv1di_internal): Same.
10141         (movv2sf_internal): Same.
10142
10143 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
10144
10145         PR c/9936
10146         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
10147         variably-sized arrays in parameters.
10148         (set_save_expr_context): New function.
10149         (c_expand_body): Use it, via walk_tree.
10150
10151 2003-03-31  Eric Christopher  <echristo@redhat.com>
10152
10153         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
10154         (combinable_i3pat): Remove call to expand_field_assignment and
10155         #if 0'd code.
10156
10157 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
10158
10159         PR c++/10278
10160         * c-common.c (finish_label_address_expr): Handle the
10161         error_mark_node.
10162
10163 2003-03-31  Richard Henderson  <rth@redhat.com>
10164
10165         * real.c (real_identical): Reorg so as to not compare
10166         signalling for normals.
10167
10168 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
10169
10170         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
10171
10172 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
10173
10174         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
10175         notes as they are boggus.
10176         (m68hc11_gen_movqi): Likewise.
10177
10178 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
10179
10180         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
10181         save the soft registers after the frame pointer so that gdb can unwind
10182         the frame more easily.
10183         (expand_epilogue): Likewise in opposite order; allow to use X register
10184         as scratch if the return value is by reference.
10185
10186 2003-03-31  Jason Merrill  <jason@redhat.com>
10187
10188         PR java/10145
10189         * stor-layout.c (update_alignment_for_field): Respect
10190         DECL_USER_ALIGN for zero-length bitfields, too.
10191         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
10192         fields.
10193
10194 2003-03-31  Matt Austern  <austern@apple.com>
10195
10196         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
10197         (count_defs): Keep track of number of defs as well as total size.
10198         (write_defs): Put every definition in cpp_savedstate's defs array.
10199         (comp_hashnode): Define.  Comparison function for qsort.
10200         (cpp_write_pch_deps): Sort definitions before writing them.
10201         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
10202         (collect_ht_nodes): Define.
10203         (cpp_valid_state): When verifying that undefined identifiers in
10204         the pch file are still undefined, read a sorted list of undefined
10205         identifiers, collect all defined identifiers into a sorted list,
10206         and walk through both lists to make sure there's no match.
10207
10208 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
10209
10210         * config/h8300/h8300.md (a peephole2): New.
10211
10212 2003-03-31  Michael Matz  <matz@suse.de>
10213
10214         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
10215
10216 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
10217
10218         PR target/10177
10219         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
10220         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
10221         all call-clobbered registers as used.
10222
10223 2003-03-31  Michael Matz  <matz@suse.de>
10224
10225         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
10226         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
10227
10228 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
10229
10230         * gcov.c: Add -a & -u options.
10231         (struct arc_info): Add local_span, is_call_non_return,
10232         is_nonlocal_return, is_unconditional flags, remove is_call flag.
10233         (struct block_info): Add flags, is_call_site, is_nonlocal_return
10234         members. Make encodings a union with span member.
10235         (struct function_info): Add blocks_executed, line, src, line_next
10236         members.
10237         (struct coverage_info): Make branches a union with blocks member.
10238         (struct source_info): Add functions member.
10239         (object_summary, program_count): New global variables.
10240         (flag_all_blocks, flag_unconditional): New flags.
10241         (find_source, output_branch_count): New functions.
10242         (print_usage): Adjust.
10243         (options): Adjust.
10244         (process_args): Adjust.
10245         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
10246         <GCOV_TAG_BLOCKS>: Read flags.
10247         <GCOV_TAG_LINES>: Adjust.
10248         (read_count_file): Process SUMMARY tags.
10249         (solve_flow_graph): Set is_unconditional and clear is_call_site
10250         appropriately.
10251         (add_branch_counts): Adjust. Don't count unconditional branches.
10252         (add_line_counts): Deal with all-blocks mode, accumulate block
10253         coverage.
10254         (accumulate_line_counts): Adjust, generate local spanning tree for
10255         all-blocks mode.
10256         (output_lines): Adjust.
10257         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
10258         * doc/gcov.texi: Document.
10259
10260 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
10261
10262         * config/h8300/h8300.md: Organize peephole2's that transform
10263         (compare (reg:HI) (const_int)).
10264
10265 2003-03-31  Roger Sayle  <roger@eyesopen.com>
10266
10267         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
10268         (init_emit_once): Initialize dconstm2 and dconsthalf here.
10269         * real.h (dconstm2, dconsthalf): Add prototypes here.
10270         * real.c (real_sqrt): Use dconsthalf rather than local copy.
10271         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
10272         exp(x/2.0) remember to fold the division if possible.
10273         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
10274         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
10275         1.0/(x*x) and pow(x,0.5) as sqrt(x).
10276
10277 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
10278
10279         * config/h8300/h8300.md (a new peephole2): New.
10280
10281 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
10282
10283         * gcse.c (simple_mem): Return false for floating-point accesses
10284         if flag_float_store is true.
10285
10286 2003-03-30  Roger Sayle  <roger@eyesopen.com>
10287
10288         * gcse.c (gcse_constant_p): New function to identify constants
10289         suitable for constant propagation, including COMPARE with two
10290         integer constant arguments.
10291         (hash_scan_set): Use gcse_constant_p.
10292         (find_avail_set): Likewise.
10293         (cprop_insn): Likewise.
10294         (do_local_cprop): Likewise.
10295         (find_implicit_sets): Likewise.
10296         (find_bypass_set): Likewise.
10297
10298 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
10299
10300         * except.h: Remove definition of varray_type.
10301
10302 2003-03-30  Richard Henderson  <rth@redhat.com>
10303
10304         PR opt/10011, opt/10252:
10305         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
10306         before post-gcse cse pass.
10307
10308 2003-03-30  Roger Sayle  <roger@eyesopen.com>
10309
10310         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
10311
10312 2003-03-30  DJ Delorie  <dj@redhat.com>
10313
10314         * profile.c (instrument_edges): Make sure any newly created
10315         jump insns have correct jump label info.
10316
10317 2003-03-30  Richard Henderson  <rth@redhat.com>
10318
10319         * cfgbuild.c (make_edges): Use tablejump_p.
10320         * cfgcleanup.c (label_is_jump_target_p): Likewise.
10321         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
10322         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
10323         (try_redirect_by_replacing_jump): Likewise.
10324         (redirect_edge_and_branch): Likewise.
10325         * cse.c (fold_rtx): Likewise.
10326         * jump.c (delete_related_insns): Likewise.
10327         * rtlanal.c (get_jump_table_offset): Likewise.
10328         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
10329
10330 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10331
10332         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
10333         (STRICT2_WARN): Likewise.
10334
10335 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10336
10337         PR other/6955
10338         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
10339         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
10340
10341 2003-03-30  Richard Henderson  <rth@redhat.com>
10342
10343         PR c/10083
10344         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
10345         don't zero_extend const inputs.
10346
10347 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
10348
10349         * reload1.c (reload_cse_move2add): Fix a comment typo.
10350
10351 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
10352
10353         * config/h8300/h8300.md (a peephole2): Remove useless code.
10354
10355 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
10356
10357         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
10358         (*iorsi3_and_lshiftrt): Likewise.
10359         (*iorsi3_zero_extract): Likewise.
10360
10361 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
10362
10363         * config/h8300/h8300.md (*insv_si_8_8): New.
10364         (*insv_si_8_8_lshiftrt_8): Likewise.
10365         (a peephole2): Likewise.
10366
10367 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10368
10369         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
10370         Uniformly use bugfix instead of bug fix.
10371
10372 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10373
10374         PR doc/895
10375         * ONEWS: Remove those items that already appear in the EGCS
10376         release notes on our web pages.
10377
10378 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
10379
10380         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
10381         TARGET_HARD_FLOAT.  Reformat.
10382         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
10383
10384 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
10385
10386         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
10387         work on Solaris 2.5.1.
10388
10389 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
10390
10391         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
10392         section of h8300.md
10393         (*addsi3_and_nor_r_1): Likewise.
10394
10395 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
10396
10397         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
10398         set up before any trapping memory access if flag_non_call_exceptions.
10399
10400 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
10401
10402         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
10403
10404         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
10405
10406 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
10407
10408         * configure.in: Clarify comments.
10409         * configure: Regenerate.
10410
10411 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
10412
10413         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
10414         label even if pool empty when generating PIC.
10415         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
10416
10417 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
10418             Dhananjay Deshpande  <dhananjayd@kpit.com>
10419
10420         PR target/10205
10421         * config/h8300/h8300.c (h8300_initial_elimination_offset):
10422         Correct the offset computation when TARGET_NORMAL.
10423
10424 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
10425
10426         PR target/10067
10427         * config/sparc/sparc.md (jump pattern): Correct order
10428         when issuing the annuling marker.
10429
10430 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
10431
10432         PR c/8281
10433         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
10434         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
10435
10436 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
10437
10438         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
10439         globalize_label.
10440         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10441         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10442         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10443         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10444         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10445         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
10446         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
10447
10448 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
10449
10450         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
10451         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
10452         notes after hoisting.
10453         (load_mems): Adjust replace_loop_mems call.
10454
10455 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
10456             Richard Henderson  <rth@redhat.com>
10457
10458         PR target/10114 and PR target/10084
10459         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
10460
10461 2003-03-27  Richard Henderson  <rth@redhat.com>
10462
10463         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
10464
10465 2003-03-27  Roger Sayle  <roger@eyesopen.com>
10466
10467         * fold-const.c (fold_inf_compare):  New function to simplify FP
10468         comparisons against +Infinity or -Infinity.
10469         (fold):  Optimize floating point comparisons against Infs and NaNs.
10470
10471 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
10472
10473         * libgcov.c: Provide only dummy functions if libc is not available.
10474
10475 2003-03-27  Richard Henderson  <rth@redhat.com>
10476
10477         * real.h (struct real_value): Add signalling.
10478         (EXP_BITS): Decrement.
10479         * real.c (get_canonical_qnan): Don't set MSB-1.
10480         (get_canonical_snan): Likewise.  Set signalling.
10481         (real_identical): Compare signalling.
10482         (round_for_format): Remove force-one-bit on code.
10483         (real_nan): Likewise.  Set signalling.
10484         (encode_ieee_single): Add force-one-bit code; honor signalling.
10485         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
10486         (decode_ieee_single): Set signalling.
10487         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
10488
10489 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
10490
10491         PR ada/9953
10492         * ada/Makefile.in (gnatlib configuration for HPUX): Split
10493         the general section for HPUX into specific sections for
10494         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
10495         11 case.
10496
10497 2003-03-27  Glen Nakamura  <glen@imodulo.com>
10498
10499         PR opt/10087
10500         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
10501         while incrementing giv.
10502         (record_biv): Check for duplicate biv locations and
10503         set (struct induction *) v->same if found.
10504
10505 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
10506
10507         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
10508         v0.9 API change: replace read of UNW_REG_HANDLER with
10509         unw_get_proc_info().
10510         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
10511         with unw_get_proc_info().
10512         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
10513         unw_get_proc_info().
10514
10515 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
10516
10517         * config/rs6000/8540.md: Use presence_set instead of absence_set.
10518
10519 2003-03-26  Richard Henderson  <rth@redhat.com>
10520
10521         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
10522
10523 2003-03-26  Roger Sayle  <roger@eyesopen.com>
10524
10525         PR bootstrap/10051, PR bootstrap/10169.
10526         * mips-tfile.c (init_file): Don't provide a static initializer.
10527         (initialize_init_file): Initialize the contents of init_file.
10528         (add_file): Call initialize_init_file if not already initialized.
10529
10530 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
10531
10532         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
10533         registers used for global asm variables.
10534         (s390_frame_info, s390_arg_frame_offset): Likewise.
10535         (s390_emit_prologue, s390_emit_epilogue): Likewise.
10536
10537 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10538
10539         * config/rs6000/8540.md: New file.
10540
10541         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
10542         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
10543         reservations for imul.
10544
10545         * config/rs6000/rs6000.md: Include 8540.md.  Change
10546         delayed_compare onto mult_compare for insns generating
10547         multiplication.
10548         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
10549         New type attribute values.
10550
10551         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
10552         fpsimple instead of fp.
10553         (*divsf3_gpr): Use type vecfdiv instead of fp.
10554         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
10555         instead of vecfloat.
10556         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
10557         (spe_brinc): Use type brinc instead of veccomplex.
10558         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
10559         veccomplex.
10560         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
10561         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
10562         *movv2sf_internal): Define type attribute values for all
10563         alternatives.
10564         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
10565         of fpcompare.
10566         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
10567         instead of fpcompare.
10568
10569 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
10570
10571         * config/rs6000/power4.md: Allow delay between dispatch and
10572         function units for simple instructions.  Correct store units.
10573         Allow branch to occupy as many dispatch slots as necessary.
10574
10575 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
10576
10577         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
10578         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
10579         zero extend old to it.
10580         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
10581         operand.
10582
10583 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
10584
10585         PR target/7784
10586         * reload.c (find_reloads_address): Handle
10587         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
10588         all base registers.
10589
10590 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
10591
10592         PR other/10203
10593         * version.c: Reference the GCC web site in the URL.
10594
10595 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
10596
10597         * c-incpath.c (add_standard_paths): Add both "translated" and
10598         non-translated header paths.
10599
10600 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
10601
10602         * doc/install.texi (*-*-freebsd*): Update with known status.
10603
10604 2003-03-21  Jason Merrill  <jason@redhat.com>
10605
10606         PR optimization/10171
10607         * unroll.c (unroll_loop): Don't delete the jump at the end unless
10608         we also delete a jump at the beginning.
10609
10610 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
10611
10612         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
10613         contributor.
10614
10615 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
10616
10617         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
10618         constants are not expensive.
10619
10620 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
10621
10622         PR opt/10056
10623         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
10624         jump jumping to the next instruction.
10625         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
10626
10627 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10628
10629         * doc/passes.texi (Passes): Properly document that we do not
10630         perform jump2 any longer; remove command-line option -dJ.
10631
10632 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10633
10634         PR optimization/8746
10635         * config/i386/i386.md (and promoting splitters): Disable HImode to
10636         SImode promoting when the sign bit matters and is not preserved, or
10637         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
10638         for size.
10639
10640 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10641
10642         * config/h8300/h8300.md (a peephole2): Extend to support loads
10643         in QImode and HImode.
10644
10645 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
10646
10647         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
10648         _return_far
10649         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
10650         (MULTILIB_EXCEPTIONS): Likewise.
10651         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
10652         by calling some board support routine.
10653         ("call_value"): Likewise.
10654         ("*return_void"): Likewise for return.
10655         ("*return_16bit"): Likewise.
10656         ("*return_32bit"): Likewise.
10657         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
10658         for 68HC11 too.
10659         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
10660         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
10661         -mlong-calls for 68HC11.
10662         * config/m68hc11/larith.asm (declare_near): New macro.
10663         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
10664         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
10665         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
10666         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
10667         (__mulhi32): Likewise.
10668         (ret): Update macro for 68HC11.
10669         (__far_trampoline): Implement for 68HC11.
10670         (__call_a16, __call_a32, __return_void, __return_16): New support
10671         routines for 68HC11 memory bank switching calling support.
10672         (__return_32): Likewise.
10673
10674 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
10675
10676         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
10677
10678 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
10679
10680         * doc/install.texi (Testing): Mention test result links from build
10681         status pages.
10682
10683 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
10684
10685         * function.c (put_var_into_stack): Change bool parameter to int.
10686         (gen_mem_addressof): Likewise.
10687         * rtl.h (gen_mem_addressof): Likewise.
10688         * tree.h (put_var_into_stack): Likewise.
10689         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
10690         gen_mem_addressof or put_var_into_stack.
10691         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
10692         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
10693
10694 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10695
10696         * config/h8300/h8300.md (a peephole2): New.
10697
10698 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
10699
10700         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
10701
10702 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10703
10704         * doc/contrib.texi (Contributors): Update Janis Johnson.
10705
10706 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10707
10708         PR target/10072
10709         * combine.c (simplify_if_then_else): Check that the mode
10710         has MODE_INT class before applying the (OP Z (mult COND C2))
10711         transformation.
10712
10713 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10714
10715         PR optimization/9414
10716         * config/sparc/sparc.md (widening peepholes): Use
10717         widen_memory_access instead of change_address.
10718
10719 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
10720
10721         PR c++/7086
10722         * c-typeck.c (c_mark_addressable): Adjust calls to
10723         put_var_into_stack.
10724         * expr.c (expand_expr): Likewise.
10725         * function.c (put_var_into_stack): Add rescan parameter.  Do not
10726         call fixup_var_refs when rescan is false.
10727         (gen_mem_addressof): Likewise.
10728         (assign_parms): Adjust calls to put_var_into_stack.
10729         (setjmp_protect): Likewise.
10730         (setjmp_protect_args): Likewise.
10731         * rtl.h (gen_mem_addressof): Change prototype.
10732         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
10733         * tree.h (put_var_into_stack): Change prototype.
10734
10735 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
10736
10737         PR middle-end/9967
10738         * builtins.c (expand_builtin_fputs): When optimizing for size,
10739         don't transform fputs into fwrite.
10740
10741 2003-03-23  Glen Nakamura <glen@imodulo.com>
10742
10743         PR c/8224
10744         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
10745         when signedness changes for division or modulus.
10746
10747 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
10748
10749         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
10750         globalize_label.
10751
10752 2003-03-23  Roger Sayle  <roger@eyesopen.com>
10753
10754         PR c/10178
10755         * stmt.c (expand_end_case_type): Check for overflow in range when
10756         determining whether to use a bit-test implementation.
10757
10758 2003-03-23  Richard Henderson  <rth@redhat.com>
10759
10760         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
10761         before flow2.
10762         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
10763
10764 2003-03-23  Richard Henderson  <rth@redhat.com>
10765
10766         PR opt/10116
10767         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
10768         from then_bb or else_bb after flow2.
10769
10770 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
10771
10772         * configure.in: Check whether it is necessary to link against
10773         libm to use ldexp.
10774         * configure: Regenerate.
10775         * Makefile.in: Add LDEXP_LIB substitution variable.
10776
10777 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10778
10779         * config/h8300/h8300.md: Fix comment typos.
10780
10781 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10782
10783         * pa.c (output_cbranch): Fix typo in comment.
10784
10785 2003-03-22  Richard Henderson <rth@redhat.com>
10786
10787         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
10788         after reload.
10789
10790 2003-03-22  DJ Delorie  <dj at redhat dot com>,
10791         Bruce Korb  <bkorb at gnu dot org>
10792
10793         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
10794         buggy Solaris 2.6 mutex/cond initializers.
10795         (solaris_mutex_init): Rename to solaris_mutex_init_2.
10796         * fixinc/fixincl.x: Regenerate.
10797         * fixinc/tests/base/pthread.h: Update.
10798         * fixinc/fixincl.c(initialize): be explicit about the default case
10799         and indicate verbose level when being very, very verbose.
10800         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
10801
10802 2003-03-22  Andreas Jaeger  <aj@suse.de>
10803
10804         * config/i386/i386.c (ix86_init_machine_status): Return value.
10805
10806 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10807
10808         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
10809         conditional branch to the following instruction.  Use next_real_insn
10810         instead of next_active_insn.
10811         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
10812         instead of next_active_insn.
10813
10814 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
10815
10816         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
10817         instead of 'm' constraint in forced-split alternatives.
10818         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
10819         VALIDATE_ADDRESS parameter to operand_subword.
10820
10821 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
10822
10823         * config/h8300/h8300.c (notice_update_cc): Correctly handle
10824         the case where the set destination is STRICT_LOW_PART.
10825
10826 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
10827
10828         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
10829         c30 instead of a c40 processor.
10830
10831 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
10832
10833         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
10834
10835 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
10836
10837         * c-common.c: Include intl.h.
10838         (shadow_warning): Rewrite to allow better diagnostic translations.
10839         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
10840         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
10841         use it throughout.
10842         * Makefile.in (c-common.o): Add intl.h.
10843
10844 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
10845
10846         * config.gcc: Remove 'float_format'.
10847
10848         * fixproto: Define NULL and size_t in generated stdlib.h and
10849         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
10850         Rearrange file generation loop for readability.  Generate time.h,
10851         string.h if missing.
10852         * tsystem.h: Include <string.h>, <time.h> unconditionally.
10853         * config.gcc: Blow away POSIX defines.
10854
10855 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
10856
10857         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
10858
10859 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
10860
10861         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
10862         writing .interrupt command.
10863         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
10864         if it's a far or near function.
10865         ("call_value"): Likewise.
10866         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
10867         near attributes.
10868         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
10869         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
10870         (m68hc11_initial_elimination_offset): Set current_function_far
10871         according to attributes.
10872         (expand_prologue): Likewise.
10873         (trap_handler_symbol): New global to keep track of trap handlers.
10874         (m68hc11_encode_section_info): Mark symbol as far if needed; set
10875         trap symbol.
10876         (m68hc11_is_far_symbol): New function.
10877         (m68hc11_is_trap_symbol): New function.
10878         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
10879         (m68hc11_is_trap_symbol): Declare.
10880
10881 2003-03-21  Jan Hubicka  <jh@suse.cz>
10882
10883         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
10884         only when amount of saved regs changed.
10885         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
10886         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
10887
10888 2003-03-21  Jan Hubicka  <jh@suse.cz>
10889
10890         PR inline-asm/7916
10891         * function.c (instantiate_virtual_regs_lossage): New function.
10892         (instantiate_virtual_regs_1): Use it.
10893         (instantiate_virtual_regs): Do not continue in substition when insn has
10894         been deleted.
10895
10896 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10897
10898         * combine.c (make_field_assignment): Fix a warning.
10899
10900 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10901
10902         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
10903
10904 2003-03-21  Dale Johannesen  <dalej@apple.com>
10905
10906         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
10907         priority for R2 on Darwin.
10908         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
10909
10910 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10911
10912         * combine.c (make_field_assignment): Remove unnecessary AND
10913         when storing into zero_extract.
10914
10915 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
10916
10917         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
10918         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
10919         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
10920         in comment.
10921
10922 2003-03-21  DJ Delorie  <dj@redhat.com>
10923
10924         * optabs.c (init_integral_libfuncs): Make sure we init at least up
10925         to "long long" size words.
10926
10927 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10928
10929         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
10930         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
10931         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
10932
10933 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10934
10935         PR doc-bug/9813
10936         * doc/extend.texi: Move misplaced paragraph about underscores in
10937         variables in macros.
10938
10939 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
10940             Richard Henderson  <rth@redhat.com>
10941
10942         PR optimization/8366
10943         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
10944         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
10945         PIC+SYMBOLIC_CONST in other modes than Pmode.
10946         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
10947         the form PIC+SYMBOLIC_CONST as mode dependent.
10948
10949 2003-03-21  DJ Delorie  <dj@redhat.com>
10950
10951         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
10952         sure we always emit at least one insn.
10953
10954 2003-03-21  Christopher Faylor  <cgf@redhat.com>
10955
10956         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
10957         stub t-cygming. Use common target header cygming.h. Add extra
10958         c_target_obj and cxx_target_obj file. Default cygwin to posix
10959         threading. Enforce i386 as float format.
10960         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
10961         Remove cygwin.h as target header. Use common target header
10962         cygming.h  Enforce i386 as float format. Correct typo.
10963         * config/i386/cygming.h: New file, containing definitions
10964         common to mingw32 and cygwin.
10965         * config/i386/cygwin.h: Remove definitions common to cygwin and
10966         mingw.  Simplify special spec logic.  Define "wrappers" around
10967         certain include path defines to accommodate -mno-cygwin.
10968         Remove some #if 0'ed code.
10969         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
10970         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
10971         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
10972         * config/i386/mingw32.h: Remove definitions common to cygwin and
10973         mingw.
10974         (EXTRA_OS_CPP_BUILTINS): Adjust.
10975         (TARGET_VERSION): Define.
10976         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
10977         mingw32.h definitions.
10978         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
10979         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
10980         Add compilation rules for cygwin1.o cygwin2.o.
10981         * config/i386/cygwin1.c: New file.
10982         * config/i386/cygwin2.c: New file.
10983         * config/i386/t-cygming: New makefile stub.
10984
10985 2003-03-20  Richard Henderson  <rth@redhat.com>
10986
10987         * fold-const.c (extract_muldiv_1): Revert changing order of
10988         operands in case MULT_EXPR of 2003-02-16 patch.
10989
10990 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
10991         Merge changes from new-regalloc-branch
10992
10993         From Michael Matz  <matz@suse.de>
10994         * df.c (df_ref_record_1): Move init of loc to safe point.
10995         Only recurse on interesting things in parallels.
10996         Handle CLASS_CANNOT_CHANGE_MODE smarter.
10997         (df_uses_record): Ditto.
10998
10999         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
11000         it's already okay to use memory operands in (IE doesn't require
11001         adding another insn or anything).
11002
11003 2003-03-20  Richard Henderson  <rth@redhat.com>
11004
11005         PR middle-end/6348
11006         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
11007         different from word_mode.
11008
11009 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
11010
11011         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
11012         source operand to those that can be extracted with bld.
11013
11014 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
11015
11016         PR 10066
11017         * arm.md (UNSPEC_PIC_BASE): New constant.
11018         (pic_add_dot_plus_four): Wrap with unspec.
11019         (pic_add_dot_plus_eight): Likewise.
11020
11021 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
11022
11023         * config/h8300/h8300.md (*insv_si_1_n): New.
11024         (*insv_si_1_n_lshiftrt): Likewise.
11025
11026 2003-03-20  Roger Sayle  <roger@eyesopen.com>
11027
11028         * fold-const.c (fold_mathfn_compare): New function to simplify
11029         comparisons against built-in math functions.  Fold comparisons
11030         of sqrt against constants.
11031         (fold): Call fold_mathfn_compare when appropriate.
11032
11033 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
11034
11035         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
11036         information.
11037
11038 2003-03-20  Per Bothner  <pbothner@apple.com>
11039
11040         Various cleanups to help compile server.
11041
11042         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
11043         and pass that to _cpp_init_hashtable.
11044         (cpp_read_main_file):  Drop hash_table* argument; don't call
11045         _cpp_init_hashtable.
11046         * cpplib.h:  Update declarations to match.
11047         * c-opts.c (c_common_init_options):  Pass ident_hash to
11048         cpp_create_reader.
11049         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
11050         * fix-header.c (read_scan_file):  Likewise pass NULL table to
11051         cpp_create_reader rather than cpp_read_main_file.
11052
11053         * cppfiles.c (cpp_rename_file):  Generalized and renamed
11054         to cpp_change_file.
11055         * cpplib.h:  Update declaration to match.
11056         * c-opts.c (push_command_line_line, finish_options):  Change
11057         cpp_rename_file calls to cpp_change_file.
11058
11059         * line-map.c (add_line_map):  Allow leaving the outermost file.
11060         Allowing entering an outermost-file after the initial time.
11061
11062         * toplev.c (pop_srcloc):  Allow popping from initial file.
11063
11064 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
11065
11066         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
11067
11068 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
11069
11070         * config/h8300/h8300.md (a peephole2): New.
11071
11072 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
11073
11074         * config/h8300/h8300.md (*addsi3_and_r_1): New.
11075         (*addsi3_and_not_r_1): Likewise.
11076
11077 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
11078
11079         * Makefile.in (STRICT2_WARN): Add @WERROR@.
11080         (GCC_WARN_CFLAGS): Remove $(WERROR).
11081         (fixinc.sh-warn): New.
11082         * ada/Make-lang.in (ada-warn): Add $(WERROR).
11083         * cp/Make-lang.in (cp-warn): Add $(WERROR).
11084         * f/Make-lang.in (f-warn): Add $(WERROR).
11085         * java/Make-lang.in (java-warn): Add $(WERROR).
11086         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
11087
11088 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
11089
11090         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
11091         langhooks-def.h (lhd_tree_dump_dump_tree),
11092         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
11093         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
11094         true and false in return statements.
11095
11096 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
11097
11098         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
11099         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
11100         DWARF_INITIAL_LENGTH_SIZE.
11101         (output_compilation_unit_header, output_pubnames, output_aranges)
11102         (output_line_info): Output 0xffffffff escape value for 64-bit
11103         DWARF extension.
11104         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
11105
11106 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
11107
11108         * config/s390/s390.c (s390_preferred_reload_class): Do not
11109         force constants to the pool unless necessary.
11110         (s390_decompose_address): Prefer to use pointer as base,
11111         not index register.
11112         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
11113         Q alternative.
11114         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
11115         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
11116         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
11117         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
11118         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
11119
11120 2003-03-19  Jan Hubicka  <jh@suse.cz>
11121
11122         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
11123         * i386.c (use_fast_prologue_epilogue): Remove.
11124         (ix86_frame): New field save_regs-using_mov;
11125         (ix86_compute_frame_layout):  Decide on fast prologues;
11126         allocate saved registers in red zone.
11127         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
11128
11129 2003-03-19  Nick Clifton  <nickc@redhat.com>
11130
11131         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
11132
11133 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11134
11135         PR 10062
11136         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
11137         * pa-protos.h (output_lbranch): New prototype.
11138         * pa.c (compute_frame_size): Change size of the frame marker on the
11139         64-bit ports to 48 bytes.
11140         (pa_output_function_prologue): Document why SAVE_SP is set.
11141         (hppa_expand_prologue): Save previous stack pointer into frame marker
11142         on targets which use the hpux unwind library.
11143         (output_cbranch): Use output_lbranch.
11144         (output_lbranch): New function to output long unconditional branches.
11145         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
11146         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
11147         64-bit ports.
11148         * pa.md (jump): Use output_lbranch.
11149         (allocate_stack): New expander for dynamic stack allocation.
11150
11151 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
11152
11153         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
11154         when debugging on XCOFF targets.  Delete "abi" temp.
11155
11156         PR target/10073
11157         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
11158
11159 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
11160
11161         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
11162         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
11163         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11164
11165         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
11166         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
11167         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11168
11169 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
11170
11171         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
11172         the result of machopic_function_base_name.
11173         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
11174         string rather than a static array.
11175
11176         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
11177
11178         * gengtype.c: Include rtl.h.
11179         (enum rtx_code): Don't define.
11180         (rtx_format): Make declaration match rtl.h.
11181         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
11182         users.
11183         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
11184         * Makefile.in (gengtype.o): Update dependencies.
11185
11186 2003-03-18  Andreas Schwab  <schwab@suse.de>
11187
11188         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
11189         martin@blom.org.
11190
11191 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
11192
11193         * function.c (next_block_index): Mark with GTY.
11194
11195         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
11196
11197 2003-03-18  Richard Henderson  <rth@redhat.com>
11198
11199         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
11200         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
11201         until after reload.
11202
11203 2003-03-18  Richard Henderson  <rth@redhat.com>
11204
11205         * builtins.c (expand_builtin_unop): New target_mode operand;
11206         use it to convert the result to the correct mode.
11207         (expand_builtin): Update all callers.
11208
11209 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
11210
11211         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
11212
11213 2003-03-18  Jan Hubicka  <jh@suse.cz>
11214
11215         * i386.md:  Fix previous commit that mistakely applied the patch
11216         twice.
11217
11218         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
11219         canonicalized.
11220         (memrefs_conflict_p): Likewise.
11221         (addr_side_effect_eval): Canonicalize the constructed address.
11222
11223 2003-03-18  Jan Hubicka  <jh@suse.cz>
11224
11225         * i386.md (cvtts?2si peep2): New.
11226
11227 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
11228
11229         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
11230
11231 2003-03-18  Andreas Schwab  <schwab@suse.de>
11232
11233         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
11234         for format.
11235
11236 2003-03-17  Jason Merrill  <jason@redhat.com>
11237
11238         PR c++/10091
11239         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
11240         an unaligned member of TREE_ADDRESSABLE type.
11241
11242 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
11243
11244         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
11245         (TARGET_PROFILE_KERNEL): Define.
11246         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
11247         (PROFILE_BEFORE_PROLOGUE): Don't define.
11248         (PROFILE_KERNEL): Remove hacks.
11249         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
11250         (rs6000_stack_info): No need to save lr if just for profiling when
11251         TARGET_PROFILE_KERNEL.
11252         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
11253         (output_function_profiler): Localize label generation.  Emit code
11254         for kernel profiling.
11255
11256 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
11257
11258         * config/h8300/h8300-protos.h: Add a prototype for
11259         byte_accesses_mergeable_p.
11260         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
11261         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
11262         (a splitter): Likewise.
11263         (*iorsi3_ashift_16_ashift_24): Likewise.
11264         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
11265
11266 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11267
11268         * dwarf2asm.h: Delete obsolete comment.
11269         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
11270         dw2_asm_output_pcrel, dw2_asm_output_addr,
11271         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
11272         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
11273         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
11274         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
11275
11276 2003-03-17  Zack Weinberg <zack@codesourcery.com>
11277
11278         * c-tree.h (struct lang_identifier): Remove error_locus field.
11279         (IDENTIFIER_ERROR_LOCUS): Kill.
11280         (record_function_scope_shadow): New prototype.
11281         * c-typeck.c (build_external_ref): Don't complain if
11282         decl is error_mark_node.  When not at file scope, bind the
11283         decl's local value to error_mark_node to suppress further
11284         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
11285
11286         * c-decl.c (get_function_binding_level): New static function.
11287         (record_function_scope_shadow): New exported function.
11288         (c_make_fname_decl): Use get_function_binding_level.
11289
11290 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
11291
11292         * stmt.c (tail_recursion_args): Call promote_mode to set
11293         unsignedp flag correctly before calling convert_move.
11294
11295 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11296
11297         * loop-unroll.c (decide_peel_completely,
11298         decide_unroll_constant_iterations, decide_unroll_stupid,
11299         decide_unroll_runtime_iterations, decide_peel_simple): Set
11300         loop->has_desc.
11301
11302 2003-03-17  Jan Hubicka  <jh@suse.cz>
11303
11304         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
11305
11306 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
11307
11308         * function.c (assign_parms): For a struct value address passed as
11309         first argument, delay the function's result RTL setup code until
11310         after the emission of parameter conversions.
11311
11312 2003-03-17  Dave Love  <fx@gnu.org>
11313             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11314
11315         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
11316         __arch64__ to match Compaq cc.
11317
11318 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
11319
11320         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
11321         (c_common_init): Set EBCDIC in cpp options.
11322         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
11323         not conditional compilation.
11324         * cpplib.h (struct cpp_options): New entry EBCDIC.
11325
11326 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
11327
11328         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
11329
11330 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11331
11332         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
11333         argument to 0 for redirect_jump.
11334
11335 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
11336
11337         PR c++/8805
11338         * except.c (eh_region_u_cleanup): Add prev_try.
11339         (expand_eh_region_end_cleanup): Set it.
11340         (reachable_handlers): Use it to skip over cleanup blocks.
11341
11342 2003-03-17  Andreas Jaeger  <aj@suse.de>
11343
11344         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
11345
11346 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
11347
11348         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
11349         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
11350         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
11351         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
11352
11353 2003-03-16  Richard Henderson  <rth@redhat.com>
11354
11355         * simplify-rtx (simplify_binary_operation): Don't abort for
11356         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
11357
11358 2003-03-16  Richard Henderson  <rth@redhat.com>
11359
11360         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
11361         optimize_size as well.
11362
11363 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
11364
11365         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
11366         for D register to specify the low part of it, aka B.
11367         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
11368         the register if we are loading 1 or -1 to it; avoid using temp
11369         register when moving X/Y to Y/X.
11370         (m68hc11_gen_movqi): Likewise.
11371         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
11372
11373 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
11374
11375         PR optimization/9016
11376         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
11377         into the constant pool.
11378
11379 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
11380
11381         PR target/9164
11382         * tree.c (get_narrower): For extensions with unchanged bit number,
11383         return the unsignedness of the outer mode.
11384
11385 2003-03-16  Roger Sayle  <roger@eyesopen.com>
11386
11387         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
11388         to avoid "may be used uninitialized" warning on ia64-hpux.
11389         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
11390
11391 2003-03-16  Andreas Jaeger  <aj@suse.de>
11392
11393         * configure.in: Improve check for memcheck.h.
11394         * configure: Regenerated.
11395
11396 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
11397
11398         * doc/cppopts.texi: Remove documentation of -A-.
11399
11400 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
11401
11402         * doc/libgcc.texi: Remove @tie.
11403
11404 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
11405
11406         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
11407         (rtx_pair): Added new element update_label_nuses, renamed to
11408         replace_label_data.
11409         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
11410         replace_label_data instead of rtx_pair.
11411         * loop.c (load_mems): Likewise.
11412         * rtlanal.c (replace_label): Replace label in pool constants and in
11413         INSN_LIST (in REG_LABEL note).
11414         (subrtx_p): Renamed to rtx_referenced_p.
11415         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
11416         LABEL_REF with CODE_LABEL, traverse constants from pool.
11417
11418 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
11419             Zack Weinberg  <zack@codesourcery.com>
11420
11421         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
11422         * doc/libgcc.texi: New file.
11423         * doc/interface.texi: Delete paragraph about libgcc interface.
11424         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
11425
11426 2003-03-15  Jason Merrill  <jason@redhat.com>
11427
11428         PR debug/9039
11429         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
11430
11431         PR debug/6387
11432         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
11433         function DIEs at toplevel.
11434         (decls_for_scope): At -g1, don't descend into subblocks.
11435
11436 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
11437
11438         * varasm.c (struct rtx_const): Change type of un.addr member
11439         to struct holding an additional 'symbol' member.
11440         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
11441         with equal string addresses as equal.
11442         (simplify_subtraction): Adapt to struct rtx_const change.
11443
11444 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
11445
11446         * fix-header.c (read_scan_file): Read main file before handling -D.
11447
11448 2003-03-15  Roger Sayle  <roger@eyesopen.com>
11449
11450         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
11451         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
11452         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
11453         (find_sub_basic_blocks): Likewise.
11454         * cgraphunit.c (cgraph_expand_functions): Likewise.
11455         * dwarf2out.c (prune_unused_types): Likewise.
11456         * expr.c (store_field): Likewise.
11457         * genextract.c (print_path): Likewise.
11458         * haifa-sched.c (schedule_insn): Likewise.
11459         * lcm.c (compute_antinout_edge): Likewise.
11460         * loop-unroll.c (decide_peel_once_rolling): Likewise.
11461         * ra-colorize.c (ra_colorize_free_all): Likewise.
11462         * ra-debug.c (dump_igraph): Likewise.
11463         (debug_hard_reg_set): Likewise.
11464         * reg-stack.c (reg_to_stack): Likewise.
11465         * rtlanal.c (refers_to_regno_p): Likewise.
11466         * tracer.c (layout_superblocks): Likewise.
11467
11468 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
11469
11470         * fix-header.c (read_scan_file): Fix thinko.
11471
11472 2003-03-15  Glen Nakamura  <glen@imodulo.com>
11473
11474         * reload1.c (choose_reload_regs): Use && instead of ||
11475         with REG_CANNOT_CHANGE_MODE_P condition.
11476
11477 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
11478
11479         * Makefile.in: Update.
11480         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
11481         * c-lex.c (init_c_lex): Register builtins hook is dead.
11482         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
11483         (c_common_decode_option): Don't call cpp_handle_option.
11484         Handle -A, -D and -U.
11485         (handle_deferred_opts): Simplify.
11486         (finish_options): Define builtins and command line macros.
11487         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
11488         * cppinit.c: Don't include intl.h.
11489         (init_builtins): Rename cpp_init_builtins.  No hook to call.
11490         (init_library): Don't need to sort options.
11491         (cpp_create_reader): Don't set pending.
11492         (cpp_destroy): Don't free pending.
11493         (struct pending_option, cl_directive_handler, struct cpp_pending,
11494         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
11495         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
11496         cl_options, cpp_handle_option): Remove.
11497         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
11498         cpp_finish_options): Remove.
11499         (cpp_init_builtins): New.
11500         * fix-header.c (read_scan_file): Update to handle -D.  Fix
11501         handling of -I.  Replace call to cpp_finish_options.
11502
11503 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11504
11505         PR optimization/9387
11506         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
11507         for conditional returns.
11508
11509 2003-03-14  Jason Merrill  <jason@redhat.com>
11510
11511         PR optimization/6871
11512         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
11513
11514 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
11515
11516         * c-opts.c (finish_options): New.
11517         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
11518         (missing_arg): Handle OPT_include and OPT_imacros.
11519         (c_common_init, c_common_parse_file): Use finish_options.
11520         (handle_deferred_opts): Update.
11521         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
11522         (cpp_finish_options): Don't handle -imacros here.
11523         (no_fil): Remove.
11524         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
11525
11526 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
11527
11528         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
11529         rs6000_maybe_dead if !fromprolog.
11530
11531 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
11532
11533         * Makefile.in: Update.
11534         * c-common.h (fe_file_change, pp_file_change): New.
11535         * c-lex.c (init_c_lex): Don't set cb_file_change.
11536         (c_common_parse_file): Move to c-opts.c.
11537         (cb_file_change): Rename fe_file_change.
11538         * c-opts.c: Include debug.h.
11539         (warn_unused_macros, include_cursor): New.
11540         (push_command_line_include, cb_file_change): New.
11541         (COMMAND_LINE_OPTIONS): Handle -include.
11542         (c_common_decode_option): Use local warn_unused_macros.
11543         Handle OPT_include.
11544         (c_common_post_options): Set file change callback.
11545         (handle_deferred_opts): Skip -include.  Don't free the array.
11546         (c_common_init): Call cpp_finish_options here, and push an
11547         initial -include file.
11548         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
11549         (preprocess_file): Don't call cpp_finish_options.
11550         (init_pp_output): Don't set the file change callback.
11551         (pp_file_change): Return if no line commands or no output.
11552         * cpphash.h (next_include_file, first_unused_line): Remove.
11553         * cppinit.c (include_head, include_tail): Remove.
11554         (cpp_destroy): Don't free -include chain.
11555         (cpp_finish_options): Don't handle -include, or worry about
11556         -Wunused-macros.
11557         (_cpp_maybe_push_include_file): Remove.
11558         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
11559         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
11560         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
11561         Used flag is set based upon the state of the warn_unused_macros
11562         flag, and so use of first_unused_line is unnecessary.
11563
11564 2003-03-13  Jan Hubicka  <jh@suse.cz>
11565
11566         * cselib.c (clear_table): Do not take argument; always clear just
11567         used slots.
11568         (cselib_process_insn):  Update call of clear_table
11569         (cselib_init): Do not call clear_table.
11570         (cselib_finish): Clear table.
11571
11572         * cse.c (count_reg_usage): Do not check side_effects_p.
11573         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
11574         like noop.
11575         (find_reg_equal_equiv_note): Do not use find_reg_note.
11576
11577 2003-03-14  Richard Henderson  <rth@redhat.com>
11578
11579         PR target/9700
11580         * config/alpha/alpha.c (alpha_va_start): Account for
11581         current_function_pretend_args_size in the AP offset.
11582
11583         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
11584         (INITIAL_ELIMINATION_OFFSET): Move out of line.
11585         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
11586         (alpha_initial_elimination_offset) New.
11587         * config/alpha/alpha-protos.h: Update.
11588
11589 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
11590
11591         * stmt.c (expand_start_case): Call emit_queue ().
11592
11593 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
11594             Alexandre Oliva  <aoliva@redhat.com>
11595
11596         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
11597         words in new abis.
11598
11599 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
11600
11601         PR optimization/8396
11602         * tree-inline.c (initialize_inlined_parameters): Make sure the value
11603         of read-only constant arguments is passed with the right type.
11604
11605 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
11606
11607         * doc/extend.texi (Function Names): Make the example compilable.
11608
11609 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
11610
11611         * config/rs6000/rs6000.c (processor_target_table): Really allow
11612         GP optional instructions on Power4.
11613
11614 2003-03-13  Roger Sayle  <roger@eyesopen.com>
11615
11616         * calls.c (flags_from_decl_or_type): Factor and remove redundant
11617         conditional tests.
11618
11619 2003-03-13  Mike Stump  <mrs@apple.com>
11620
11621         * ggc-page.c (struct page_entry): Remove varray.h header.
11622         Add index_by_depth field.
11623         Remove save_in_use_p field.
11624         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
11625         by_depth_max, by_depth, and save_in_use fields.
11626         (INITIAL_PTE_COUNT): Add.
11627         (save_in_use_p_i): Add.
11628         (save_in_use_p): Add.
11629         (adjust_depth): Add.
11630         (move_ptes_to_front): Add.
11631         (push_depth): Add.
11632         (push_by_depth): Add.
11633         (prefetch): Add.
11634         (free_page): Add support for and use faster data structures.
11635         (ggc_alloc): Likewise.
11636         (init_ggc): Likewise.
11637         (ggc_recalculate_in_use_p): Likewise.
11638         (ggc_pop_context): Likewise.
11639         (clear_marks): Likewise.
11640         (ggc_pch_read): Likewise.
11641         * Makefile.in (ggc-page.o): Remove varray.h.
11642
11643 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
11644
11645         * ChangeLog: Rotated last year's entries to...
11646         * ChangeLog.8: New.
11647
11648         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
11649         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
11650         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
11651         config/ia64/ia64-protos.h, config/ia64/ia64.c,
11652         config/ia64/ia64.h, config/ia64/ia64.md,
11653         config/ia64/itanium1.md, config/ia64/itanium2.md,
11654         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
11655         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
11656
11657 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
11658
11659         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
11660         Differentiate endianness.
11661         (s6000_override_options): Use cpu type instead of TARGET_SPE.
11662
11663 2003-03-13  Nick Clifton  <nickc@redhat.com>
11664
11665         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
11666         LDM instructions with writeback enabled.
11667         (output_return_instruction): Likewise.
11668
11669         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
11670         (CALL_USED_REGISTERS): Remove definition.
11671         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
11672
11673 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
11674
11675         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
11676         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
11677         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
11678         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
11679         (rs6000_legitimize_address): Formatting.
11680         (rs6000_emit_move): Likewise.
11681         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
11682         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
11683         (rs6000_elf_select_section): Comment reason for shlib being
11684         set for ABI_AIX.
11685         (rs6000_elf_unique_section): Likewise.
11686         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
11687         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
11688         as well as flag_pic.
11689         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
11690         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
11691         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
11692
11693 2003-03-13  Richard Henderson  <rth@redhat.com>
11694
11695         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
11696
11697         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
11698         (ia64_gp_save_reg): Remove.
11699         (struct ia64_frame_info): Move to the beginning of the file;
11700         add reg_save_gp.
11701         (ia64_expand_call): Rearrange for new call patterns.
11702         (ia64_reload_gp): New.
11703         (ia64_split_call): New.
11704         (ia64_compute_frame_size): Allocate reg_save_gp.
11705         (ia64_expand_prologue): Save reg_save_gp.
11706         (ia64_expand_epilogue): Don't restore gp.
11707         (ia64_hard_regno_rename_ok): Remove R4 hack.
11708         (ia64_function_ok_for_sibcall): New.
11709         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
11710         call try_split on sibcall pattern.
11711         * config/ia64/ia64-protos.h: Update.
11712         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
11713         Rename from nopic versions.  Confiscate 2nd argument to call as
11714         a marker.
11715         (call_pic, call_value_pic, sibcall_pic): Remove.
11716         (call_gp, call_value_gp, sibcall_gp): New.
11717         (builtin_setjmp_setup): Remove.
11718         (builtin_setjmp_receiver): Call ia64_reload_gp.
11719
11720 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
11721
11722         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
11723         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
11724         "GNU CC" with "GCC".
11725
11726         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
11727         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
11728         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
11729         GCC, not GNU CC.
11730
11731         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
11732         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
11733
11734         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
11735         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
11736         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
11737         "GNU CC" with "GCC".
11738
11739         * config/v850/lib1funcs.asm, config/v850/rtems.h,
11740         config/v850/v850-c.c, config/v850/v850-protos.h,
11741         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
11742         GCC, not GNU CC.
11743
11744         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
11745         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
11746         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
11747         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
11748         GNU CC.
11749
11750 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
11751
11752         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
11753
11754 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
11755
11756         * fixinc/fixinc.interix: Remove dead code (most of it).
11757         * fixinc/fixinc.dgux: Remove.
11758
11759         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
11760         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
11761
11762 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11763
11764         * pa.c (pa_init_builtins): Fix warning.
11765
11766 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
11767
11768         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
11769         (ASM_OUTPUT_XDATA_SHORT): Remove.
11770         (ASM_OUTPUT_XDATA_INT): Remove.
11771         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
11772         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
11773         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
11774         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
11775
11776 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
11777
11778         PR c++/7050
11779         * expr.c (store_expr): Don't attempt to store void-typed trees,
11780         just evaluate them for side effects.
11781
11782 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
11783
11784         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
11785         * cppinit.c (push_include): Move with changes to cppfiles.c.
11786         (cpp_read_main_file): Mark named operators here...
11787         (cpp_finish_options): ...not here.  Update.
11788         (_cpp_maybe_push_include_file): Update.
11789         * cpplib.h (cpp_push_include, cpp_rename_file): New.
11790
11791 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
11792
11793         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
11794         _gcc_COMPUTE_GAS_VERSION.
11795         * configure.in: Use them.
11796         * configure: Regenerate.
11797
11798 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
11799
11800         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
11801         to detect carry.
11802         (subdi3): Reorder emitted instructions.
11803
11804 2003-03-12  Andreas Jaeger  <aj@suse.de>
11805
11806         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
11807         NETBSD_OS_CPP_BUILTINS_LP64.
11808
11809 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
11810
11811         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
11812         Rearrange.  Reorganize.
11813         * configure.in: Rearrange.
11814         * configure: Regenerate.
11815
11816 2003-03-12  Andreas Jaeger  <aj@suse.de>
11817
11818         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
11819         LP64 targets.
11820
11821         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
11822         _LP64.
11823
11824         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
11825         _LP64 macros here.
11826         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
11827
11828         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
11829         NETBSD_OS_CPP_BUILTINS_LP64.
11830         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
11831         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
11832
11833         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
11834
11835 2003-03-12  Jan Hubicka  <jh@suse.cz>
11836
11837         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
11838
11839 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
11840
11841         Fix PR target/9797 and PR c/9853.
11842         * stmt.c (expand_decl_init): Call push_temp_slots () and
11843         pop_temp_slots ().
11844
11845 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
11846
11847         * sh.c: Include basic-block.h.
11848         (sh_output_mi_thunk, emit_load_ptr): New functions.
11849         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
11850
11851 2003-03-12  Nick Clifton  <nickc@redhat.com>
11852
11853         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
11854         (CALL_USED_REGISTERS): Likewise.
11855         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
11856         describing how this value is calculated.
11857
11858 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
11859
11860         * configure.in (rlim_t): Define to long if no valid definition
11861         found in sys/resource.h.
11862         * config.in, configure: Regenerate.
11863
11864 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
11865
11866         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
11867         TARGET_OS_CPP_BUILTINS.
11868         * config/mcore/mcore-pe.h: Similarly.
11869         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
11870         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
11871
11872 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11873
11874         PR c/9928
11875         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
11876         only if it is a VAR_DECL.
11877
11878 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11879
11880         PR optimization/9888
11881         * config/i386/i386.md (jcc_1): Fix range.
11882         (jcc_2): Likewise.
11883         (jump): LIkewise.
11884         (doloop_end_internal): Likewise.
11885
11886 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
11887
11888         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
11889         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
11890         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
11891         DLL_IMPORT_EXPORT_PREFIX and "i."
11892         (i386_pe_dllexport_name_p): Here.
11893         (i386_pe_dllimport_name_p): Here.
11894         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
11895         not 9 chars when getting identifier name.
11896         (i386_pe_mark_dllimport): Here.
11897         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
11898         not 9 chars when getting identifier name. Correct comment.
11899         (i386_pe_strip_name_encoding): Here. Add comments for different
11900         cases.
11901         (gen_fastcall_suffix): Break down xmalloc() argument to
11902         components.
11903         (gen_stdcall_suffix): Likewise.
11904         Update copyright year.
11905
11906 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11907
11908         PR optimization/9888
11909         * config/i386/i386.md (movsi_1): Remove special alternatives
11910         for %eax register.
11911         (movsi_1_nointernunit): Likewise.
11912         (movhi_1): Likewise.
11913         * config/i386/i386.c (memory_address_length): Do not use
11914         short displacement when there is no base.
11915         (ix86_attr_length_address_default): Handle LEA instructions.
11916
11917 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
11918
11919         * c-cppbuiltin.c (builtin_define_std): Make non-static.
11920
11921 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
11922
11923         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
11924         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
11925         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
11926         * config/freebsd.h (CPP_PREDEFINES): Remove.
11927         (TARGET_OS_CPP_BUILTINS): New.
11928         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
11929         instead of TARGET_OS_CPP_BUILTINS.
11930         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
11931
11932 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
11933
11934         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
11935
11936 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
11937
11938         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
11939         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
11940
11941         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
11942
11943 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
11944
11945         * toplev.c (independent_decode_option): Return success for --help,
11946         --target-help and --version.
11947
11948 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
11949
11950         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
11951         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
11952         specified.
11953         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
11954         DRIVER_SELF_SPECS.
11955         (LINK_SPEC): Let endian options affect the linker emulation name.
11956
11957 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
11958
11959         * sh.md (reload_inqi): Fix mode for source in second set.
11960
11961 2003-03-11  Jan Hubicka  <jh@suse.cz>
11962
11963         * cselib.c (cselib_invalidate_mem_1): Move too ...
11964         (cselib_invalidate_mem): ... here; use new list
11965         (dummy_val, first_containing_mem): New static variables.
11966         (clear_table): Initialize first_containing_mem.
11967         (discard_useless_values):  Compact the containing_mem list.
11968         (add_mem_for_addr): Add to the list.
11969         * cselib.h (cselib_val): Add next_containing_mem.
11970
11971 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
11972
11973         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
11974         instructions for e500.
11975
11976 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
11977
11978         * Makefile.in: Update.
11979         * c-cppbuiltin.c: Include tm_p.h.
11980
11981 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
11982
11983         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
11984
11985         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
11986         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
11987         (_Unwind_SetGR): Same.
11988         (_Unwind_GetGRPtr): New.
11989         (_Unwind_SetGRPtr): New.
11990         (uw_update_context_1): Use accesor functions instead of accessing
11991         context->reg[] directly.
11992         (uw_install_context_1): Same.
11993         (execute_cfa_program): Same.
11994         (__frame_state_for): Same.
11995
11996         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
11997         the synthetic register offset.
11998
11999         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
12000
12001 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
12002
12003         * config/cris/cris.md: Remove lingering EGCS reference.
12004         ("*extopqihi_side_biap"): For HI operation, match
12005         cris_additive_operand_extend_operator, not
12006         cris_operand_extend_operator.  Adjust condition.
12007         ("*extopqihi_side", "*extopqihi"): Ditto.
12008         ("*extopqisi_side_biap"): Correct operand numbers in condition.
12009         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
12010         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
12011         ("*extophisi_swap"): Ditto.
12012         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
12013         PLUS, not cris_operand_extend_operator.  Adjust condition and
12014         output template.
12015         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
12016         * config/cris/cris.h (PREDICATE_CODES): Add
12017         cris_additive_operand_extend_operator.
12018         * config/cris/cris.c (cris_additive_operand_extend_operator):
12019         New predicate.
12020
12021 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
12022
12023         * df.c (read_modify_subreg_p): Change from static to global.
12024         * df.h (read_modify_subreg_p): Add prototype.
12025         * sched-deps.c (sched_analyze_1): Generate true dependency for
12026         strict_low_part, certain subregs and zero/sign_extract.
12027
12028 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
12029
12030         * Makefile.in: Update.
12031         * c-common.c: Don't include real.h or except.h.
12032         (REGISTER_PREFIX): Remove.
12033         (builtin_define_std, builtin_define_with_value,
12034         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
12035         builtin_define_type_max, builtin_define_type_precision,
12036         builtin_define_float_constants): Move to c-cppbuiltin.c.
12037         (c_stddef_cpp_builtins): New.
12038         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
12039         * c-cppbuiltin.c: New, extracted from c-common.c.
12040         (define__GNUC__): New.
12041         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
12042         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
12043         (cpp_unique_options): Don't support no-gcc.
12044         (do_spec_1): Remove support of version specs.
12045         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
12046         * doc/passes.texi: Update.
12047         * doc/tm.texi: Update.
12048
12049 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
12050
12051         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
12052
12053 2003-03-10  Andrew Pinski  <apinski@apple.com>
12054
12055         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
12056         is on should not get here.
12057         (machopic_indirect_data_reference): If dynamic-no-pic is on just
12058         generate high/low parts of the address.
12059         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
12060         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
12061         symbol and labels with a new reg.  Dynamic-no-pic does not have a
12062         pic_offset_table_rtx.
12063         (machopic_select_section): Change references of flag_pic to
12064         MACHOPIC_INDIRECT.
12065         (machopic_asm_out_destructor): Likewise.
12066         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
12067         reference of flag_pic to MACHOPIC_INDIRECT.
12068         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
12069         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
12070         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
12071         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
12072         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
12073         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
12074         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
12075         (TARGET_DYNAMIC_NO_PIC): Define.
12076         (SUBTARGET_SWITCHES): Define, have sub-target switches for
12077         dynamic-no-pic.
12078         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
12079         rs6000_override_options to here. Dynamic-no-pic overrides
12080         pic.
12081         (CC1_SPEC): Change from not static then pic to not static and not
12082         dynamic-no-pic then pic.
12083         * config/rs6000/rs6000.c (rs6000_override_options): Move the
12084         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
12085         (rs6000_legitimize_reload_address): Add case for loading floating in
12086         dynamic-no-pic.
12087         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
12088         of flag_pic to MACHOPIC_INDIRECT.
12089         (secondary_reload_class): Conditional change the reference of
12090         flag_pic to MACHOPIC_INDIRECT.
12091         (rs6000_output_mi_thunk): Change reference of flag_pic to
12092         MACHOPIC_INDIRECT.
12093         (output_profile_hook): Likewise.
12094         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
12095         * config/rs6000/rs6000.md (movdf_low): Add the case for
12096         MACHO_DYNAMIC_NO_PIC_P.
12097         (call): Change references for flag_pic in TARGET_MACHO to
12098         MACHOPIC_INDIRECT.
12099         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
12100         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
12101         * doc/invoke.texi (-mdynamic-no-pic): Document.
12102
12103 2003-03-10  Devang Patel  <dpatel@apple.com>
12104
12105         PR c++/9394
12106         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
12107         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
12108         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
12109         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
12110         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
12111         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
12112
12113 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
12114
12115         PR optimization/7189
12116         * toplev.c (rest_of_compilation):  Move
12117         check_function_return_warnings up to just after
12118         delete_unreachable_blocks.
12119
12120 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
12121
12122         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
12123         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
12124         Declare.
12125         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
12126         for reg rename optimization to avoid using Z and Y registers.
12127
12128 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
12129
12130         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
12131         when adding to X and Y since leax/leay are fast.
12132         ("*addhi3"): Accept 'I' constraint when adding to address register.
12133         ("rotlhi3"): Operand 1 must be a register_operand.
12134         (peephole2): New peephole to optimize some adds.
12135         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
12136         to represent -2 .. 2 small integer range.
12137
12138 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
12139
12140         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
12141         each 16-bit rotation.
12142
12143 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
12144
12145         * c-opts.c (add_prefixed_path): Don't use concat.  When
12146         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
12147         cpp_GCC_INCLUDE_DIR_len characters.
12148
12149 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
12150
12151         * testsuite/gcc.dg/altivec-9.c: New file.
12152
12153         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
12154         (rs6000_emit_prologue): Use rs6000_frame_related instead.
12155
12156 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
12157
12158         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
12159         vectors.
12160         (__ev_convert_u64): Remove macro.  Define as inline.
12161         (__ev_convert_s64): Same.
12162
12163 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
12164
12165         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
12166         (rs6000_stack_t): Add spe_64bit_regs_used.
12167
12168         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
12169         spe_64bit_regs_used, and use it to determine the size of the
12170         frame.
12171         (spe_func_has_64bit_regs_p): New.
12172         (spe_synthesize_frame_save): New.
12173         (rs6000_frame_related): Handle SPE synthetic registers.
12174         (rs6000_emit_prologue): Only save in 64-bits if the function used
12175         any registers in 64-bit mode.
12176         (rs6000_emit_epilogue): Same, but for restore.
12177
12178 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
12179
12180         * arm.h (enum floating_point_type): Delete.  Replace with...
12181         (enum fputype): ... new.
12182         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
12183         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
12184         * arm.md (attr fpu): Reworked for new underlying enum values.
12185         * arm.c (arm_fpu_arch): Now enum fputype.
12186         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
12187         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
12188         Update uses of arm_fpu_arch and arm_fpu_tune.
12189
12190 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
12191
12192         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
12193         (try_crossjump_to_edge): Replace refereces to one jump table by
12194         references to identical jump table.
12195         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
12196         (replace_label): Moved to rtlanal.c.
12197         (struct rtx_pair): Moved to rtl.h.
12198         * rtl.h (struct rtx_pair): Moved from loop.c.
12199         (replace_label): New extern function.
12200         (subrtx_p): New extern function.
12201         (tablejump_p): New extern function.
12202         * rtlanal.c (replace_label): Moved from loop.c.
12203         (subrtx_p_1): New static function.
12204         (subrtx_p): New function.
12205         (tablejump_p): New function.
12206
12207 2003-03-10  Jan Hubicka  <jh@suse.cz>
12208
12209         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
12210
12211         * cfgcleanup.c (merge_blocks): Return where to iterate next.
12212         (try_optimize_cfg): Use return value of merge_blocks
12213
12214 2003-03-10  Michael Matz  <matz@suse.de>
12215
12216         * cfg.c (unchecked_make_edge): New.
12217         (cached_make_edge): Use it.
12218         * basic-block.h (unchecked_make_edge): Declare.
12219         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
12220
12221 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
12222
12223         * fpa.md: New file.  Move all patterns relating to FPA co-processor
12224         to here...
12225         * arm.md: ... from here.
12226         (cirrus.md, fpa.md): Include at end of description.
12227         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
12228         (pic_load_addr_based): Remove register constraint from expander.
12229         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
12230         (sordered, sungt, sunle, sunge, sunlt): Likewise.
12231         (eh_epilogue, tablejump): Likewise.
12232
12233 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12234
12235         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
12236         on operands if it has a PLACEHOLDER_EXPR.
12237
12238 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
12239             Mostafa Hagog
12240
12241         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
12242         condition.
12243
12244 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
12245
12246         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
12247         * config/ip2k/ip2k.h: Similarly.
12248         * config/m32r/m32r.h: Similarly.
12249         * config/m68hc11/m68hc11.h: Similarly.
12250         * config/mn10200/mn10200.h: Similarly.
12251         * config/mn10300/mn10300.h: Similarly.
12252         * config/pdp11/pdp11.h: Similarly.
12253         * config/v850/v850.h: Similarly.
12254         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
12255         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
12256         * config/mips/iris3.h: Remove #if 0 block.
12257
12258 2003-03-09  Roger Sayle  <roger@eyesopen.com>
12259             Joern Rennecke <joern.rennecke@superh.com>
12260
12261         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
12262         pending argument upon return from handle_braces here.
12263         (do_spec_2): Instead handle it upon return from do_spec_1 here.
12264
12265 2003-03-09  Roger Sayle  <roger@eyesopen.com>
12266             Joern Rennecke <joern.rennecke@superh.com>
12267
12268         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
12269         pending argument upon return from handle_braces here.
12270         (do_spec_2): Instead handle it upon return from do_spec_1 here.
12271
12272 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12273
12274         * varasm.c (make_decl_one_only): Use declare_weak().
12275
12276 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12277
12278         PR middle-end/9986
12279         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
12280         after the common builtins.
12281         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
12282         * pa.c (TARGET_INIT_BUILTINS): Define.
12283         (pa_init_builtins): New function.
12284
12285         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
12286         space has been allocated for the outgoing arguments, set the arg
12287         pointer for a call emitted after virtuals have been instantiated
12288         using the stack pointer offset, otherwise abort.
12289
12290 2003-03-09  DJ Delorie  <dj@redhat.com>
12291
12292         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
12293
12294 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
12295
12296         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
12297         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
12298         conversion to integer.
12299         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
12300
12301 2003-03-09  Roger Sayle  <roger@eyesopen.com>
12302
12303         * builtins.def: Fix typo and improve grammar.
12304         * loop-unroll.c (decide_peel_completely): Tidy log message.
12305
12306 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
12307
12308         * config/h8300/h8300.md (*tstsi_upper_bit): New.
12309         (*iorsi3_e2f): Likewise.
12310
12311 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
12312
12313         * config/h8300/h8300.c (h8300_and_costs): Return the number of
12314         assembly instructions needed.
12315         (h8300_shift_costs): Likewise.
12316
12317 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
12318
12319         * config/cris/aout.h (ENDFILE_SPEC): Undef.
12320
12321         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
12322         moves from here ...
12323         * expr.c (emit_move_insn_1): ... to here.
12324
12325         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
12326         (TARGET_OS_CPP_BUILTINS): New macro.
12327         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
12328         (TARGET_OS_CPP_BUILTINS): New macro.
12329         (CPP_PREDEFINES): Don't define.  Move old definitions and...
12330         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
12331         (TARGET_CPU_CPP_BUILTINS): New macro.
12332         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
12333         definitions and the optional __PIC__, __pic__ and
12334         __NO_UNDERSCORES__ definitions to...
12335         (TARGET_OS_CPP_BUILTINS): New macro.
12336
12337         * flags.h (flag_leading_underscore): Declare.
12338
12339         * c-opts.c (c_common_post_options): On fopen failure, return
12340         false, not NULL.
12341
12342 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
12343
12344         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
12345         config.h.
12346         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
12347         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
12348
12349 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
12350
12351         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
12352         CPP_PREDEFINES.
12353         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
12354         CPP_PREDEFINES.
12355
12356 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
12357
12358         * c-common.h (c_common_init, c_common_post_options): Update.
12359         * c-objc-common.c (c_objc_common_init): Update for new prototype.
12360         * c-opts.c (saved_lineno): New.
12361         (c_common_post_options, c_common_init): Update prototypes,
12362         move call to cpp_read_main_file from latter to former.
12363         * c-tree.h (c_ojbc_common_init): Update.
12364         * langhooks-def.h (lhd_post_options): New.
12365         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
12366         * langhooks.c (lhd_post_options): New.
12367         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
12368         * toplev.c (no_backend): New.
12369         (process_options): Call post_options hook and set main_input_filename
12370         and input_filename here.
12371         (lang_dependent_init, do_compile): post_options hook moved to
12372         process_options.
12373         * objc/objc-act.c (objc_init): Update prototype.
12374         * objc/objc-act.h (objc_init): Update prototype.
12375
12376 2003-03-08  Roger Sayle  <roger@eyesopen.com>
12377
12378         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
12379         a complex or vector type, using a load in the original mode.
12380
12381 2003-03-08  Jan Hubicka  <jh@suse.cz>
12382
12383         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
12384         * gt-cgraph.h: New GC file.
12385         * cgraph.c (known_fns): New static variable.
12386         (cgraph_node): Add the decl into varray.
12387
12388 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
12389
12390         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
12391
12392 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
12393
12394         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
12395         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
12396         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
12397         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
12398         All callers changed.
12399         * arm.md, arm.h, arm-protos.h: Updated.
12400
12401         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
12402         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
12403         * arm.c (arm_regno_class, f_register_operand): Updated.
12404
12405 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
12406
12407         * config/cris/cris.h: Remove EGCS references.
12408         (CPP_SPEC): Remove "-$".
12409         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
12410
12411 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
12412
12413         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
12414         preference to CPP_PREDEFINES.
12415
12416 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
12417
12418         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
12419
12420 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
12421
12422         * config/h8300/h8300.md (*extzv_16_8): New.
12423
12424 2003-03-08  Jan Hubicka  <jh@suse.cz>
12425
12426         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
12427         * cgraph.h: (cgraph_local_info): Add can_inline_once
12428         (cgraph_global_info): Add inline_once.
12429         (cgraph_node): Add previous.
12430         (cgraph_remove_node): New.
12431         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
12432         function.
12433         (cgraph_optimize): Call it.
12434         (cgraph_finalize_function):  Set inlinable flags.
12435         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
12436         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
12437         (cgraph_expand_function): Likewise.
12438         * cgraph.c
12439         (cgraph_node): Put nodes into doubly linked chain.
12440         (cgraph_remove_node): New function.
12441         * flags.h (flag_inline_functions_called_once): Declare.
12442         * tree-inline.c: Include cgraph.h
12443         (inlinable_functions_p): Add extra argument to bypass limits.
12444         (expand_call_inline):  Obey cgraph flag.
12445         * tree-inline.h (tree_inlinable_function_p): Update prototype.
12446
12447 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12448
12449         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
12450         irreducible loops.
12451
12452         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
12453         loops info correctly.
12454
12455 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12456
12457         PR middle-end/7796
12458         * unroll.c (calculate_giv_inc): Handle constants being
12459         loaded with LSHIFTRT.
12460
12461 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
12462
12463         * config/rs6000/rs6000.c (processor_target_table): Do not disable
12464         GP optional instructions on Power3, Power4, 620, and 630.
12465
12466 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
12467
12468         * calls.c: Fix comment formatting.
12469         * cfgloopanal.c: Likewise.
12470         * cfgloopmanip.c: Likewise.
12471         * combine.c: Likewise.
12472         * dwarf2out.c: Likewise.
12473         * ggc-common.c: Likewise.
12474         * langhooks.c: Likewise.
12475         * loop-unroll.c: Likewise.
12476         * loop.c: Likewise.
12477         * ra-build.c: Likewise.
12478         * sbitmap.c: Likewise.
12479         * toplev.c: Likewise.
12480
12481 2003-03-07  James E Wilson  <wilson@tuliptree.org>
12482
12483         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
12484
12485 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
12486
12487         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
12488         support -no-integrated-cpp.
12489
12490         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
12491         than langhooks.name.
12492
12493 2003-03-07  Michael Matz  <matz@suse.de>
12494
12495         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
12496         (DF_FOR_REGALLOC): New.
12497         * df.c (df_ref_record): Set DF_REF_STRIPPED.
12498         (read_modify_subreg_p): Simplify.
12499         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
12500         Use DF_FOR_REGALLOC.
12501         * ra.h (struct web): New member subreg_stripped.
12502         (invalid_mode_change_regs): Declare.
12503         * ra.c (invalid_mode_change_regs): New.
12504         (init_ra): Initialize it.
12505         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
12506         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
12507         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
12508         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
12509         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
12510
12511 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
12512
12513         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
12514         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
12515         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
12516         machine description file from ...
12517         * cirrus.md: ... here.
12518
12519 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12520
12521         * config/h8300/h8300.md (a peephole2): Don't use
12522         reg_overlap_mentioned_p.
12523
12524 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
12525
12526         * c-pch.c: Include langhooks.h.
12527         (IDENT_LENGTH): New.
12528         (get_ident): New.
12529         (pch_ident): Delete.
12530         (pch_init): Use get_ident, IDENT_LENGTH.
12531         (c_common_valid_pch): Likewise.  Also, use actual language
12532         in warning message.
12533         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
12534
12535         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
12536         c-parse.in.
12537         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
12538         gt-objc-objc-act.h.
12539         (gt-objc-objc-act.h): New rule.
12540         * objc/lang-specs.h: Support PCH.
12541         * objc/objc-act.c: Include gt-objc-objc-act.h.
12542         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
12543         (build_selector_reference_decl): Move idx out, mark for PCH.
12544         (build_class_reference_decl): Likewise.
12545         (build_objc_string_decl): Move *_idx out, mark for PCH.
12546         (build_tmp_function_decl): Move xxx out, mark for PCH.
12547
12548 2003-03-06  Dale Johannesen  <dalej@apple.com>
12549
12550         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
12551         global functions for inlining on Darwin.
12552
12553 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
12554
12555         * haifa-sched.c (schedule_block): Don't call reorder when sorting
12556         is prohibited.
12557
12558 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
12559
12560         * Makefile.in (c-ppoutput.o): Update.
12561         * c-common.h (init_pp_output): New.
12562         (preprocess_file): Update.
12563         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
12564         Register builtins.
12565         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
12566         Make call to cpp_read_main_file common to whether preprocessing
12567         or not.  Don't register builtins.
12568         * c-ppoutput.c: Include c-pragma.h.
12569         (setup_callbacks): Rename init_pp_output.
12570         (preprocess_file): No longer setup callbacks or call
12571         cpp_read_main_file.
12572         * cpphash.h (_cpp_init_mbchar): New.
12573         * cppinit.c (init_library): Call _cpp_init_mbchar.
12574         * cpplex.c (_cpp_init_mbchar): New.
12575
12576 2003-03-06  Roger Sayle  <roger@eyesopen.com>
12577
12578         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
12579         MEM, try loading the MEM into a register and taking the low-part
12580         of that, to help CSE see the use of the MEM in its true mode.
12581
12582 2003-03-05  Tom Tromey  <tromey@redhat.com>
12583
12584         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
12585         Define.
12586
12587 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
12588
12589         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
12590         operand 2.
12591         ("*ineqbranchsi"): Likewise.
12592
12593 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
12594
12595         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
12596         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
12597         register store followed by a stack increment.
12598
12599 2003-03-05  Chris Moller  <cmoller@redhat.com>
12600
12601         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
12602         to inhibit saving CARRY_REGS.
12603
12604         * config/stormy16/stormy16.c (xs_hi_general_operand):
12605         added predicate to detect and error-out on out-of-range
12606         const_ints for movhi.
12607         * config/stormy16/stormy16.md (movhi): use
12608         xs_hi_general_operand.
12609
12610         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
12611         added a check for local vbl size overflow.
12612         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
12613         added predicate to detect and error-out on out-of-range
12614         const_ints for addhi and subhi.
12615         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
12616         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
12617
12618         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12619         add a term to accept PRE_MODIFY addresses.
12620         * config/stormy16/stormy16.c (xstormy16_expand_move):
12621         add code to expand PRE_MODIFY addresses to an add followed
12622         by a move.
12623
12624 2003-03-06  Jason Merrill  <jason@redhat.com>
12625
12626         * tree-inline.c (inlinable_function_p): Revert earlier change
12627         pending investigation.
12628
12629 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12630
12631         * config/h8300/h8300.md (a new peephole2): New.
12632
12633 2003-03-06  Jan Hubicka  <jh@suse.cz>
12634
12635         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
12636
12637 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12638
12639         * dwarf2out.c (size_of_die): Compute size of external reference to
12640         die correctly.
12641
12642 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
12643
12644         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
12645         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
12646         expanders.
12647
12648 2003-03-05  Roger Sayle  <roger@eyesopen.com>
12649
12650         * expr.h (lang_expand_expr): Delete obsolete prototype.
12651
12652 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12653
12654         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
12655
12656 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12657
12658         * config/h8300/h8300.md (a peephole2): Generalize to
12659         accept a memory operand.
12660
12661 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
12662
12663         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
12664         * config/alpha/alpha.c (print_operand, case '+'): New.
12665         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
12666         (call_value_osf_1_noreturn): Likewise.
12667
12668 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12669
12670         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
12671         (expand_end_bindings): Likewise.
12672
12673 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12674
12675         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
12676         (epilogue): Don't generate return_external_pic when emitting PA 2.0
12677         code.
12678
12679 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
12680
12681         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
12682
12683         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
12684
12685         * hooks.c (hook_rtx_rtx_null): New.
12686
12687         * hooks.h (hook_rtx_rtx_null): Protoize.
12688
12689         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
12690         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
12691
12692         * target.h (struct gcc_target): Add dwarf_register_span.
12693
12694         * dwarf2out.c (multiple_reg_loc_descriptor): New.
12695         (one_reg_loc_descriptor): New.
12696         (reg_loc_descriptor): Add support for values that span more than
12697         one register.
12698
12699 2003-03-05  Jan Hubicka  <jh@suse.cz>
12700
12701         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
12702         * alias.c:  Include cgraph.h
12703         (mark_constant_function): Use cgraph_rtl_info.
12704         * calls.c:  Include cgraph.h
12705         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
12706         calls.
12707         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
12708         * cgraph.c (cgraph_rtl_info): New function.
12709         * cgraph.h (cgraph_rtl_info): Declare
12710         (cgraph_rtl_info): Likewise.
12711         * function.h (struct function): Add recursive_call_emit.
12712         * toplev.c: Include cgraph.h.
12713         (rest_of_compilation): Set preferred_incoming_stack_boundary.
12714
12715 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12716
12717         * config/h8300/h8300.c (output_simode_bld): Clear the
12718         destination first if possible.
12719         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
12720         alternative.
12721         (extzv_1_r_inv_h8300hs): Likewise.
12722
12723 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12724
12725         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
12726         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
12727         * cfgloop.c (flow_loop_free): Made global.
12728         (establish_preds): New static function.
12729         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
12730         (get_loop_exit_edges): New.
12731         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
12732         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
12733         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
12734         loops.
12735         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
12736         removability of an edge.
12737         (fix_irreducible_loops): New static function.
12738         (find_path, remove_path): Add ability to remove enclosing loops.
12739         (unloop): New.
12740         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
12741         flags.
12742         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
12743         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
12744         not neccessary.
12745         (decide_peel_completely, peel_loops_completely): Allow complete peeling
12746         of non-duplicable once rolling loops.
12747         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
12748
12749 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
12750
12751         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
12752         for align_jumps is 4.
12753
12754         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
12755         use GENERAL_REGS.
12756
12757 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
12758
12759         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
12760         according to va_arg type.
12761         (EXPAND_BUILTIN_VA_ARG): Remove.
12762         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
12763         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
12764
12765 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
12766
12767         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
12768         else clauses.
12769
12770 2003-03-05  Michael Matz  <matz@suse.de>
12771
12772         * i386/i386.c (ix86_save_reg): Also test
12773         current_function_uses_const_pool.
12774
12775 2003-03-05  Michael Matz  <matz@suse.de>
12776
12777         * unwind.h: Add the GPL exception.
12778         * Makefile.in (USER_H): Add unwind.h.
12779
12780 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12781
12782         PR c/9799
12783         * c-typeck.c (push_init_level): Add sanity check.
12784
12785 2003-03-05  Jan Hubicka  <jh@suse.cz>
12786
12787         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
12788         RTL inlining is done.
12789
12790         * cgraphunit.c (cgraph_mark_local_functions): New local function.
12791         (cgraph_optimize): Mark local functions.
12792         * i386-protos.h (init_cumulative_args): Update prototype.
12793         * i386.c (init_cumulative_args): Use register passing convention for
12794         local functions.
12795
12796         * cgraph.c (cgraph_global_info_ready): New global variable
12797         (cgraph_local_info, cgraph_global_info): New functions.
12798         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
12799         structures.
12800         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
12801         Declare.
12802         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
12803         (cgraph_mark_functions_to_output): Use inline_many.
12804         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
12805         (cgraph_expand_functions): Expand inline functions last.
12806         (cgraph_optimize): Do not emit uneeded functions.
12807
12808 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
12809
12810         * expr.c (convert_modes): Check for legal hard register.
12811
12812 2003-03-04  Tom Tromey  <tromey@redhat.com>
12813
12814         * doc/sourcebuild.texi (Front End Directory): Document tags.
12815         * configure: Rebuilt.
12816         * configure.in (target_list): Added tags.
12817         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
12818         TAGS files by reference.
12819         * objc/Make-lang.in (objc.tags): New target.
12820
12821 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12822
12823         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
12824         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
12825         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
12826         gcov_read_string, gcov_write_length): Modified to enable reading/
12827         writing of whole .da file just once.
12828         (da_file_open, da_file_close, da_file_eof, da_file_error,
12829         da_file_position, da_file_seek, da_file_write, da_file_read): New
12830         functions.
12831         (actual_da_file, actual_da_file_position, actual_da_file_length,
12832         actual_da_file_buffer, actual_da_file_buffer_size): New static
12833         functions.
12834         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
12835         just once.
12836
12837
12838 2003-03-04  Andreas Schwab  <schwab@suse.de>
12839
12840         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
12841         offset without frame pointer.
12842
12843 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
12844
12845         * expr.c (expand_expr): Call promote_mode to set unsignedp.
12846
12847 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
12848
12849         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
12850         * configure: Regenerated.
12851         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
12852
12853 2003-03-04  Andreas Jaeger  <aj@suse.de>
12854
12855         * configure.in: Check for <memcheck.h>.
12856         * configure: Regenerated.
12857
12858         * config.in: Define HAVE_MEMCHECK_H.
12859
12860         * ggc-common.c: Use <memcheck.h> if available instead of
12861         <valgrind.h>.
12862         * ggc-page.c: Likewise.
12863         * cppfiles.c: Likewise.
12864
12865 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12866
12867         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
12868
12869 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12870
12871         PR c/9262
12872         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
12873         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
12874
12875 2003-03-04  Jan Hubicka  <jh@suse.cz>
12876
12877         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
12878         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
12879         for -O3.
12880
12881 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
12882
12883         * configure.in: Delete three unused variables.  Move a variable
12884         definition closer to its use.  Simplify use_collect2 logic.  Start to
12885         organize.  Simplify tests for in-tree gas and ld.
12886         * configure: Regenerate.
12887
12888 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
12889
12890         * Makefile.in: Update.
12891         * c-common.c (flag_no_line_commands, flag_no_output,
12892         flag_dump_macros, flag_dump_includes): New.
12893         * c-common.h (flag_no_line_commands, flag_no_output,
12894         flag_dump_macros, flag_dump_includes, preprocess_file): New.
12895         (init_c_lex): Update prototype.
12896         * c-lex.c (init_c_lex): Update prototype; move some code to
12897         c_common_init.
12898         * c-opts.c (preprocess_file): Subsume into c_common_init.
12899         (c_common_decode_option): Update flags.
12900         (c_common_init): Move code from preprocess_file and init_c_lex.
12901         (sanitize_cpp_opts): Update.
12902         * c-ppoutput.c: New, cppmain.c almost verbatim.
12903         * cpphash.h (struct printer): Remove.
12904         (struct cpp_reader): Remove print.
12905         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
12906         cpp_preprocess_file): Remove.
12907         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
12908         and dump_includes.
12909         * cppmain.c: Remove.
12910         * doc/passes.texi: Update.
12911
12912 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12913
12914         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
12915         (assign_stack_local_1): Perform overall stack alignment only when
12916         STACK_ALIGNMENT_NEEDED is nonzero.
12917         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
12918
12919         * pa.c (compute_frame_size): Rename fsize to size.  Account for
12920         alignment to a word boundary before general register save block.  Only
12921         account for double-word alignment before floating point register save
12922         block if one or more are saved.  Don't allocate space for %r3 when
12923         frame pointer is needed.
12924         (hppa_expand_prologue): Include alignment to word boundary in local
12925         frame size.
12926         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
12927         (STACK_ALIGNMENT_NEEDED): Define.
12928
12929 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
12930
12931         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
12932         global register variables.
12933
12934 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
12935
12936         * reload.c (reload_adjust_reg_for_mode): New function.
12937         (subst_reloads): Call it.
12938         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
12939         * reload.h (reload_adjust_reg_for_mode): Declare.
12940         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
12941         Call it.
12942
12943 2003-03-03  James E Wilson  <wilson@tuliptree.org>
12944
12945         * optabs.c (add_equal_note): Delete SUBREG_REG use.
12946         Fixes PR c/7872.
12947
12948 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12949
12950         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
12951         (*ixorsi3_lshiftrt_16): New.
12952         (*iorsi3_ashift_16): Remove.
12953
12954 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12955
12956         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
12957         pattern.
12958
12959 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
12960
12961         * doc/install.texi (Specific): Update entry for powerpc-darwin.
12962
12963 2003-03-03  Richard Henderson  <rth@redhat.com>
12964
12965         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
12966
12967 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
12968
12969         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
12970         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
12971         (rs6000_variable_issue): Do not return negative value.
12972         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
12973         scheduling pass.
12974
12975 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12976
12977         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
12978         prune_unused_types calls.
12979
12980 2003-03-03  Jason Merrill  <jason@redhat.com>
12981
12982         * tree-inline.c (find_builtin_longjmp_call): Save and restore
12983         lineno and input_filename.
12984         (find_alloca_call): Likewise.
12985         (inlinable_function_p): Run the langhook earlier.
12986
12987         * calls.c (compute_argument_addresses): Give the new MEMs a
12988         minimum alignment of PARM_BOUNDARY.
12989
12990 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
12991
12992         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
12993         subtarget_asm_isa_spec.
12994         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
12995         (ASM_SPEC): Define as SH_ASM_SPEC.
12996         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
12997         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
12998         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
12999         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
13000
13001         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
13002         and align_jumps if not set.
13003         Force align_jumps to be at least 2.
13004         When relaxing, force align_functions to be at least the maximum of
13005         align_loops, align_jumps and 4.
13006         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
13007         (sh_loop_align): Honour align_loops_log.
13008
13009         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
13010         to check for indirect_jump_scratch.
13011         (indirect_jump_scratch): Add second set.
13012         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
13013         when looking for indirect_jump_scratch.
13014         Extract scratch register taking new structure of indirect_jump_scratch
13015         into account.
13016         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
13017
13018 2003-03-03  Jan Hubicka  <jh@suse.cz>
13019
13020         * calls.c (rtx_for_function_call): Take the address as an argument
13021         (expand_call): Do not modify the expression.
13022
13023         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
13024         optimizing.
13025
13026 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
13027
13028         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
13029         TARGET_H8300H and TARGET_H8300S.
13030
13031 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
13032
13033         * config/h8300/h8300.md (a peephole2): New.
13034
13035 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
13036
13037         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
13038         operands[0] and operands[1] are different.
13039
13040 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
13041
13042         * reload1.c (reload_cse_move2add): Remove variable success.
13043
13044 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13045
13046         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
13047         warnings.
13048
13049 2003-03-02  Richard Henderson  <rth@redhat.com>
13050
13051         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
13052         * config.in, configure: Rebuild.
13053         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
13054         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
13055         paired ldtoffx and ldxmov annotations.
13056         (load_symptr_internal1): Remove.
13057         (load_symptr_high, load_symptr_low): New.
13058
13059 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
13060
13061         * c-incpath.c (add_path): Fix sysp assignment.
13062
13063 2003-03-02  Kurt Garloff  <garloff@suse.de>
13064
13065         * params.def: Introduce parameter max-inline-insns-rtl for
13066         a separate limit for the RTL inliner.
13067         * params.h: Likewise.
13068         * integrate.c (function_cannot_inline_p): Use it.
13069         * toplev.c (decode_f_option): Set multiple parameters
13070         controlling inlining with -finline-limit.
13071         * params.def: Fix orthographic and typographic errors.
13072         * doc/invoke.texi: Document parameters controlling inlining
13073         and the way -finline-limit sets multiple of them.
13074
13075         * tree.h (struct tree_decl): Introduce inlined_function_flag,
13076         recording whether the function became eligible for inlining
13077         by a compiler flag rather than the declaration.
13078         Provide DID_INLINE_FUNC macro to access it.
13079         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
13080         * cp/decl.c (grokfndecl): Likewise.
13081         * toplev.c (rest_of_compilation): Likewise.
13082         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
13083         * print-tree.c (print_node): Report it.
13084         * params.def: Introduce new max-inline-insns-auto limit.
13085         * params.h: Likewise.
13086         * tree-inline.c (inlinable_function_p): Apply it to functions
13087         with DID_INLINE_FUNC set.
13088         * toplev.c (decode_f_option): Initialize it from -finline-limit
13089         value.
13090         * doc/invoke.texi: Document new parameter.
13091
13092 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
13093
13094         * fix-header.c (read_scan_file): Don't reference simplify_path.
13095
13096 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
13097
13098         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
13099         min/max instructions by default as may result in reload errors.
13100
13101 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
13102
13103         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
13104         avoid reload problems; define split for it.
13105
13106 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
13107
13108         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
13109         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
13110         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
13111         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
13112         rotatert and rotate.
13113         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
13114         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
13115         ("*rotrhi3_addr"): New split for shift insns on address register.
13116         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
13117         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
13118         (___rotrhi3): Likewise.
13119         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
13120
13121 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
13122
13123         * toplev.c (aux_base_name): Moved from toplev.h.
13124         (filename): Constify.
13125         (lang_dependent_init): Don't duplicate name.
13126         (process_options): Set aux_base_name here, not...
13127         (do_compile): ...here.  Change protoype.
13128         (toplev_main): Move some code from do_compile.
13129         * toplev.h: Remove aux_base_name.
13130
13131 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13132
13133         * config/h8300/h8300-protos.h: Add a prototype for
13134         iorxor_operator.
13135         * config/h8300/h8300.c (print_operand): Handle 'c'.
13136         (iorxor_operator): New.
13137         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
13138         * config/h8300/h8300.md (*iorhi3_zext): Remove.
13139         (*iorsi3_zexthi): Likewise.
13140         (*iorsi3_zextsi): Likewise.
13141         (*xorhi3_zextqi): Likewise.
13142         (*xorsi3_zexthi): Likewise.
13143         (*xorsi3_zextsi): Likewise.
13144         (*ixorhi3_zext): New.
13145         (*ixorsi3_zext_qi): Likewise.
13146         (*ixorsi3_zext_hi): Likewise.
13147
13148 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
13149
13150         * c-incpath.c (remove_component_p, simplify_path): Move back to
13151         cppfiles.c.
13152         (remove_duplicates): Use cpp_simplify_path.
13153         * c-incpath.h (simplify_path): Remove.
13154         * c-lex.c: Don't include c-incpath.h.
13155         (init_c_lex): Remove simplify_path.
13156         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
13157         (find_or_create_entry, validate_pch): Revert.
13158
13159 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
13160
13161         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
13162           an external cpp during compilation.
13163         (option_map): Likewise.
13164         * objc/lang-specs.h (default_compilers): Similarly.
13165         * doc/invoke.texi: Document -no-integrated-cpp flag.
13166
13167 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
13168
13169         * config/h8300/h8300.md (zero_extendqisi2): Change to an
13170         expander.
13171         (*zero_extendqisi2_h8300): New.
13172         (*zero_extendqisi2_h8300hs): New.
13173         (two splitters): New.
13174
13175 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13176
13177         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
13178
13179 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
13180
13181         * config/h8300/h8300.md (a peephole2): Remove dead code.
13182
13183 2003-03-01  Roger Sayle  <roger@eyesopen.com>
13184
13185         PR c++/9367
13186         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
13187         (BT_FN_INT_CONST_STRING_VALIST_ARG,
13188         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
13189         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
13190         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
13191         BT_FN_INT_STRING_CONST_STRING_VAR,
13192         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
13193         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
13194         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
13195         ATTR_NONNULL_3): Also include the nothrow attribute.
13196         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
13197         vsnprintf, vscanf, vsscanf): Don't define attributes here.
13198         * builtins.def (putchar, puts): Make full C89 built-ins.
13199         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
13200         vsscanf, vsnprintf, vsprintf): New built-ins.
13201         * c-common.c (c_common_nodes_and_builtins): Handle new macro
13202         DEF_FUNCTION_TYPE_VAR_3.
13203
13204         * doc/extend.texi: Document these new built-in functions.
13205
13206 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
13207
13208         * config/h8300/h8300.md (a peephole2): New.
13209
13210 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
13211
13212         * predict.c (estimate_bb_frequencies): Correctly set
13213         real_values_initialized after initialization.
13214
13215 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
13216
13217         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
13218         cppinit.o, cppdefault.o, fix-header): Update.
13219         * c-incpath.c: New file.
13220         * c-incpath.h: New file.
13221         * c-lex.c: Include c-incpath.h.
13222         (init_c_lex): Register path simplifier.
13223         * c-opts.c: Include cppdefault.h and c-incpath.h.
13224         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
13225         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
13226         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
13227         (missing_arg, c_common_decode_option): Handle them.
13228         (c_common_post_options): Register include chains.
13229         (print_help): Update.
13230         * cppdefault.h (struct default include): Update.
13231         Move some macros to ...
13232         * cppdefault.c: ... here.
13233         (cpp_include_defaults): Add extra field add_sysroot.
13234         * cppfiles.c (include_file, search_from, find_or_create_entry,
13235         cpp_included, find_include_file, remap_filename): Update for
13236         renaming of search_path to cpp_path, and of the chain headers.
13237         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
13238         * cpphash.h (struct search_path): Move to cpplib.h.
13239         (struct cpp_buffer, struct cpp_reader): Update.
13240         (_cpp_simplify_pathname): Remove.
13241         * cppinit.c: Don't include prefix.h and cppdefault.h.
13242         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
13243         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
13244         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
13245         no_pth, cpp_handle_options): Remove.
13246         (struct pending_option): Remove chain members.
13247         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
13248         cpp_handle_option): Update.
13249         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
13250         (struct cpp_options): Remove quote_include, bracket_include,
13251         include_prefix, include_prefix_len, verbose, ignore_srcdir,
13252         no_standard_includes, no_standard_cplusplus_includes.
13253         (struct cpp_callbacks): Add simplify_path.
13254         (cpp_handle_options): Remove.
13255         * fix-header.c: Include c-incpath.h.
13256         (read_scan_file): Update to use c-incpath functionality.
13257         * doc/passes.texi: Update.
13258
13259 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
13260
13261         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
13262         satisfies EXTRA_CONSTRAINT 'U'.
13263
13264 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
13265
13266         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
13267         register.
13268         (*tst_extzv_memqi_1_n): Change to a splitter.
13269         (a peephole2): Update.
13270
13271 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
13272
13273         * predict.c (estimate_bb_frequencies): Initialize the sreal
13274         constants once per compilation.
13275
13276 2003-02-28  Richard Henderson  <rth@redhat.com>
13277
13278         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
13279
13280 2003-02-28  scott snyder  <snyder@fnal.gov>
13281
13282         * flags.h: Add flag_eliminate_unused_debug_types.
13283         * toplev.c: Add flag_eliminate_unused_debug_types.
13284         (f_options): Add -feliminate-unused-debug-types.
13285         * dwarf2out.c (struct file_table): Add emitted member.
13286         (splice_child_die): Fix the parent pointer for the child being
13287         spliced.
13288         (lookup_filename): Maintain file_table.emitted array.  Don't
13289         output .file directive here.
13290         (maybe_emit_file): (new)
13291         (init_file_table): Set up file_table.emitted.
13292         (dwarf2out_source_line): Use maybe_emit_file.
13293         (dwarf2out_start_source_file): Use maybe_emit_file.
13294         (dwarf2out_init): Use maybe_emit_file.
13295         (prune_unused_types_walk_attribs): (new)
13296         (prune_unused_types_mark): (new)
13297         (prune_unused_types_walk): (new)
13298         (prune_unused_types_prune): (new)
13299         (prune_unused_types): (new)
13300         (dwarf2out_finish): Call prune_unused_types if
13301         flag_eliminate_unused_debug_types is set.
13302         * doc/invoke.texi (Option Summary): Add
13303         -feliminate-unused-debug-types.
13304         (Debugging Options): Likewise.
13305
13306 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
13307
13308         * doc/invoke.texi: Change .pch to .gch.
13309         * cppfiles.c (open_file_pch): Likewise.
13310         * gcc.c (default_compilers): Likewise.
13311
13312 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
13313
13314         * floatlib.c: Remove.
13315
13316 2003-02-28  Jason Merrill  <jason@redhat.com>
13317
13318         * stor-layout.c (variable_size): Leave a "minus 1" outside the
13319         SAVE_EXPR.
13320
13321 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
13322
13323         * config/rs6000/power4.md: Add compare bypass.
13324
13325 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
13326
13327         * config/netbsd.h: Update copyright years.
13328         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
13329         -pthread is specified on the command line.
13330
13331 2003-02-28  Dale Johannesen <dalej@apple.com>
13332
13333         * loop.c (struct movable): Add insert_temp, shrink savemode.
13334         (scan_loop): Accept invariants that require copying; mark as
13335         insert_temp.
13336         (combine_movables): Don't combine insert_temp movables.
13337         (move_movables): Insert copies for insert_temp movables.
13338         Don't record the info based on regno for insert_temp's.
13339
13340 2003-02-28  Joel Sherrill <joel@OARcorp.com>
13341
13342         PR 9638/other
13343         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
13344         this constant defaults to 1.
13345
13346 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
13347
13348         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
13349
13350 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
13351
13352         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
13353         ARMv5e processor, not just for XScale.  Instructions are predicable.
13354         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
13355
13356 2003-02-28  Nick Clifton  <nickc@redhat.com>
13357
13358         * config/arm/arm.c (note_invalid_constants): Change parameter type
13359         from bool to int.
13360
13361 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13362
13363         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
13364         test of bit 7.
13365         (*tst_extzv_memqi_1_n): Likewise.
13366         (a peephole2): New.
13367
13368 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
13369
13370         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
13371         #ifndef __mips16.
13372
13373 2003-02-28  Jan Hubicka  <jh@suse.cz>
13374
13375         * combine.c (gen_lowpart_for_combine): Update handling of
13376         subregs_of_mode
13377         * flow.c (life_analysis, mark_used_regs): Likewise.
13378         * regclass.c (subregs_of_mode): Turn into single bitmap.
13379         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
13380         dealing with subregs_of_mode
13381         * regs.h (subregs_of_mode): Update prototype.
13382
13383 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
13384
13385         * emit-rtl.c (set_reg_attrs_for_parm): New function.
13386         * rtl.h (set_reg_attrs_for_parm): New exported function.
13387         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
13388         set_reg_attrs_from_mem.
13389
13390 2003-02-27  Roger Sayle  <roger@eyesopen.com>
13391             Zack Weinberg <zack@codesourcery.com>
13392
13393         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
13394
13395 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13396
13397         * reload1.c (sext_for_mode): Remove.
13398         (reload_cse_move2add): Use trunc_int_for_mode instead of
13399         sext_for_mode.
13400         (move2add_note_store): Likewise.
13401         Reset register information if we see a set in non-integer
13402         mode.
13403
13404 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
13405
13406         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
13407         option.
13408         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
13409         * config/rs6000/aix51.h: Same.
13410         * config/rs6000/aix52.h: Same.
13411         * config/rs6000/power4.md: Additional VMX bypasses.
13412
13413 2003-02-27   Geert Bosch <bosch@gnat.com>
13414
13415         * toplev.c (print_version): Add indentation for GGC heuristics and
13416         output after printing version information.
13417
13418 2003-02-27  James E Wilson  <wilson@tuliptree.org>
13419
13420         * combine.c (simplify_comparison): Require integral mode when
13421         permuting SUBREG with AND.
13422
13423 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
13424
13425         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
13426
13427 2003-02-27  Nick Clifton  <nickc@redhat.com>
13428
13429         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
13430         deleted when cirrus instructions were added.
13431
13432 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
13433
13434         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
13435         POSIX thread support by default.
13436
13437 2003-02-27  Roger Sayle  <roger@eyesopen.com>
13438
13439         * config/i386/cygwin.h: Don't include any other files directly.
13440         * config/i386/mingw32.h: Don't include cygwin.h directly.
13441         * config.gcc (cygwin, mingw32, uwin): Instead make these files
13442         explicit in the tm_files variable.
13443
13444 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
13445
13446         * config/rs6000/rs6000.md: Add TI constant splitter.
13447
13448 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
13449
13450         * builtins.c (purge_builtin_constant_p): Handle subreg of
13451         constant_p_rtx too.
13452
13453         * function.c (assign_stack_local_1): Truncate constant added to
13454         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
13455
13456 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
13457
13458         * config.gcc: Add power4 to PowerPC with_cpu list.
13459
13460 2003-02-26  Jan Hubicka  <jh@suse.cz>
13461
13462         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
13463
13464 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13465
13466         * gcov-dump.c (print_prefix): Fix signedness warning.
13467         * gcov-io.h (struct counter_section, struct counter_section_data): New.
13468         (struct function_info): n_arc_counts field removed, n_counter_sections,
13469         counter_sections fields added.
13470         (struct gcov_info): arc_counts, n_arc_counts fields removed,
13471         n_counter_sections, counter_sections fields added.
13472         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
13473         profile sections.
13474         * profile.h (MAX_COUNTER_SECTIONS): New.
13475         (struct section_info): New.
13476         (struct profile_info): count_instrumented_edges,
13477         count_edges_instrumented_now fields removed, n_sections, section_info
13478         fields added.
13479         (find_counters_section): Declare.
13480         * profile.c (struct function_list): count_edges field removed,
13481         n_counter_sections, counter_sections fields added.
13482         (set_purpose, label_for_tag, build_counter_section_fields,
13483         build_counter_section_value, build_counter_section_data_fields,
13484         build_counter_section_data_value, build_function_info_fields,
13485         build_function_info_value, build_gcov_info_fields,
13486         build_gcov_info_value): New static functions.
13487         (find_counters_section): New function.
13488         (instrument_edges, get_exec_counts, compute_branch_probabilities,
13489         branch_prob, create_profiler): Modified to support multiple profile
13490         sections.
13491
13492 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13493
13494         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
13495         is 8 * STACK_BOUNDARY.
13496         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
13497
13498 2003-02-26  Michael Matz  <matz@suse.de>
13499
13500         * ra-colorize.c (merge_moves): Fix list handling.
13501
13502 2003-02-26  Nick Clifton  <nickc@redhat.com>
13503
13504         * config/arm/arm.c (is_load_address): Rename to...
13505         (arm_memory_load_p) ... this and make it check for SUBREGs and
13506         constant loads that will be converted into loads from the
13507         minipool.
13508         (is_cirrus_insn): Rename to ...
13509         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
13510         of CIRRUS_NO with CIRRUS_NOT.
13511         (cirrus_reorg): Use renamed functions.
13512         (note_invalid_constants): Change from a void function to bool.
13513         Add an extra parameter, saying whether the fixups should be
13514         pushed.  Return true if fixups are needed.
13515         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
13516         of CIRRUS_NO with CIRRUS_NOT.
13517         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
13518         other floating point co-processors can also affect this.
13519         * config/arm/arm.md ("type" attribute): Add mav_farith and
13520         mav_dmult.  Replace references to "cirrus_type" attribute with
13521         "type".
13522         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
13523         ("cirrus_type" attribute): Delete - use "type" instead.
13524         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
13525         'normal'.
13526
13527 2003-02-25  Jan Hubicka  <jh@suse.cz>
13528
13529         * objc-act.c: Include cgraph.h
13530         (mark_referenced_methods): New function.
13531         (objc_init): Call it.
13532         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
13533
13534         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
13535         mode.
13536
13537         * optabs.c (expand_fix): Do not widen the input operand.
13538
13539         * expr.c (emit_group_store):  Fix crash when converting single
13540         register into complex register.
13541
13542         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
13543         * alias.c: Include timevar.h
13544         (init_alias_analysis):  Set timevar
13545         * jump.c: Include timevar.h
13546         (rebuild_jump_labels):  Set timevar
13547         * regcalss.c: Include timevar.h
13548         (reg_scan):  Set timevar
13549         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
13550
13551 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13552
13553         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
13554
13555         * Makefile.in (loop-unroll.o): New.
13556         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
13557         (unroll_and_peel_loops): Declare.
13558         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
13559         flag_old_unroll_loops.
13560         * loop.c (loop_invariant_p): Ditto.
13561         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
13562         flag_old_unroll_all_loops.
13563         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
13564         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
13565         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
13566         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
13567         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
13568         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
13569         PARAM_MAX_ONCE_PEELED_INSNS): New.
13570         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
13571         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
13572         instead of old one.
13573         (flag_peel_loops): New.
13574         (lang_independent_options): The new flags added.
13575         (rest_of_compilation): Call new unroller.
13576         (process_options): Setup flags for coexistence of old and new unroller.
13577         * doc/invoke.texi: Document new options.
13578         * doc/passes.texi: Document new unroller pass.
13579
13580 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
13581
13582         * fixinc/fixincl.x: Regenerate
13583
13584 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
13585
13586         * function.c (assign_parms): Set reg_attrs for parameters passed in
13587         registers.
13588
13589 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
13590
13591         PR target/9681
13592         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
13593
13594 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
13595
13596         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
13597         pseudo-op.
13598
13599 2003-02-25  Roger Sayle  <roger@eyesopen.com>
13600
13601         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
13602         * cse.c (invalidate_skipped_set):  Likewise.
13603         * integrate.c (subst_constants):  Likewise.
13604         * jump.c (reversed_comparison_code_parts):  Likewise.
13605         * loop.c (canonicalize_condition):  Likewise.
13606         * simplify-rtx.c (simplify_relational_operation):  Likewise.
13607
13608 2003-02-25  Roger Sayle  <roger@eyesopen.com>
13609
13610         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
13611         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
13612         the appropriate macro to define built-in function.
13613         (fmod,fmodf,fmodl): New built-in functions.
13614
13615         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
13616
13617 2003-02-25  Richard Henderson  <rth@redhat.com>
13618
13619         * config/i386/i386.c (function_arg): Pass variable sized
13620         structures correctly on the stack.
13621
13622 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
13623
13624         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
13625         does not reduce the cost of SET.
13626
13627 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13628
13629         PR target/9732
13630         * config/rs6000/rs6000.c (first_reg_to_save): Handle
13631         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
13632         (rs6000_emit_prologue): Likewise.
13633         (rs6000_emit_epilogue): Likewise.
13634         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
13635         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
13636
13637 2003-02-25  Richard Henderson  <rth@redhat.com>
13638
13639         * real.c (real_to_integer2): Force overflow result only for
13640         unsigned overflow.
13641
13642 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
13643
13644         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
13645
13646 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
13647             Richard Henderson  <rth@redhat.com>
13648
13649         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
13650         there is no similar load.
13651
13652 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
13653             Richard Henderson  <rth@redhat.com>
13654
13655         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
13656         sched-rgn.c.
13657         (add_forward_dependence): New function prototype.
13658
13659         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
13660         sched-init.h.
13661         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
13662         them to haifa-sched.c.
13663
13664         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
13665         haifa_classify_insn): Move them from sched-rgn.c.
13666
13667         * sched-deps.c (add_dependence): Return flag of creating a new
13668         entry.
13669         (add_forward_dependence): New function.
13670         (compute_forward_dependences): Use the function.
13671
13672         * sched-ebb.c (earliest_block_with_similiar_load): New function.
13673         (add_deps_for_risky_insns): New function.
13674         (schedule_ebb): Call the function.
13675
13676 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
13677
13678         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
13679         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
13680
13681         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
13682         opaque types fail.
13683
13684         * c-typeck.c (comptypes): Change call to vector_types_compatible
13685         to vector_opaque_p.
13686         (convert_for_assignment): Call vector_opaque_p instead of
13687         vector_types_compatible.
13688         (really_start_incremental_init): Disallow initialization of opaque
13689         types.
13690
13691         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
13692         Define TARGET_VECTOR_OPAQUE_P.
13693         (TARGET_INITIALIZER): Same.
13694
13695         * target.h (struct gcc_target): Remove vector_types_compatible.
13696         Add vector_opaque_p.
13697
13698         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
13699         Remove.
13700         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
13701         a vector type.  Change return type to bool.
13702         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
13703         (TARGET_VECTOR_OPAQUE_P): Define.
13704
13705         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
13706         target hook.
13707         Include target.h.
13708         (cp_parser_init_declarator): Fix typo in function comments.
13709
13710 2003-02-25  Jan Hubicka  <jh@suse.cz>
13711
13712         * Makefile.in (lcm.o):  Add dependency on function.h
13713         * lcm.c (function.h): Include.
13714         * i386.c (machine_function, ix86_stack_locals,
13715         * ix86_save_varrargs_registers) : Move to
13716         ...
13717         * i386.h (machine_function, ix86_stack_locals,
13718         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
13719         (ix86_optimize_mode_switching): New.
13720         * i386.md (fix patterns): Set ix86_optimize_mode_switching
13721
13722 2003-02-25  Nick Clifton  <nickc@redhat.com>
13723
13724         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
13725         of fourth arg is 'fndecl' not 'indirect'.  Update comment
13726         describing the function's parameters.
13727
13728 2003-02-24  Jan Hubicka  <jh@suse.cz>
13729
13730         * combine.c (simplify_shift_const):  Fix previous patch.
13731
13732 2003-02-24  Jeff Law  <law@redhat.com>
13733
13734         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
13735         alternative.
13736         (testsi_1, testhi_1, testqi_1): Likewise.
13737
13738 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13739
13740         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
13741         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
13742         * doc/extend.texi (Tru64 Pragmas): Reflect this.
13743
13744         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
13745         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
13746         * fixinc/fixincl.x: Regenerate.
13747         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
13748         testcase.
13749         Fixes PR c/5059, c/6126, other/9671.
13750
13751 2003-02-24  Roger Sayle  <roger@eyesopen.com>
13752
13753         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
13754         from handle_braces in "%{...}".
13755
13756 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
13757
13758         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
13759         (prepare_move_operands): Handle TLS operands.
13760         (tls_symbolic_operand): New.
13761         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
13762         (legitimize_pic_address): Do nothing for the TLS symbol.
13763         (sh_encode_section_info): Handle TLS case.
13764         (sh_strip_name_encoding): Drop TLS encoding.
13765         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
13766         * config/sh/sh.h (SH_TLS_ENCODING): Define.
13767         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
13768         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
13769         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
13770         * config/sh/sh.md: Define TLS UNSPEC constants.
13771         (type): Add tls_load.
13772         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
13773         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
13774         ("tls_initial_exec"): New insn.
13775         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
13776         ("load_gbr"): New insn.
13777
13778         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
13779         * configure: Regenerate.
13780
13781 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
13782
13783         PR 9297, PR 9722
13784         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
13785         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
13786         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
13787         (enum block_op_methods): Reorder for better store_expr optimization.
13788         * expr.c (store_expr): Test bit 1 of "want_value" for call param
13789         stores, test bit 0 for original want_value meaning.  Pass
13790         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
13791         recursive calls, and calls to expand_param.
13792         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
13793         expected, set target to 0 rather than to subtarget.  Formatting.
13794
13795 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13796
13797         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
13798
13799 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13800
13801         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
13802         new default behavior.
13803         * ggc-common.c: Include sys/resource.h.
13804         (ggc_rlimit_bound): New function.
13805         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
13806         defaults to account for rlimits.
13807
13808 2003-02-22  Richard Henderson  <rth@redhat.com>
13809
13810         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
13811
13812 2003-02-22  Kelley Cook <kelley@dwhoops.info>
13813
13814         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
13815         (ix86_tune_string): Rename from ix86_cpu_string.
13816
13817 2003-02-22  Kelley Cook <kelleycook@comcast.net>
13818
13819         * config/i386/i386.c: Replace "mcpu" with "mtune".
13820         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
13821         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
13822         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
13823         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
13824
13825 2003-02-23  Andreas Schwab  <schwab@suse.de>
13826
13827         * config.gcc: Delete references to m68k/t-linux and
13828         m68k/t-linux-aout.
13829         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
13830
13831 2003-02-22  Jan Hubicka  <jh@suse.cz>
13832
13833         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
13834         of track scheduling patch.
13835
13836 2003-02-22  Jan Hubicka  <jh@suse.cz>
13837
13838         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
13839         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
13840
13841 2003-02-22  Jan Hubicka  <jh@suse.cz>
13842
13843         * c-decl.c (c_expand_body_1): Fix.
13844
13845 2003-02-22  Jan Hubicka  <jh@suse.cz>
13846
13847         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
13848
13849         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
13850         when not optimizing.
13851         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
13852         when not expensive.
13853         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
13854         optimizing;  Delete trivially dead insns early; fix optimize check.
13855
13856         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
13857         dependency on cgraph.h
13858         * c-decl.c: Include cgraph.h
13859         (finish_function): Update call of tree_inlinable_function_p.
13860         * c-objc-common.c: Include cgraph.h
13861         * cgraph.h: New file.
13862         * cgraphunit.c: New file.
13863         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
13864         (cgraph_nodes, cgraph_n_nodes): Globalize.
13865         (cgraph_finalize_function, cgraph_finalize_compilation_unit
13866         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
13867         Move into cgraphunit.c
13868         * tree-inline.c: Include cgraph.h
13869         * tree-inline.c: Include cgraph.h
13870
13871 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
13872
13873         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
13874         for copying a register.
13875
13876 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
13877
13878         PR other/3782
13879         * toplev.c (process_options): If flag_detailed_statistics is set,
13880         then set time_report as well.
13881
13882         PR c/8828
13883         * jump.c (never_reached_warning): Don't fall through BARRRIER
13884         insns.  Update comments to reflect what the function really does.
13885
13886 2003-02-21  Roger Sayle  <roger@eyesopen.com>
13887
13888         * fold-const.c (omit_one_operand): No longer static.
13889         * tree.h (omit_one_operand): Prototype here.
13890         (div_and_round_double): Keep fold-const.c prototypes together.
13891         * builtins.c (builtin_mathfn_code): Handle binary built-in
13892         funtions, such as "pow" and "atan2".
13893         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
13894         Simplify optimizations using "type" the builtin's return type.
13895
13896 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
13897
13898         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
13899         Fix functionalization typo.
13900
13901         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
13902         in an asm.
13903
13904 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13905
13906         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
13907         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
13908         documentation.
13909         * ggc-common.c: Include params.h
13910         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
13911         init_ggc_heuristics): New functions.
13912         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
13913         init_ggc_heuristics): Prototype.
13914         * toplev.c (print_version):  Output GGC heuristics.
13915         (parse_options_and_default_flags): Call init_ggc_heuristics.
13916
13917 2003-02-22  Jan Hubicka  <jh@suse.cz>
13918
13919         * i386.c (def_builtin):  Special case 64bit builtins.
13920         (MASK_SSE164, MASK_SSE264): New constants.
13921         (builtin_description): Add 64bit builtins.
13922         (ix86_init_mmx_sse_builtins): Likewise.
13923         * i386.h (enum ix86_builtins): Likewise.
13924         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
13925         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
13926         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
13927         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
13928         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
13929         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
13930         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
13931
13932 2003-02-22  Jan Hubicka  <jh@suse.cz>
13933
13934         * i386.c (builtin_description): Add __builtin_ia32_paddq and
13935         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
13936          and __builtin_ia32_psubq128.
13937         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
13938         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
13939         (mmx_adddi3, mmx_subdi3): New.
13940         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
13941         * xmmintrin.h (_mm_movepi64_pi64): New.
13942         (_mm_add_epi64, _mm_sub_epi64): fix.
13943         (_mm_mul_pu16): Rename to...
13944         (_mm_mul_su32): ... this one.
13945
13946         * builtins.c (expand_builtin_expect):  Do not predict
13947         flag_guess_branch_prob is not set.
13948         * c-semantics.c (expand_stmt): Likewise.
13949         * predict.c (predict_insn): Likewise.
13950         * stmt.c (expand_continue_loop): Likewise.
13951         * toplev.c (rest_of_compilation): Do not call
13952         note_prediction_to_br_prob and note_prediction_to_br_prob
13953         when not optimizing.
13954
13955 2003-02-21  Jan Hubicka  <jh@suse.cz>
13956
13957         * cfgrtl.c (commit_edge_insertions):  Call
13958         find_many_sub_basic_block only when some code has been emitted.
13959         (commit_edge_insertions_watch_calls): Bring into sync with
13960         commit_edge_insertions
13961
13962 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
13963
13964         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
13965
13966         * sh.md (binary_sf_op): Use extra constant operand instead of
13967         negating constant operand 4.
13968         * sh.c (sh_expand_binop_v2sf): Supply it.
13969
13970 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
13971
13972         * cpphash.h (struct lexer_state): Add directive_wants_padding.
13973         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
13974         for directives of type INCL.
13975         (glue_header_name, parse_include): Use get_token_no_padding.
13976         * cppmacro.c (replace_args): If directive_wants_padding,
13977         provide padding tokens.
13978
13979 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
13980
13981         * config/h8300/h8300.md (a peephole2): New.
13982
13983 2003-02-21  Jan Hubicka  <jh@suse.cz>
13984
13985         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
13986         (commit_edge_insertions): Call find_many_sub_basic_blocks
13987
13988         * reg-stack.c (convert_regs): Cleax aux for blocks.
13989
13990 2003-02-21  Jan Hubicka  <jh@suse.cz>
13991
13992         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
13993
13994 2003-02-21  Glen Nakamura  <glen@imodulo.com>
13995
13996         PR optimization/8613
13997         * builtins.c (expand_builtin): Emit postincrements before expanding
13998         builtin functions.
13999
14000 2003-02-21  Ben Elliston  <bje@redhat.com>
14001
14002         PR other/5634
14003         * doc/install.texi (Configuration): Explain using $HOME instead of
14004         the ~ metacharacter when referring to home directories.
14005
14006 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
14007
14008         * configure.in (TARGET_SYSTEM_ROOT): Set default to
14009         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
14010         '${exec_prefix}' (in addition to the expansion thereof) as
14011         relocatable.
14012         * configure: Rebuilt.
14013
14014 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14015
14016         * config/h8300/h8300.md (addhi3_incdec): Change the name to
14017         *addhi3_incdec.
14018         (addsi3_incdec): Change the name to *addsi3_incdec.
14019
14020 2003-02-20  Roger Sayle  <roger@eyesopen.com>
14021
14022         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
14023
14024 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
14025
14026         PR fortran/9038
14027         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
14028         options to be ignored.
14029         (c_common_decode_option): Ignore them when preprocessing.
14030
14031 2003-02-20  Jan Hubicka  <jh@suse.cz>
14032
14033         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
14034         global variables.
14035         (lang_independent_options):  Add -fsched2-use-superblocks
14036         -fsced2-use-traces.
14037         (rest_of_compilation): Deal with it.
14038         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
14039         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
14040         Declare.
14041         * rtl.h (reg_to_stack):  Update prototype.
14042         * reg-stack.c (reg_to_stack): Return when something has changed;
14043         update liveness when executing after superblock scheduling.
14044
14045         * combine.c (simplify_shift_const):  Simplify few special cases
14046         into constants.
14047
14048 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
14049
14050         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
14051         (add.,subf.,neg.): Change attribute to fast_compare.
14052         All DFA descriptions updated.
14053
14054 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
14055
14056         Change base class access representation.
14057         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
14058         TREE_VIA_PRIVATE): Remove.
14059         (BINFO_BASEACCESSES): New binfo elt.
14060         (BINFO_BASEACCESS): New accessor.
14061         (BINFO_ELTS): Increase.
14062         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
14063         (access_public_node, access_protected_node,
14064         access_private_node): New global nodes.
14065         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
14066         * dbxout.c (dbxout_type): Adjust.
14067         * dwarf2out.c (gen_inheritance_die): Add access parameter.
14068         (gen_member_die): Adjust.
14069         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
14070         (output_type): Adjust.
14071         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
14072
14073         Change base class access representation. Share virtual base
14074         binfos.
14075         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
14076         call.
14077         * cp/class.c (build_base_path): Likewise.
14078         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
14079         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
14080         (make_new_vtable): Adjust.
14081         (force_canonical_binfo_r): Delete.
14082         (force_canonical_binfo): Delete.
14083         (mark_primary_virtual_base): Delete.
14084         (dfs_unshared_virtual_bases): Delete.
14085         (mark_primary_bases): Adjust.
14086         (maybe_warn_about_overly_private_class): Adjust.
14087         (dfs_base_derived_from): Delete.
14088         (base_derived_from): Follow the inheritance chain.
14089         (struct find_final_overrider_data): Add vpath member.
14090         (dfs_find_final_overrider): Adjust.
14091         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
14092         (find_final_overrider): Adjust.
14093         (update_vtable_entry_for_fn): Adjust.
14094         (modify_all_vtables): Adjust.
14095         (walk_subobject_offsets): Adjust.
14096         (layout_nonempty_base_or_field): Adjust.
14097         (layout_empty_base): Remove last parameter. Adjust.
14098         (build_base_field): Adjust.
14099         (build_base_fields): Adjust.
14100         (propagate_binfo_offsets): Remove last parameter. Adjust.
14101         (dfs_set_offset_for_unshared_vbases): Delete.
14102         (layout_virtual_bases): Adjust.
14103         (finish_struct_1): Adjust.
14104         (init_class_processing): Don't init access nodes.
14105         (dfs_get_primary_binfo): Delete.
14106         (get_primary_binfo): Adjust.
14107         (dump_class_hierarchy_r): Remove most derived arg, add IGO
14108         parameter. Adjust.
14109         (dump_class_hierarchy): Adjust.
14110         (finish_vtbls): Adjust.
14111         (get_original_base): Delete.
14112         (build_vtt_inits): Adjust.
14113         (dfs_build_secondary_vptr_vtt_inits): Adjust.
14114         (dfs_ctor_vtable_bases_queue_p): Adjust.
14115         (build_ctor_vtbl_group): Adjust.
14116         (dfs_accumulate_vtbl_inits): Adjust.
14117         (build_vtbl_initializer): Adjust.
14118         (build_vbase_offset_vtbl_entries): Adjust.
14119         (add_vcall_offset_vtbl_entries_1): Adjust.
14120         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
14121         (access_*_node): Remove.
14122         (CANONICAL_BINFO): Delete.
14123         (BINFO_UNSHARED_MARKED): Remove.
14124         (BINFO_MARKED): Set LANG_FLAG_0 directly.
14125         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
14126         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
14127         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
14128         Delete.
14129         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
14130         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
14131         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
14132         Delete.
14133         (BINFO_DEPENDENT_BASE_P): New.
14134         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
14135         index.
14136         (markedp, unmarkedp): Adjust.
14137         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
14138         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
14139         find_vbase_instance, binfo_for_vbase): Delete.
14140         (copied_binfo, original_binfo): Declare.
14141         (finish_base_specifier): Add virtual_p arg.
14142         (unshare_base_binfos): Delete.
14143         (copy_base_binfos): Declare.
14144         (reverse_path): Delete.
14145         * cp/decl.c (xref_basetypes): Access and virtuality passed
14146         differently. Don't copy direct base binfos here. Call
14147         copy_base_binfos.
14148         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
14149         (initialize_vtbl_ptrs): Adjust.
14150         (expand_member_init): Adjust.
14151         * cp/parser.c (cp_parser_base_specifier): Adjust.
14152         * cp/pt.c (instantiate_class_template): Adjust.
14153         (get_template_base_recursive): Adjust.
14154         * cp/rtti.c (get_pseudo_ti_init): Adjust.
14155         (get_pseudo_ti_desc): Adjust.
14156         * cp/tree.c (unshare_base_binfos): Rename to ...
14157         (copy_base_binfos): ... here, reimplement.
14158         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
14159         (reverse_path): Remove.
14160         * cp/typeck.c (get_delta_difference): Adjust error messages.
14161         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
14162         * cp/search.c (lookup_base_r): Adjust.
14163         (dynamic_cast_base_recurse): Adjust.
14164         (canonical_binfo): Remove.
14165         (dfs_canonical_queue): Remove.
14166         (dfs_assert_unmarked_p): Remove.
14167         (assert_canonical_unmarked): Remove.
14168         (shared_marked_p, shared_unmarked_p): Remove.
14169         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
14170         (dfs_access_in_type): Adjust.
14171         (access_in_type): Adjust.
14172         (dfs_accessible_queue_p): Adjust.
14173         (dfs_accessible_p): Adjust.
14174         (is_subobject_of_p_1, is_subobject_of_p): Remove.
14175         (struct lookup_field_info): Remove from_dep_base_p field.
14176         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
14177         (lookup_field_r): Remove dependent base code.
14178         (lookup_member): Likewise.
14179         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
14180         (dfs_unmarked_real_bases_queue_p): Remove.
14181         (dfs_marked_real_bases_queue_p): Remove.
14182         (dfs_skip_vbases): Remove.
14183         (dfs_get_pure_virtuals): Adjust.
14184         (markedp, unmarkedp): Adjust.
14185         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
14186         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
14187         (dfs_unmark): Adjust.
14188         (dfs_get_vbase_types):Remove.
14189         (dfs_build_inheritance_graph_order): Remove.
14190         (get_vbase_types): Remove
14191         (dfs_find_vbase_instance): Remove.
14192         (find_vbase_instance): Remove.
14193         (dfs_debug_unmarkedp): Adjust.
14194         (dependent_base_p): Remove.
14195         (dfs_push_type_decls): Adjust.
14196         (dfs_push_decls): Adjust.
14197         (dfs_no_overlap_yet): Adjust.
14198         (copied_binfo): New function.
14199         (original_binfo): New function.
14200         (binfo_for_vbase): Remove.
14201
14202         Change base class access representation.
14203         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
14204         (add_interface_do): Likewise.
14205
14206 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
14207
14208         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
14209         * config/rs6000/power4.md (power4-store,power4-vecstore): New
14210         insn reservations.
14211         (power4-fpstore): Compact.
14212
14213 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14214
14215         * config/h8300/h8300.md (*iorsi3_w): New.
14216
14217 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
14218
14219         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
14220         * rtl.c (reg_note_name): Likewise.
14221         * rtl.h (enum reg_note): Likewise.
14222         * doc/invoke.texi: Likewise.
14223         * doc/rtl.texi: Likewise.
14224
14225 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
14226
14227         * bb-reorder.c (find_traces_1_round): Fix comment typo.
14228
14229 2003-02-19  Roger Sayle  <roger@eyesopen.com>
14230
14231         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
14232         addition in the presence of signaling NaNs.
14233
14234 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
14235
14236         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
14237
14238 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14239
14240         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
14241         ORing with 0xffff??00 with the highest bit of the ?? part set.
14242         (compute_logical_op_length): Update.
14243         (compute_logical_op_cc): Likewise.
14244
14245 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
14246
14247         * bb-reorder.c (find_traces_1_round): Fixed condition for small
14248         destination block with multiple predecessors.
14249         (connect_traces): Check whether the block is a start of trace.
14250
14251 2003-02-19  Jan Hubicka  <jh@suse.cz>
14252
14253         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
14254         * function.c (assign_params): Likewise.
14255         * arm-protos.h (arm_init_cumulative_args): Update prototype.
14256         * arm.c (arm_init_cumulative_args): Update function.
14257         * arm.h (INIT_CUMULATIVE_ARGS): Update.
14258         * avr-protos.h (init_cumulative_args): Update prototype.
14259         * avr.c (init_cumulative_args): Update function.
14260         * avr.h (INIT_CUMULATIVE_ARGS): Update.
14261         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
14262         * d30v.c (d30v_init_cumulative_args): Update function.
14263         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
14264         * frv-protos.h (frv_init_cumulative_args): Update prototype.
14265         * frv.c (frv_init_cumulative_args): Update function.
14266         * frv.h (INIT_CUMULATIVE_ARGS): Update.
14267         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
14268         * pa.h (INIT_CUMULATIVE_ARGS): Update.
14269         * sparc-protos.h (init_cumulative_args): Update prototype.
14270         * sparc.c (init_cumulative_args): Update function.
14271         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
14272         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
14273
14274 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14275
14276         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
14277         (*ashiftsi_sextqi_7): Likewise.
14278
14279 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14280
14281         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
14282         ISO C99 and C++.
14283
14284         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
14285         for C++ on IRIX 6.5.1[89].
14286         * fixinc/tests/base/internal/sgimacros.h: New file.
14287
14288         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
14289         * fixinc/tests/base/internal/wchar_core.h: New file.
14290
14291         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
14292         socklen_t definition.
14293         * fixinc/fixincl.x: Regenerate.
14294         * fixinc/tests/base/sys/socket.h: New file.
14295         Fixes PR libgcj/9652.
14296
14297 2003-02-19  Jan Hubicka  <jh@suse.cz>
14298
14299         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
14300
14301 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
14302
14303         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
14304         align_jumps_max_skip and align_loops_max_skip.
14305
14306 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
14307
14308         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
14309         test size if named section.
14310
14311 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
14312
14313         * expr.c (expand_expr): Use gen_int_mode for the argument
14314         to gen_rtx_MULT.
14315
14316 2003-02-19  Jan Hubicka  <jh@suse.cz>
14317
14318         * i386.md (cosxf2):  Fix conditional.
14319
14320 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14321
14322         * config/h8300/h8300.md (extendqisi2): Change to an expander.
14323         (*extendqisi2_h8300): New.
14324         (*extendqisi2_h8300hs): Likewise.
14325
14326 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14327
14328         * config/h8300/h8300-protos.h: Update the prototype for
14329         split_adds_subs.  Remove the prototypes for
14330         const_int_le_2_operand and const_int_le_6_operand.
14331         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
14332         (const_int_le_2_operand): Remove.
14333         (const_int_le_6_operand): Likewise.
14334         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
14335         for const_int_le_2_operand and const_int_le_6_operand.
14336         * config/h8300/h8300.md: Update all uses of split_adds_subs.
14337         (a peephole2): New.
14338
14339 2003-02-18  Jan Hubicka  <jh@suse.cz>
14340
14341         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
14342         (cgraph_expand_function): Rewrite.
14343
14344 2003-02-18  Matt Austern <austern@apple.com>
14345
14346         * toplev.c, langhooks.c, langhooks-def.h: Move
14347         write_global_declarations from toplev.c to langhooks.c.
14348
14349 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14350
14351         * config/h8300/h8300.c (general_operand_src): Always check
14352         MODE.
14353         (general_operand_dst): Likewise.
14354
14355 2003-02-18  Roger Sayle  <roger@eyesopen.com>
14356
14357         * convert.c (convert_to_real): Also optimize (float)log(x) into
14358         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
14359
14360 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
14361
14362         * config/sh/sh.c (unspec_caller_rtx_p): New.
14363         (sh_cannot_copy_insn_p): New.
14364         (TARGET_CANNOT_COPY_INSN_P): New.
14365
14366 2003-02-18  Richard Henderson  <rth@redhat.com>
14367
14368         * c-common.c (handle_used_attribute): Accept static data too.
14369
14370 2003-02-18  Nick Clifton  <nickc@redhat.com>
14371             Aldy Hernandez  <aldyh@redhat.com>
14372
14373         * testsuite/gcc.dg/20030218-1.c: New.
14374
14375         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
14376
14377         * target-def.h (TARGET_INITIALIZER): Add
14378         TARGET_VECTOR_TYPES_COMPATIBLE.
14379         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
14380
14381         * target.h (struct gcc_target): Add field vector_types_compatible.
14382
14383         * c-typeck.c (comptypes): Take into account
14384         TARGET_VECTOR_TYPES_COMPATIBLE.
14385         (convert_for_assignment): Same.
14386
14387         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
14388         (rs6000_spe_vector_types_compatible): New.
14389         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
14390
14391 2003-02-19  Andreas Schwab  <schwab@suse.de>
14392
14393         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
14394         * toplev.c: Include langhooks-def.h.
14395
14396 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
14397
14398         * config/mips/mips.h (enum processor_type): Sort entries
14399         alphabetically.
14400         * config/mips/mips.md (define_attr cpu): Sync with processor_type
14401         enum values, including adding entries that were missing.
14402
14403 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
14404
14405         * sh.c (calc_live_regs): Also check GET_CODE when checking if
14406         initial value for PR_REG is still the PR_REG register.
14407
14408 2003-02-18  Jim Wilson  <wilson@redhat.com>
14409
14410         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
14411         instruction in output template.
14412         (bsp_value): Change output template from string to C code, add %,
14413         before actual instruction.
14414         (flushrs): Mark as not predicable.
14415
14416 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
14417
14418         * inclhack.def (netbsd_bogus_semicolon): New fix.
14419         * fixincl.x: Rebuilt.
14420         * tests/base/ctype.h: Update.
14421
14422 2003-02-18  Roger Sayle  <roger@eyesopen.com>
14423
14424         * fold-const.c (negate_expr_p): New function to determine whether
14425         an expression can be negated cheaply.
14426         (fold) [MINUS_EXPR]: Use it to determine whether to transform
14427         -A - B into -B - A for floating point types.
14428
14429 2003-02-18  Roger Sayle  <roger@eyesopen.com>
14430
14431         * sbitmap.c (sbitmap_resize): New function.
14432         * sbitmap.h (sbitmap_resize): Prototype here.
14433         * recog.c (split_all_insns): Use sbitmap_resize.
14434
14435 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14436
14437         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
14438         insn length.
14439         (extendqisi2): Likewise.
14440         (*extendhisi2_h8300): Likewise.
14441
14442 2003-02-18  Matt Austern <austern@apple.com>
14443
14444         * langhooks.h, langhooks-def.h: introduce new langhook,
14445         final_write_globals, with write_global_declarations as default.
14446         * toplev.c: Move invocation of wrapup_global_declarations from
14447         compile_file to new function, write_global_declarations.  Change
14448         compile_file to use final_write_globals hook.  Change
14449         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
14450         conditional.
14451
14452 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14453
14454         * pa.md: Correct and enhance comment.
14455
14456 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
14457
14458         * gcc.c (validate_switches): Don't scan past closing '}'.
14459
14460 2003-02-18  Ben Elliston  <bje@redhat.com>
14461
14462         PR c++/1607
14463         * doc/extend.texi (Function Attributes): Document the effect of
14464         the C++ "this" parameter on the counting of arguments for the
14465         "format" and "format_arg" attributes.
14466
14467 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
14468
14469         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
14470         (__ev_stdw): Same.
14471         (__ev_stdh): Same.
14472
14473 2003-02-17  Jan Hubicka  <jh@suse.cz>
14474
14475         * recog.c (split_all_insns):  Fix memory overflow.
14476
14477 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14478
14479         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
14480         (cmphi): Likewise.
14481         (*cmphi_h8300): Likewise.
14482         (*cmphi_h8300hs): Likewise.
14483         (cmpsi): Likewise.
14484         (7 peephole2): Likewise.
14485
14486 2003-02-16  Jan Hubicka  <jh@suse.cz>
14487
14488         * c-typeck.c (build_c_cast):  Fold constant variables into
14489         initial values.
14490
14491 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14492
14493         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
14494         (Binaries): Ditto for Sinix/Reliant Unix.
14495
14496 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
14497
14498         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
14499         not overlap the final result register.
14500
14501 2003-02-16 Arend Bayer <arend.bayer@web.de>
14502            Richard Henderson  <rth@redhat.com>
14503
14504         PR c/8068
14505         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
14506         rearrange mult arguments for less recursion.
14507         (extract_muldiv): New.  Prevent runaway recursion.
14508
14509 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
14510
14511         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
14512         MASK_ALIGN_DOUBLE.
14513
14514 2003-02-15  Roger Sayle  <roger@eyesopen.com>
14515
14516         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
14517         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
14518         (ext_80387_constants_table): Global table of 80387 special constants
14519         guarded by ext_80387_constants_init flag when not initialized.
14520         (init_ext_80387_constants): New function to initialize this table.
14521         (standard_80387_constant_p): Extend to recognize extra 80387
14522         constants, in XFmode, on processors where this is a win.
14523         (standard_80387_constant_opcode): New function to return the
14524         opcode associated with standard_80387_constant_p.
14525         (standard_80387_constant_rtx): New function to return the XFmode
14526         CONST_DOUBLE associated with standard_80387_constant_p.
14527         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
14528
14529         * config/i386/i386-protos.h (standard_80387_constant_opcode):
14530         Prototype here.
14531         (standard_80387_constant_rtx): Likewise.
14532
14533         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
14534         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
14535         *movtf_integer): Simplify using new standard_80387_constant_opcode.
14536
14537 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
14538
14539         * doc/invoke.texi (Optimize Options): Correct @option syntax.
14540
14541 2003-02-15  Richard Henderson  <rth@redhat.com>
14542
14543         * Makefile.in (cfglayout.o): Depend on TARGET_H.
14544         * cfglayout.c: Include target.h.
14545         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
14546         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
14547         * target.h (struct gcc_target): Add cannot_copy_insn_p.
14548
14549         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
14550         (TARGET_CANNOT_COPY_INSN_P): New.
14551         (override_options): Revert 2003-02-08 hack.
14552
14553 2003-02-15  Richard Henderson  <rth@redhat.com>
14554
14555         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
14556         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
14557
14558 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
14559
14560         * config/rs6000/rs6000.h (processor_type): Add PPC440.
14561         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
14562         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
14563         TARGET_SCHED_VARIABLE_ISSUE): Define.
14564         (rs6000_use_dfa_pipeline_interface): New function.
14565         (rs6000_multipass_dfa_lookahead): New Function.
14566         (rs6000_variable_issue): New function.
14567         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
14568         (rs6000_issue_rate): Add PPC440.
14569         * config/rs6000/rs6000.md (unspec list): Correct typo.
14570         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
14571         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
14572         cmp, delayed_cr, mfcr, mtcr.
14573         (automata_option): Set "ndfa".
14574         (extendMMNN2): Update attributes.
14575         (movcc_internal1): Discourage move to non-cr0.  Update
14576         attributes.
14577         (movMM_update): Update attributes.
14578         (cmpMM_internal): Update attributes.
14579         (sCC CR materialization): Update attributes.
14580         (branch patterns): Do not discourage non-cr0.
14581         (cr logical patterns): Prefer destructive register allocation.
14582         Update attributes.
14583         (movesi_from_cr): Update attribute.
14584         (mtcrf_operation): Update attribute.
14585         (mtcrfsi): Update attribute.
14586         * config/rs6000/40x.md: New file.
14587         * config/rs6000/603.md: New file.
14588         * config/rs6000/6xx.md: New file.
14589         * config/rs6000/7450.md: New file.
14590         * config/rs6000/7xx.md: New file.
14591         * config/rs6000/mpc.md: New file.
14592         * config/rs6000/power4.md: New file.
14593         * config/rs6000/rios1.md: New file.
14594         * config/rs6000/rios2.md: New file.
14595         * config/rs6000/rs64.md: New file.
14596         [Some DFA descriptions based on work by Michael Hayes]
14597
14598 2003-02-15  Richard Henderson  <rth@redhat.com>
14599
14600         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
14601         successors with multiple predecessors.
14602         (connect_traces): Try harder to copy traces of length 1.
14603
14604         * function.h (struct function): Add computed_goto_common_label,
14605         computed_goto_common_reg.
14606         * function.c (free_after_compilation): Zap them.
14607         * stmt.c (expand_computed_goto): Use them to produce one
14608         indirect branch per function.
14609
14610 2003-02-15  Richard Henderson  <rth@redhat.com>
14611
14612         * cfgcleanup.c: Include params.h.
14613         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
14614         too many outgoing edges from a block.
14615         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
14616         * params.def (max-crossjump-edges): New.
14617         * doc/invoke.texi: Document it.
14618
14619 2003-02-15  Richard Henderson  <rth@redhat.com>
14620
14621         * recog.c (split_all_insns): Include new blocks in life update;
14622         do a global life update.
14623
14624 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
14625
14626         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
14627         Update copyright.
14628         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
14629         -mno-cygwin case.
14630
14631 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
14632
14633         PR optimization/7702
14634         * reload1.c (reload_cse_simplify_set): Honor
14635         CANNOT_CHANGE_MODE_CLASS.
14636
14637 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
14638
14639         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
14640         function.
14641         * config/mn10300/mn10300-protos.h: Declare it.
14642         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
14643         attribute cc of instructions that may use clr.
14644
14645 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
14646
14647         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
14648         (x - (x & y)) is found.
14649
14650 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14651
14652         * configure.in: Fix typo.
14653         * configure: Regenerate.
14654
14655 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
14656
14657         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
14658
14659 2003-02-13  Adam Nemet  <anemet@lnxw.com>
14660
14661         PR opt/2391
14662         * combine.c: Fix spelling in comment.
14663         (cached_nonzero_bits): New function.
14664         (cached_num_sign_bit_copies): New function.
14665         (nonzero_bits_with_known): New macro.
14666         (num_sign_bit_copies_with_known): New macro.
14667         (nonzero_bits1): Rename from nonzero_bits.  Add three new
14668         arguments.  Change calls from nonzero_bits to
14669         nonzero_bits_with_known.
14670         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
14671         three new arguments.  Change calls from num_sign_bit_copies to
14672         num_sign_bit_copies_with_known.
14673         (nonzero_bits): New macro.
14674         (num_sign_bit_copies): New macro.
14675         (update_table_tick): Don't traverse identical subexpression more
14676         than once.
14677         (get_last_value_validate): Likewise.
14678
14679 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
14680
14681         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
14682         * function.h (struct emit_status): Length of regno_pointer_align
14683         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
14684         not regno_pointer_align_length (i.e. length actually used, not
14685         length as allocated)
14686
14687         * config/i386/i386.c (struct stack_local_entry): New.
14688         (struct machine_function): Replace huge array with alist.
14689         (assign_386_stack_local): Change to match.
14690
14691 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
14692
14693         * inclhack.def (hpux_long_double): Tighten select and add bypass
14694         regexp.
14695         * fixincl.x: Rebuilt.
14696
14697 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
14698
14699         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
14700         edge and block ends with a jump insn it must be simple jump.
14701
14702 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
14703
14704         * Makefile.in (PREPROCESSOR_DEFINES): Add
14705         @TARGET_SYSTEM_ROOT_DEFINE@.
14706         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
14707         is specified or if building a cross compiler.
14708         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
14709         if the sysroot is under $exec_prefix.
14710         * configure: Regenerated.
14711         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
14712         defined.
14713         (struct default_include): Add add_sysroot field.
14714         (cpp_SYSROOT): Declare.
14715         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
14716         field.
14717         (cpp_SYSROOT): New variable.
14718         * cppinit.c (cpp_create_reader): Initialize
14719         CPP_OPTION (pfile, sysroot).
14720         (init_standard_includes): Handle add_sysroot.  Do not
14721         add unrelocated copies of relocated directories.
14722         (COMMAND_LINE_OPTIONS): Add -isysroot.
14723         (cpp_handle_option): Handle -isysroot.
14724         * cpplib.h (struct cpp_options): Add sysroot member.
14725         * gcc.c (The Specs Language): Update description of %I.
14726         (target_system_root_changed): New variable.
14727         (process_command): Conditionalize make_relative_prefix call
14728         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
14729         target_system_root_changed.
14730         (do_spec_1): Add -isysroot to %I.
14731         * doc/invoke.texi (Spec Files): Update description of %I.
14732         * doc/install.texi (--with-sysroot): Update comment about
14733         relocation.
14734
14735 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
14736
14737         * config/h8300/h8300.md (a peephole2): New.
14738
14739 2003-02-13  Robert Lipe <robertlipe@usa.net>
14740             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14741
14742         * doc/install.texi (Specific): Update three SCO-related URLs.
14743
14744 2003-02-13  Andreas Schwab  <schwab@suse.de>
14745
14746         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
14747         Parenthesize properly.
14748         (NPREDECESORS): Parenthesize properly.
14749
14750 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14751
14752         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
14753
14754 2003-02-12  Roger Sayle  <roger@eyesopen.com>
14755
14756         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
14757         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
14758
14759         * reg-stack.c (subst_stack_regs_pat): Add support for binary
14760         UNSPEC instructions (e.g. "fpatan").
14761
14762 2003-02-12  Mike Stump  <mrs@apple.com>
14763
14764         * varray.c (element_size): Remove.
14765         (uses_ggc): Remove.
14766         (element): Add.
14767         (varray_init): Use new interface.
14768         (varray_grow): Use new interface.
14769         (varray_clear): Use new interface.
14770
14771 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
14772
14773         * config/rs6000/spe.h: Add casts to the arguments of the following
14774         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
14775         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
14776         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
14777         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
14778         __ev_get_u16, __ev_get_s16.
14779
14780 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
14781
14782         * config/h8300/h8300.md (a peephole2): New.
14783
14784 2003-02-12  Jan Hubicka  <jh@suse.cz>
14785
14786         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
14787         (OBJS): Add callgraph.o
14788         (callgraph.o): New.
14789         * c-decl.c (expand_body_1): Break out from ...
14790         (expand_body): This one;  change calling convention
14791         (finish_function): Move some of expand_body logic here.
14792         (c_expand_deferred_function): Update call of expand_body
14793         (c_expand_stmt): Use c_expand_body_1.
14794         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
14795         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
14796         * c-tree.h (c_expand_body): Declare.
14797         * callgraph.c: New file.
14798         * flags.h (flag_unit_at_a_time): Declare.
14799         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
14800         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
14801         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
14802         * langhooks.h (struct lang_hooks_for_callgraph): New.
14803         (struct lang_hooks): Add callgraph field.
14804         * toplev.c (flag_unit_at_a_time): New.
14805         (lang_independent_options): Add flag_unit_at_a_time.
14806         (process_options): Disable unit-at-a-time mode for frontends not
14807         supporting callgraph.
14808         * tree-inline.c (typedef struct inline_data): Add "decl"
14809         (expand_call_inline): Update callgraph.
14810         (optimize_inline_calls): Set id.decl.
14811         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
14812         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
14813         cgraph_calls_p): Declare.
14814         * invoke.texi (-funit-at-a-time): Document
14815
14816 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
14817
14818         * config/rs6000/spe.h: Fix misc formatting.
14819         (__ev_create_ufix32_fs): Cast ev argument.
14820         (__ev_create_sfix32_fs): Same.
14821         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
14822         (__ev_get_ufix32_fs_internal): Same.
14823
14824 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
14825
14826         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
14827         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
14828
14829 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
14830
14831         * cpplib.c (do_include_common): Move warnings for
14832         #include_next and #import out to callers.  Use early-return
14833         instead of nested ifs.  Don't do check_eol here.
14834         (parse_include): Do check_eol here with the rest of the
14835         parsing stuff.
14836         (do_include_next, do_import): Now handle warnings.
14837
14838 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14839
14840         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
14841
14842 2003-02-12  Jan Hubicka  <jh@suse.cz>
14843
14844         * predict.c (estimate_probability):  Fix roundoff error.
14845
14846 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
14847
14848         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
14849         (two peephole2): New.
14850
14851 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
14852
14853         * config/h8300/h8300.md (several peephole2): Replace
14854         find_regno_note with peep2_reg_dead_p.
14855
14856 2003-02-11  Richard Henderson  <rth@redhat.com>
14857
14858         * gcse.c (lookup_set): Remove unused argument PAT.  Update
14859         both callers.
14860
14861 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
14862
14863         * diagnostic.c (real_abort): New.
14864         (diagnostic_report_diagnostic): Call real_abort on error.
14865         * diagnostic.h (diagnostic_abort_on_error): New.
14866         (struct diagnostic_context): Add abort_on_error field.
14867         * toplev.c (setup_core_dumping): New.
14868         (decode_d_option): Handle 'H' case.
14869         * doc/invoke.texi (Debugging Options): Document -dH.
14870
14871 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
14872
14873         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
14874         which refers to obsolete directories.
14875
14876 2003-02-11  Richard Henderson  <rth@redhat.com>
14877
14878         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
14879
14880 2002-10-21  Jan Hubicka  <jh@suse.cz>
14881
14882         * i386.c (contains_128bit_aligned_vector_p): New function.
14883         (ix86_function_arg_boundary): Properly align vector modes.
14884
14885 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
14886
14887         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
14888         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
14889         as a SET pattern.
14890
14891 2003-02-11  Roger Sayle  <roger@eyesopen.com>
14892
14893         * builtins.c:  Fix failure caused by commiting wrong patch.
14894
14895 2003-02-11  Dale Johannesen  <dalej@apple.com>
14896         * ra-build.c (compare_and_free_webs):  Relax checking.
14897         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
14898         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
14899
14900 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
14901
14902         PR optimization/9651
14903         * rtlanal.c (may_trap_p): Handle FIX.
14904
14905 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
14906
14907         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
14908         * doc/invoke.texi: Extra alias.
14909
14910 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
14911
14912         * config/rs6000/host-darwin.c: Fix comment.
14913
14914 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
14915
14916         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
14917         predicate for mod result.
14918
14919 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14920
14921         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
14922         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
14923         * fixincl.x: Rebuilt.
14924         * tests/base/stdlib.h: Update.
14925         * tests/base/ctype.h: New file.
14926
14927 2003-02-11  Jan Hubicka  <jh@suse.cz>
14928
14929         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
14930
14931 2003-02-11  Richard Henderson  <rth@redhat.com>
14932
14933         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
14934         appropriated as globals.
14935         (ix86_expand_clrstr): Similarly.
14936         * config/i386/i386.md (cmpstrsi): Similarly.
14937
14938 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
14939
14940         * config/h8300/h8300.md (a peephole2): Add a case of 255.
14941
14942 2003-02-11  Roger Sayle  <roger@eyesopen.com>
14943
14944         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
14945         (pow_optab, atan2_optab): Define corresponding macros.
14946         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
14947         * genopinit.c (optabs): Implement pow_optab and atan2_optab
14948         using pow?f3 and atan2?f3 patterns.
14949         * builtins.c (expand_errno_check): New function to update errno
14950         if necessary, split out from expand_builtin_mathfn.
14951         (expand_builtin_mathfn): Use expand_errno_check.
14952         (expand_builtin_mathfn_2): New function to handle expanding binary
14953         math functions, reusing the code in expand_errno_check.
14954         (expand_builtin): Handle the pow and atan2 math built-ins,
14955         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
14956         expand_builtin_mathfn_2.
14957
14958         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
14959
14960 2003-02-11  Jan Hubicka  <jh@suse.cz>
14961
14962         * combine.c (combine_simplify_rtx): Fix folding of
14963         nested float_truncates.
14964
14965 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
14966
14967         * config/h8300/h8300.md (a peephole2): Fix a typo.
14968
14969 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
14970
14971         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
14972         register number.
14973
14974 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
14975
14976         * config/h8300/h8300-protos.h: Add a prototype for
14977         gtuleu_operator.
14978         * config/h8300/h8300.c (gtuleu_operator): New.
14979         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
14980         * config/h8300/h8300.md (a peephole2): New.
14981
14982 2003-02-11  Jan Hubicka  <jh@suse.cz>
14983
14984         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
14985
14986 2003-02-11  Jan Hubicka  <jh@suse.cz>
14987
14988         * predict.c (choose_function_section): Choose sections correctly.
14989
14990 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14991
14992         * reload1.c (first_label_num): New.
14993         (reload): Index offsets_known_at and offsets_at using difference of
14994         label number and first label number.  Don't use offset pointers.
14995         (set_label_offsets, set_initial_label_offsets): Likewise.
14996
14997 2003-02-10  Roger Sayle  <roger@eyesopen.com>
14998
14999         * mips-tfile.c (init_file): Add missing initializers in the
15000         "#ifdef __alpha" case.
15001         (file_offset, max_file_offset): Declare as unsigned long.
15002         (write_varray): Cast to "unsigned long" in comparisons against
15003         either file_offset or max_file_offset.
15004         (write_object): Likewise.
15005         (read_seek): Likewise.
15006         (copy_object): Likewise. Declare "ifd" as int to match its use
15007         in add_ext_symbol, and avoid signed/unsigned conditional warning.
15008
15009 2003-02-10  Nick Clifton  <nickc@redhat.com>
15010             Aldy Hernandez  <aldyh@redhat.com>
15011
15012         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
15013         override options which have been specified on the command line.
15014
15015 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15016
15017         * config/h8300/h8300.md (abssf2): New.
15018         (*abssf2_h8300): Likewise.
15019         (*abssf2_h8300hs): Likewise.
15020
15021 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
15022
15023         * tree.c (build_tree_list):  Fix parameter names in comment.
15024
15025 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
15026
15027         * config/rs6000/ppc64-fp.c: New file.
15028         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
15029
15030 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
15031
15032         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
15033         * bb-reorder.c (make_reorder_chain): Deleted.
15034         (make_reorder_chain_1): Deleted.
15035         (find_traces): New function.
15036         (rotate_loop): New function.
15037         (mark_bb_visited): New function.
15038         (find_traces_1_round): New function.
15039         (copy_bb): New function.
15040         (bb_to_key): New function.
15041         (better_edge_p): New function.
15042         (connect_traces): New function.
15043         (copy_bb_p): New function.
15044         (get_uncond_jump_length): New function.
15045         (reorder_basic_blocks): Use new functions (Software Trace Cache).
15046         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
15047         boundaries.
15048
15049 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
15050
15051         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
15052
15053 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
15054
15055         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
15056         (DECL_LIVE_RANGE_RTL): Remove.
15057
15058 2003-02-10  Nick Clifton  <nickc@redhat.com>
15059
15060         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
15061         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
15062         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
15063         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
15064         config/arm/freebsd.h, config/arm/linux-elf.h,
15065         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
15066         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
15067         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
15068         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
15069         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
15070         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
15071         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
15072         and reformat as appropriate.
15073
15074 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15075
15076         * config/h8300/clzsi2.c: Remove.
15077         * config/h8300/ctzsi2.c: Likewise.
15078         * config/h8300/paritysi2.c: Likewise.
15079         * config/h8300/popcountsi2.c: Likewise.
15080         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
15081         ctzsi2, paritysi2, and popcountsi2.
15082
15083 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
15084             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
15085
15086         PR c/7741
15087         * c-decl.c (duplicate_decls): Discard the initializer of the
15088         new decl when the types are conflicting.
15089
15090 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
15091
15092         * Makefile.in (sreal.o): Added.
15093         (predict.o): Depends on sreal.h instead of real.h.
15094         * sreal.c: New file.
15095         * sreal.h: New file.
15096         * predict.c: Use sreal.c instead of real.c.
15097
15098 2003-02-10  Nick Clifton  <nickc@redhat.com>
15099
15100         * Contributed support for the Cirrus EP9312 "Maverick"
15101         floating point co-processor.  Written by Aldy Hernandez
15102         <aldyh@redhat.com>.
15103         (config/arm/arm.c): Add Cirrus support.
15104         (config/arm/arm.h): Likewise.
15105         (config/arm/aout.h): Likewise.
15106         (config/arm/arm.md): Likewise.
15107         (config/arm/arm-protos.h): Likewise.
15108         (config.gcc): Likewise.
15109         (doc/invoke.texi): Describe new -mcpu value and new
15110         -mcirrus-fix-invalid-insns switch,
15111         (cirrus.md): New file.
15112
15113 2003-02-10  Jan Hubicka  <jh@suse.cz>
15114
15115         * combine.c (combine_simplify_rtx): Simplify using
15116         (float_truncate (float x)) is (float x)
15117         (float_extend (float_extend x)) is (float_extend x).
15118
15119 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
15120
15121         * calls.c (try_to_integrate): Tidy stack_usage_map access.
15122         (emit_library_call_value_1): Likewise.  Formatting.
15123         (store_one_arg): Likewise.
15124
15125 2003-02-09  Nick Clifton  <nickc@redhat.com>
15126             Aldy Hernandez  <aldyh@redhat.com>
15127
15128         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
15129         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
15130         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
15131         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
15132         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
15133         docs.  Add range test for immediate value.
15134
15135 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
15136
15137         Rename spe_evxor to xorv2si3.
15138         (xorv4hi3): New.
15139         (xorv1di3): New.
15140
15141 2003-02-10  Glen Nakamura  <glen@imodulo.com>
15142
15143         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
15144         tag.
15145
15146 2003-02-10  Jan Hubicka  <jh@suse.cz>
15147
15148         * i386.c (vector_move_operand): New predicate.
15149         (ix86_expand_vector_move): Be happy about 0.
15150         * i386.h (PREDICATE_CODES): Add sse-move_operand.
15151         * i386.md (mov*_internal): Add 'C' alternative.
15152
15153 2003-02-09  Jan Hubicka  <jh@suse.cz>
15154
15155         * i386.md (floathi*): Deal with SSE.
15156
15157 2003-02-09  Jan Hubicka  <jh@suse.cz>
15158
15159         * simplify-rtx.c (simplify_unary_operation,
15160         simplify_binary_operation):  Deal with vector modes
15161         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
15162
15163 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
15164
15165         * toplev.c (rest_of_compilation): Recompute register usage after
15166         split_all_insns.
15167
15168 2003-02-09  Richard Henderson  <rth@redhat.com>
15169
15170         * libgcc-std.ver (__clztf2): New.
15171         (__ctztf2, __popcounttf2, __paritytf2): New.
15172         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
15173         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
15174         adjust code to match the different type sizes.
15175         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
15176         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
15177
15178         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
15179         TImode; select word_mode and twice that.
15180         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
15181         select the modes from float, double, and long double.
15182         (init_optabs): Remove duplicate initializations.
15183
15184 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
15185
15186         * doc/install.texi: Squeeze and streamline section on
15187         testing and regression checking.
15188
15189 2003-02-09  Jan Hubicka  <jh@suse.cz>
15190
15191         * i386.md (ahi?v*3): Set third operand type to TImode.
15192         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
15193
15194         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
15195         integer mode.
15196
15197         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
15198         Change code so they are arithmetic expressions now.
15199         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
15200         simplify_ternary_operation): Deal with VEC_* expressions.
15201
15202         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
15203
15204 2003-02-08  Jan Hubicka  <jh@suse.cz>
15205
15206         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
15207         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
15208         possibly got duplicated.
15209
15210 2003-02-08  Richard Henderson  <rth@redhat.com>
15211
15212         * config/alpha/alpha.c (override_options): Turn off explicit
15213         relocs until post-peep2 code duplication resolved.
15214
15215 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15216
15217         * optabs.c (expand_unop): Widen clz properly when clz is done
15218         via libcall.
15219
15220 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15221
15222         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
15223         * config/h8300/crti.asm: Likewise.
15224         * config/h8300/crtn.asm: Likewise.
15225         * config/h8300/ctzsi2.c: Likewise.
15226         * config/h8300/fixunssfsi.c: Likewise.
15227         * config/h8300/h8300-protos.h: Likewise.
15228         * config/h8300/h8300.c: Likewise.
15229         * config/h8300/h8300.h: Likewise.
15230         * config/h8300/h8300.md: Likewise.
15231         * config/h8300/paritysi2.c: Likewise.
15232         * config/h8300/popcountsi2.c: Likewise.
15233         * config/h8300/rtems.h: Likewise.
15234
15235 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15236
15237         * doc/invoke.texi: Documentation for my previous commit.
15238         * doc/passes.texi: Ditto.
15239
15240 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15241
15242         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
15243         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
15244         Declare.
15245         (DLTHE_FLAG_UPDATE_FREQ): New.
15246         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
15247         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
15248         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
15249         fix_bb_placement, fix_bb_placements, place_new_loop,
15250         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
15251         New static functions.
15252         (fix_loop_placement, can_duplicate_loop_p,
15253         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
15254         New functions.
15255
15256         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
15257         unswitch_loops): Declare.
15258         * loop-init.c: New file.
15259         * loop-unswitch.c: New file.
15260         * Makefile.in (loop-init.o, loop-unswitch.o): New.
15261         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
15262         * toplev.c (DFI_loop2): New dump.
15263         (flag_unswitch_loops): New.
15264         (lang_independent_options): Add it.
15265         (rest_of_compilation): Call new loop optimizer.
15266         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
15267
15268 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15269
15270         * config/h8300/clzsi2.c: New.
15271         * config/h8300/ctzsi2.c: Likewise.
15272         * config/h8300/paritysi2.c: Likewise.
15273         * config/h8300/popcountsi2.c: Likewise.
15274         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
15275
15276 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
15277
15278         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
15279         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
15280         (ctzsi2): New pattern.
15281         (ffssi2): Use clz instead of unspec.
15282         (clzdi2): Rename from cntlzd2.
15283         (ctzdi2): New pattern.
15284         (ffsdi2): Use clz instead of unspec.
15285
15286 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
15287
15288         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
15289         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
15290         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
15291         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
15292
15293 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
15294
15295         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
15296
15297 2003-02-07  Richard Henderson  <rth@redhat.com>
15298
15299         PR 9226
15300         * gcse.c (local_cprop_find_used_regs): New.
15301         (local_cprop_pass): Use it.
15302
15303 2003-02-07  Fred Fish  <fnf@intrinsity.com>
15304
15305         * mips-tfile.c (parse_def): Parenthesize assignments to fix
15306         precedence bugs.
15307
15308 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
15309
15310         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
15311
15312 2003-02-07  Roger Sayle  <roger@eyesopen.com>
15313
15314         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
15315         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
15316         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
15317         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
15318         builtin functions (and their __builtin_* variants).
15319         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
15320         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
15321         when not optimizing.
15322
15323         * doc/extend.texi: Document new pow and atan2 builtins, and
15324         their float and long double variants.  Realphabetize builtins.
15325
15326 2003-02-07  Jan Hubicka  <jh@suse.cz>
15327
15328         * i386.md (sse2_nandv2di3): Fix.
15329
15330 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
15331
15332         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
15333         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
15334         definition.
15335         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
15336         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
15337
15338 2003-02-07  Jan Hubicka  <jh@suse.cz>
15339
15340         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
15341
15342 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
15343
15344         * cfg.c (dump_flow_info): Add back accidently deleted line.
15345
15346 2003-02-07  Andrey Petrov <petrov@netbsd.org>
15347
15348         * optabs.c (expand_float): Search wider integer modes first.
15349
15350 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
15351
15352         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
15353         based on preprocessor flag.
15354
15355 2003-02-07  Roger Sayle  <roger@eyesopen.com>
15356             Richard Henderson  <rth@redhat.com>
15357
15358         * gcse.c (implicit_sets): New.
15359         (compute_hash_table_work): Include them in hash table.
15360         (find_implicit_sets, fis_get_condition): New.
15361         (one_cprop_pass): Allocate and free implicit_sets; call
15362         find_implicit_sets before building hash table.
15363
15364 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
15365
15366         * config/t-netbsd (USER_H): Revert previous change.
15367
15368 2003-02-07  Gabor Greif  <ggreif@lucent.com>
15369
15370         * doc/c-tree.texi (Namespaces): Fix typo.
15371
15372 2003-02-07  Jan Hubicka  <jh@suse.cz>
15373
15374         * regrename.c (do_replace, find_oldest_value_reg,
15375         copyprop_hardreg_forward_1): Update register attributes.
15376
15377 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
15378
15379         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
15380         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
15381         variables starting with underscore.
15382         (struct unit_usage): New structure.
15383         (unit_usages, cycle_alt_unit_usages): New global variables.
15384         (check_unit_distribution_in_reserv): Remove it.
15385         (store_alt_unit_usage): New function.
15386         (check_regexp_units_distribution): Rewrite it.
15387
15388 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15389
15390         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
15391         target_cpu_default.
15392         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
15393         if not MASK_NO_SPACE_REGS.
15394         (output_call): Adjust return pointer, don't load new space register
15395         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
15396         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
15397         TARGET_NO_SPACE_REGS is true.
15398         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
15399         conditions.
15400         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
15401         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
15402         true.  Use bve when TARGET_64BIT is true.
15403
15404 2003-02-06  Richard Henderson  <rth@redhat.com>
15405
15406         * combine.c (nonzero_bits): Fix double break.
15407
15408 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
15409             Richard Henderson <rth@redhat.com>
15410
15411         PR c/9530
15412         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
15413         from functions that return a float to functions that don't.
15414
15415 2003-02-06  Jan Hubicka  <jh@suse.cz>
15416
15417         * i386.c (x86_inter_unit_moves): New variable.
15418         (ix86_secondary_memory_needed): Fix 64bit case, honor
15419         TARGET_INTER_UNIT_MOVES
15420         * i386.h (x86_inter_unit_moves): Declare.
15421         (TARGET_INTER_UNIT_MOVES): New macro.
15422         * i386.md (movsi_1): Cleanup constraints; disable
15423         when not doing inter-unit moves.
15424         (movsi_1_nointernunit): New.
15425         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
15426         (movdi_1_rex64_nointerunit): New.
15427         (mivsf_1): disable when not doing inter-unit moves.
15428         (movsf_1_nointerunit): New.
15429
15430         * basic-block.h (inside_basic_block_p):  Declare.
15431         * cfgbuild.c (inside_basic_block_p): Make global.
15432         * haifa-sched.c (unlink_other_notes): Deal with NOT_INSN_BASIC_BLOCK.
15433         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
15434         update CFG.
15435         (fix_basic_block_boundaries, add_missing_bbs): New.
15436         (rank): Use profile.
15437         (scheudle_ebbs): Rely on CFG; update coments.
15438
15439 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
15440
15441         * Makefile.in (host_hook_obj): New.
15442         (OBJS): Add $(host_hook_obj).
15443         (host_default.o): New rule.
15444         * config.gcc (host_hook_obj): New, default to host-default.o.
15445         (powerpc-*-darwin*): Use host-darwin.o.
15446         (out_host_hook_obj): New.
15447         * configure: Regenerate.
15448         * configure.in: Print information about out_host_hook_obj, substitute
15449         into output files.
15450         * host-default.c: New file.
15451         * hosthooks.h: New file.
15452         * toplev.c (general_init): Call host_hooks.extra_signals.
15453         * config/rs6000/host-darwin.c: New file.
15454         * config/rs6000/x-darwin: New file.
15455         * doc/hostconfig.texi: Add documentation for new host hook.
15456         Rearrange existing documentation.
15457
15458 2003-02-05  Roger Sayle  <roger@eyesopen.com>
15459
15460         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
15461         with *targetm.delegitimize_address.
15462         (rtl_for_decl_location): Likewise.
15463         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
15464         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
15465
15466         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
15467         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
15468         prototype.
15469         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
15470         i386_simplify_dwarf_addr.  Made static.  Prototyped.
15471         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
15472         i386_simplify_dwarf_addr to ix86_delegitimize_address.
15473         (ix86_find_base_term): Likewise.
15474         (maybe_get_pool_constant): Likewise.
15475
15476         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
15477         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
15478         prototype.
15479         * config/s390/s390.c (s390_delegitimize_address): Renamed from
15480         s390_simplify_dwarf_addr.  Made static.  Prototyped.
15481         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
15482
15483 2003-02-05  Richard Henderson  <rth@redhat.com>
15484
15485         PR c/8602
15486         * integrate.c (output_inline_function): Reset input_filename
15487         and lineno from the decl before rest_of_compilation.
15488
15489 2003-02-05  Richard Henderson  <rth@redhat.com>
15490
15491         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
15492         (CTZ_DEFINED_VALUE_AT_ZERO): New.
15493         * doc/rtl.texi, doc/tm.texi: Document them.
15494
15495         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
15496         of the value at zero properly.
15497         * fold-const.c (tree_expr_nonnegative_p): Likewise.
15498         * simplify-rtx.c (simplify_unary_operation): Likewise.
15499
15500         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
15501         (CTZ_DEFINED_VALUE_AT_ZERO): New.
15502
15503         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
15504         (TARGET_EXPAND_BUILTIN): Remove.
15505         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
15506         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
15507         (enum arm_builtins): Remove.
15508         * config/arm/arm.md (UNSPEC_CLZ): Remove.
15509         (clzsi2): Rename from clz; use clz instead of unspec.
15510         (ctzsi2): New.
15511         * config/arm/arm-protos.h: Update.
15512
15513 2003-02-05  Jan Hubicka  <jh@suse.cz>
15514
15515         * i386-protos.h (x86_emit_floatuns):  Declare.
15516         * i386.c (x86_emit_floatuns): New global function.
15517         * i386.md (floatunssisf2, floatunsdisf2,
15518         floatunsdidf2):  New patterns.
15519
15520 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15521
15522         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
15523
15524 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
15525
15526         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
15527           config/ia64/linux.h
15528
15529 2003-02-05  Roger Sayle  <roger@eyesopen.com>
15530
15531         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
15532
15533 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
15534
15535         PR optimization/8555
15536         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
15537         instead of aborting.
15538
15539 2003-02-04  Richard Henderson  <rth@redhat.com>
15540
15541         * config/i386/i386.md (UNSPEC_BSF): Remove.
15542         (ffssi2): Split into cmove and no_cmove insns and splitters;
15543         lose pentium float trick for now.
15544         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
15545         (ctzsi2, clzsi2, bsr): New.
15546
15547 2003-02-04  Richard Henderson  <rth@redhat.com>
15548
15549         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
15550         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
15551         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
15552         (ffsdi2): Use popcount instead of unspec.
15553         (popcountdi2): Rename from *popcnt.
15554         (ctzdi2, clzdi2, getf_exp_tf): New.
15555
15556 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15557
15558         * genconfig.c (main): Generate CC0_P.
15559         * rtl.h (CC0_P): Remove.
15560
15561 2003-02-04  Richard Henderson  <rth@redhat.com>
15562
15563         * libgcc2.h, libgcc2.c (__ffsSI2): New.
15564         (__ffsDI2): Rename from __ffsdi2.
15565         * mklibgcc.in (lib2funcs): Add _ffssi2.
15566
15567 2003-02-04  Richard Henderson  <rth@redhat.com>
15568
15569         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
15570         rounds with a "bit table" lookup.
15571
15572 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15573
15574         * reload.c (find_reloads): Do not use the mode specified in the insn
15575         pattern as reload mode for address operands.  Do not generate optional
15576         reloads for operands where a mandatory reload was already pushed.
15577
15578 2003-02-04  Richard Henderson  <rth@redhat.com>
15579
15580         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
15581         builtins instead of inline assembly.
15582
15583 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
15584
15585         PR c/9376
15586         * libgcc2.c (__subvdi3): Fix typo.
15587
15588 2003-02-04  Jan Hubicka  <jh@suse.cz>
15589
15590         * i386.md (movti_rex64):  Fix constraint.
15591
15592 2003-02-04  Jan Hubicka  <jh@suse.cz>
15593
15594         * i386.md (vector push splitters):  Fix typo in resolving conflict.
15595
15596 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
15597
15598         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
15599
15600 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
15601
15602         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
15603         for recent libstdc++.  Remove formatting cruft.
15604
15605 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
15606
15607         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
15608         attribute even if input file name is absolute, but one of the
15609         includes is relative.
15610
15611 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
15612
15613         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
15614         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
15615         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
15616
15617 2003-02-03  Richard Henderson  <rth@redhat.com>
15618
15619         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
15620         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
15621         return type to "int".  Shuffle declarations and undef int trap.
15622         * libgcc2.h: Remove their declarations.
15623         * optabs.c (expand_unop): Force outmode to int for bitops.
15624
15625 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
15626
15627         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
15628         coprocessor registers before floating-point registers.
15629         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
15630         to account for a previously removed register.
15631         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
15632         Delete unused macros.
15633
15634 2003-02-03  Jan Hubicka  <jh@suse.cz>
15635
15636         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
15637         (mov*_internal): Fix predicates; require one of operands to not be
15638         memory.
15639         (SSE?MMX move expanders):  Fix predicates; force one of operands to
15640         register.
15641         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
15642         (movups/movupd/movdqu patterns): Force one of operands to not be
15643         memory.
15644
15645 2003-02-03  Roger Sayle  <roger@eyesopen.com>
15646
15647         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
15648         takes a single rtx and returns it unmodified.
15649         * hooks.h (hook_rtx_rtx_identity): Prototype here.
15650         * target.h (struct gcc_target): Add "delegitimize_address"
15651         field to target structure.
15652         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
15653         for delegitimize_address target using hook_rtx_rtx_identity.
15654         (TARGET_INITIALIZER): Initialize delegitimize_address field
15655         using TARGET_DELEGITIMIZE_ADDRESS macro.
15656         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
15657         extensions of constant pool references.  Use delegitimize_address
15658         to undo the obfuscation of "-fpic".
15659         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
15660
15661         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
15662         i386_simplify_dwarf_addr.
15663         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
15664         (maybe_get_pool_constant): Likewise.
15665
15666 2003-02-03  Jan Hubicka  <jh@suse.cz>
15667
15668         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
15669
15670 2003-02-03  Jan Hubicka  <jh@suse.cz>
15671
15672         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
15673
15674 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15675
15676         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
15677         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
15678
15679 2003-02-02  Andreas Schwab  <schwab@suse.de>
15680
15681         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
15682
15683 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
15684
15685         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
15686         (epilogue_insns): Likewise.
15687
15688 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15689
15690         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
15691
15692 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15693
15694         * pa-protos.h (attr_length_millicode_call): Remove second argument.
15695         (attr_length_indirect_call, attr_length_indirect_call,
15696         attr_length_save_restore_dltp): New prototypes.
15697         * pa.c (attr_length_millicode_call): Remove second argument.  Check
15698         INSN_ADDRESSES_SET_P in distance calculation.
15699         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
15700         INSN_ADDRESSES.
15701         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
15702         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
15703         Call attr_length_call directly.
15704         (attr_length_indirect_call, output_indirect_call,
15705         attr_length_save_restore_dltp): New functions.
15706         * pa.md (attr_length_millicode_call): Drop second argument from all
15707         patterns.
15708         (return_internal_pic): Delete.
15709         (return_external_pic): Remove use of PIC register and pic operand and
15710         flag checks.
15711         (epilogue): Use return_internal for both normal and pic code.
15712         (call, call_value): Emit new 32-bit pic patterns for symref and
15713         indirect calls.  Remove uses for arg pointer and pic register.
15714         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
15715         call_reg_pic_post_reload, call_val_symref_pic,
15716         call_val_symref_pic_post_reload, call_val_reg_pic,
15717         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
15718         Implement define_split and define_peephole2 patterns for pre reload
15719         patterns.
15720         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
15721         call_value_internal_reg_64bit): Shorten names.
15722         (all call patterns): Explicitly indicate registers used and clobbered.
15723         Use attr_length_indirect_call and attr_length_save_restore_dltp for
15724         attribute length calculation.  Move code generation for indirect calls
15725         to output_indirect_call.
15726         (sibcall, sibcall_value): Don't restore PIC register.
15727         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
15728         register retore.
15729
15730 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15731
15732         * doc/install.texi (Testing): Simplify and compress instructions
15733         concerning Dejagnu.
15734
15735 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15736
15737         * collect2.c (pexecute_pid): Rename to pid.
15738         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
15739         pid.
15740
15741 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
15742
15743         * doc/extend.texi (Function Attributes): Remove documentation
15744         for PowerPC Windows NT function attributes..
15745
15746 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
15747
15748         * dwarf2out.c (gen_type_die): Check for typedefs before calling
15749         for TYPE_MAIN_VARIANT.
15750
15751 2003-02-01  Richard Henderson  <rth@redhat.com>
15752
15753         * libgcc2.c: Include auto-host.h.
15754         (ATTRIBUTE_HIDDEN): New.
15755         (__clz_tab): Don't declare here for clz and ctz.
15756         (__clzsi2, __clzdi2): Use count_leading_zeros.
15757         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
15758         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
15759         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
15760         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
15761
15762 2003-02-01  Richard Henderson  <rth@redhat.com>
15763
15764         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
15765         to the conditional.
15766         (ashlsi3_1_zext splitter): Likewise.
15767
15768 2003-02-01  Richard Henderson  <rth@redhat.com>
15769
15770         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
15771         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
15772         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
15773         return type to Wtype.
15774
15775         * libgcc-std.ver (GCC_3.4): Fix inheritance.
15776
15777         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
15778         expander input constraint.
15779
15780 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
15781
15782         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
15783         OTI_parity.
15784         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
15785         * optabs.c (widen_clz, expand_parity): New.
15786         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
15787         for libcalls to clz, ctz, popcount, and parity.
15788         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
15789         parity_optab, and set up libfunc handlers.
15790         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
15791         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
15792         __popcount_tab): New.
15793         * libgcc2.h: Declare them.
15794         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
15795         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
15796         and parity_optab.
15797         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
15798         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
15799         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
15800         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
15801         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
15802         BUILT_IN_PARITYLL): New.
15803         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
15804         and add optab argument.
15805         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
15806         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
15807         * expr.c (expand_expr): Handle them.
15808         * fold-const.c (tree_expr_nonnegative_p): Likewise.
15809         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
15810         * reload1.c (eliminate_regs): Handle them.
15811         (elimination_effects): Likewise.
15812         * function.c (instantiate_virtual_regs_1): Likewise
15813         * genattrtab.c (check_attr_value): Likewise.
15814         * simplify-rtx.c (simplify_unary_operation): Likewise.
15815         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
15816         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
15817         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
15818         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
15819         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
15820         __builtin_arm_clz.
15821         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
15822         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
15823         * doc/extend.texi (Other Builtins): Add new builtins.
15824         * doc/md.texi (Standard Names): Add new patterns.
15825
15826 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
15827
15828         * reload.c: Revert 2003-01-31 change.
15829
15830 2003-02-01  Jan Hubicka  <jh@suse.cz>
15831
15832         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
15833
15834 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
15835
15836         * flags.h (flag_volatile): Remove declaration.
15837         (flag_volatile_global, flag_volatile_static): Likewise.
15838         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
15839         * toplev.c (flag_volatile): Remove definition.
15840         (flag_volatile_global, flag_volatile_static): Likewise.
15841         (f_options): Remove corresponding entries here.
15842         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
15843         or flag_volatile_static.
15844         * doc/invoke.texi: Remove documentation of -fvolatile,
15845         -fvolatile-global and -fvolatile-static.
15846
15847 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15848
15849         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
15850         updating of total_code_bytes from prologue to epilogue.
15851
15852 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
15853
15854         * reload.c (find_reloads): Do not use the mode specified in the insn
15855         pattern as reload mode for address operands.  Do not generate optional
15856         reloads for operands where a mandatory reload was already pushed.
15857         Generate optional reloads only in the final pass though find_reloads.
15858         (have_replacement_p): New function.
15859
15860 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15861
15862         * doc/install.texi (Testing): Remove a reference to our obsolete
15863         /testresults web pages and strip redundant information concerning
15864         test results.
15865         (Binaries): Refer to Microsoft Windows instead of listing all
15866         possible variants.
15867
15868 2003-02-01  Jan Hubicka  <jh@suse.cz>
15869
15870         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
15871         RTL chain.
15872
15873         * combine.c (simplify_set): Reverse order of ragumetns to
15874         REG_CANNOT_CHANGE_MODE_P
15875         * df.c (df_def_record_1): Likewise.
15876         * recog.c (register_operand): Likewise.
15877         * simplify-rtx.c (simplify_subreg): Likewise.
15878         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
15879         CANNOT_CHANGE_MODE_CLASS.
15880         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
15881         Likewise.
15882         * reload.c (push_reload): Likewise.
15883         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15884         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15885         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15886         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
15887         * mips.c (mips_cannot_change_mode_class): Update.
15888         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15889         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15890         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15891         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
15892         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
15893         * sh.c (sh_cannot_change_mode_class): Update.
15894         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
15895         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
15896
15897 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
15898
15899         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
15900         change to LINK_COMMAND_SPEC in gcc.c.
15901
15902 2003-01-31  Jan Hubicka  <jh@suse.cz>
15903
15904         PR c/9506
15905         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
15906
15907 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15908
15909         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
15910         duplicated code.
15911
15912 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
15913
15914         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
15915         (BINFO_ELTS): New #define.
15916         * stor-layout.c (finalize_record_size): Don't set them.
15917         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
15918         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
15919         (BINFO_LANG_ELTS): New #define.
15920         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
15921         * java/class.c (make_class): Use BINFO_ELTS.
15922         (set_super_info): Likewse.
15923         (add_interface_do): Likewise.
15924         * objc/objc-act.c (start_class): Use BINFO_ELTS.
15925
15926 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
15927
15928         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
15929         (times): Don't ever declare if not HAVE_TIMES.
15930         (clock): Don't ever declare if not HAVE_CLOCK.
15931
15932 2003-01-30  Richard Henderson  <rth@redhat.com>
15933
15934         * flow.c (update_life_info): Zap life info after cleanup_cfg.
15935         (regno_uninitialized): Use correct live at function entry set.
15936         (regno_clobbered_at_setjmp): Likewise.
15937
15938         * expr.c (store_expr): Promote all MEM intermediates to regs.
15939
15940 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15941
15942         * config/arm/arm.c: Fix comment typos.
15943         * config/arm/arm.h: Likewise.
15944         * config/arm/netbsd-elf.h: Likewise.
15945         * config/arm/netbsd.h: Likewise.
15946
15947 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
15948
15949         * gengtype.c (struct walk_type_data): Add needs_cast_p.
15950         (walk_type): Set needs_cast_p in walk_type_data.
15951         (write_types_process_field): Supply casts when required to suppress
15952         warnings.
15953         (write_root): Cast gt_pch_n_S to suppress warning.
15954         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
15955         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
15956         when they might exist.
15957         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
15958         insn-conditions.o, and rs6000.o.
15959
15960 2003-01-30  Richard Henderson  <rth@redhat.com>
15961
15962         * ggc-page.c (G.context_depth_allocations): New.
15963         (G.context_depth_collections): New.
15964         (alloc_page): Set G.context_depth_allocations.
15965         (ggc_collect): Set G.context_depth_collections.
15966         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
15967         (ggc_pop_context): Early exit for no allocations or collections.
15968
15969 2003-01-30  Richard Henderson  <rth@redhat.com>
15970
15971         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
15972
15973 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
15974
15975         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
15976         size, the link register is always saved if any other register is
15977         saved.
15978
15979 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15980
15981         * config/h8300/h8300-protos.h: Update the prototype for
15982         compute_plussi_cc.
15983         (cpp_reader): Declare before it is used.
15984         * config/h8300/h8300.c (compute_plussi_cc): Change the return
15985         type to int.
15986         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
15987         see an unknown H8 variant.
15988
15989 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
15990
15991         PR target/9316
15992         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
15993         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
15994         * config/rs6000/t-rtems: New file. multilib variants to match OS.
15995         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
15996         rs6000/t-ppcgas so we get the desired multilibs.
15997
15998 2003-01-30  Nick Clifton  <nickc@redhat.com>
15999
16000         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
16001         when popping saved IP register off the stack.
16002
16003 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16004
16005         * config/rs6000/aix43.h: Fix comment typos.
16006         * config/rs6000/aix51.h: Likewise.
16007         * config/rs6000/aix52.h: Likewise.
16008         * config/rs6000/altivec.h: Likewise.
16009         * config/rs6000/rs6000.c: Likewise.
16010         * config/rs6000/rs6000.h: Likewise.
16011         * config/rs6000/rs6000.md: Likewise.
16012         * config/rs6000/spe.md: Likewise.
16013
16014 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
16015
16016         * c-common.c (builtin_define_float_constants): Define
16017         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
16018
16019 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
16020
16021         * config/sh/lib1funcs.asm: Fix comment typos.
16022         * config/sh/linux.h: Likewise.
16023         * config/sh/sh.c: Likewise.
16024         * config/sh/sh.md: Likewise.
16025
16026 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
16027
16028         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
16029
16030 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
16031
16032         * config/fp-bit.h (__make_dp): Declare if TMODES.
16033
16034 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
16035
16036         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
16037         general_operand_src and general_operand_dst.
16038
16039 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
16040
16041         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
16042         Return true for variable sized types.
16043         (rs6000_va_arg): Handle variable sized types passed by reference
16044         on non-SVR4 ABI.
16045
16046 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
16047
16048         * arm.c (arm_legtimize_address): New function.
16049         * arm-protos.h (arm_legtimize_address): Add prototype.
16050         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
16051         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
16052         do ... while (0)
16053
16054 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
16055
16056         PR bootstrap/9296
16057         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
16058         depended on it being defined until now.
16059
16060 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
16061
16062         PR target/9295
16063         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
16064         RTEMS code knows which C++ initialization style the toolset
16065         configuration is using.
16066
16067 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
16068
16069         PR bootstrap/9293
16070         * config/m68k/t-crtstuff: Replace spaces with tabs, add
16071          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
16072
16073 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
16074
16075         PR bootstrap/9292
16076         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
16077         RTEMS threads.
16078         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
16079
16080 2003-01-29  Nick Clifton  <nickc@redhat.com>
16081
16082         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
16083         not $(srcdir).
16084
16085 2003-01-29  Andrew Haley  <aph@redhat.com>
16086
16087         * tree-inline.c (walk_tree): Add CHAR_TYPE.
16088
16089 2003-01-29  Jan Hubicka  <jh@suse.cz>
16090
16091         * i386.md (subdi3_carry_rex64): Fix typo.
16092
16093 2003-01-28  Stan Shebs  <shebs@apple.com>
16094
16095         * coretypes.h (cpp_reader): Forward declare struct.
16096         * c-pragma.h (cpp_reader): Remove forward declaration.
16097         * hashtable.h (cpp_reader): Likewise.
16098         * scan.h (cpp_reader): Likewise.
16099         * tree.h (cpp_reader): Likewise.
16100         * config/darwin-protos.h (cpp_reader): Likewise.
16101         * config/arm/arm-protos.h (cpp_reader): Likewise.
16102         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
16103         struct cpp_reader in prototypes.
16104
16105 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
16106
16107         * doc/install.texi: Add documentation for installation into
16108         tooldirs and with DESTDIR.
16109
16110 2003-01-28  Richard Henderson  <rth@redhat.com>
16111
16112         * config.gcc (ia64*-*-aix*): Remove.
16113         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
16114         * config/ia64/unwind-aix.c: Remove file.
16115
16116 2003-01-28  Andreas Schwab  <schwab@suse.de>
16117
16118         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
16119         register.
16120         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
16121         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
16122         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
16123         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
16124         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
16125         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
16126         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
16127
16128 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
16129
16130         * combine.c (nonzero_bits): Fix check for negative divide operands.
16131
16132 2003-01-28  Richard Henderson  <rth@redhat.com>
16133
16134         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
16135         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
16136
16137 2003-01-28  Richard Henderson  <rth@redhat.com>
16138
16139         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
16140
16141         * config/cris/cris.c (cris_address_cost): Make static.
16142         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
16143         * config/cris/cris.h (ADDRESS_COST): Remove.
16144         * config/cris/cris-protos.h: Update.
16145
16146 2003-01-23  Mike Stump  <mrs@apple.com>
16147
16148         * regclass.c (init_reg_autoinc): New function.
16149         (regclass): Move initialization of forbidden_inc_dec_class from
16150         here...
16151         (init_regs): to here.  Avoids reinitialization for each function,
16152         saving compilation time.
16153
16154 2003-01-28  Jason Merrill  <jason@redhat.com>
16155
16156         * cpplib.h (struct cpp_options): Add warn_deprecated field.
16157         * cppinit.c (cpp_create_reader): Turn it on by default.
16158         * c-opts.c (c_common_decode_option): Set it.
16159         * cpplib.c (do_pragma_once): Only complain about #pragma once
16160         if warn_deprecated is set.
16161
16162 2003-01-28  Dale Johannesen  <dalej@apple.com>
16163
16164         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
16165         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
16166         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
16167
16168 2003-01-28  Richard Henderson  <rth@redhat.com>
16169
16170         * target.h (targetm.address_cost): New.
16171         * target-def.h (TARGET_ADDRESS_COST): New.
16172         (TARGET_RTX_COSTS): Uncomment.  Oops.
16173         * cse.c (address_cost): Use new target hook.
16174         (default_address_cost): New.
16175         * output.h (default_address_cost): Declare.
16176         * hooks.c (hook_int_rtx_0): New.
16177         * hooks.h (hook_int_rtx_0): Declare.
16178         * loop.c (combine_givs_p): Remove if 0 code.
16179         * system.h (ADDRESS_COST): Poison.
16180
16181         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
16182         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
16183         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
16184         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
16185         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
16186         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
16187         config/xtensa/xtensa.c, config/xtensa/xtensa.h
16188         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
16189         (ADDRESS_COST): Remove.
16190
16191         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
16192         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
16193         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
16194         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
16195         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
16196         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
16197         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
16198         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
16199         config/mips/mips.c, config/mips/mips.h,
16200         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
16201         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
16202         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
16203         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
16204         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
16205         config/vax/vax.c, config/vax/vax.h
16206         (foo_address_cost): Make static.
16207         (TARGET_ADDRESS_COST): New.
16208         (ADDRESS_COST): Remove.
16209
16210         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
16211         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
16212         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
16213         config/stormy16/stormy16.h
16214         (ADDRESS_COST): Move code ...
16215         (foo_address_cost): ... here.
16216         (TARGET_ADDRESS_COST): New.
16217
16218         * config/m32r/m32r.c (m32r_address_cost): Remove.
16219         * config/m32r/m32r-protos.h: Update.
16220
16221         * config/mmix/mmix.c (mmix_address_cost): Remove.
16222         * config/mmix/mmix-protos.h: Update.
16223
16224         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
16225         mn10300_address_cost; move unsig allocation ...
16226         (mn10300_address_cost): ... here.
16227         (TARGET_ADDRESS_COST): New.
16228         * config/mn10300/mn10300-protos.h: Update.
16229         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
16230
16231         * doc/tm.texi: Update.
16232
16233 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
16234
16235         * haifa-sched.c (schedule_insn): Return necessary cycle advance
16236         after issuing the insn.
16237         (rank_for_schedule): Make a insn with /S the highest priority
16238         insn.
16239         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
16240         (choose_ready): Check SCHED_GROUP_P.
16241         (schedule_block): Advance cycle after issuing insn if it is
16242         necessary.  Don't reorder insns if there is an insn with /S.
16243         (set_priorities): Ignore schedule groups.
16244
16245         * sched-deps.c (remove_dependence, group_leader): Remove the
16246         functions.
16247         (add_dependence): Ignore schedule groups.
16248         (set_sched_group_p): Don't make copy of dependencies from previous
16249         insn of the schedule group.  Add anti-dependency to the previous
16250         insn of the schedule group.
16251         (compute_forward_dependences): Ignore schedule groups.
16252
16253         * sched-ebb.c (init_ready_list): Ignore schedule groups.
16254
16255         * sched-rgn.c (init_ready_list): Ditto.
16256         (can_schedule_ready_p): Ditto.
16257
16258 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
16259
16260         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
16261         register to another one.
16262
16263 2003-01-28  Richard Henderson  <rth@redhat.com>
16264
16265         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
16266
16267 2003-01-28  Roger Sayle  <roger@eyesopen.com>
16268
16269         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
16270
16271 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
16272
16273         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
16274         class contains a floating-point register, return the size of the
16275         mode in half words.
16276
16277 2003-01-28  Jan Hubicka  <jh@suse.cz>
16278
16279         * i386.c (ix86_carry_flag_operator):  New predicate.
16280         (fcmov_operator): Fix whitespace.
16281         (ix86_expand_carry_flag_compare):  Deal with floating point.
16282         (ix86_expand_int_movcc): Deal with fp; update insn expansion
16283         (ix86_expand_int_addcc): Likewise.
16284         (ix86_expand_strlensi_unroll_1): likewsie.
16285         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
16286         * i386.md (add?i_carry_rex64): Use new predicate.
16287         (sub?i3_carry_rex64): Likewise.
16288         (x86_mov?icc_0_m1*): Likewise.
16289
16290 2003-01-28  Andreas Schwab  <schwab@suse.de>
16291
16292         * cfgloopmanip.c (create_preheader): Initialize src to avoid
16293         warning.
16294
16295         * expmed.c (emit_store_flag): Fix cast to avoid sign
16296         comparison warning.
16297
16298         * combine.c (force_to_mode): Add cast to fix warning when
16299         STORE_FLAG_VALUE is negative.
16300
16301 2003-01-27  Richard Henderson  <rth@redhat.com>
16302
16303         * Makefile.in (cse.o): Depend on TARGET_H.
16304         * cse.c (rtx_cost): Use targetm.rtx_costs.
16305         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
16306         * doc/tm.texi: Update.
16307
16308         * target.h (targetm.rtx_costs): New.
16309         * target-def.h (TARGET_RTX_COSTS): New.
16310         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
16311         * hooks.h: Update.
16312
16313         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
16314         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
16315         * config/alpha/alpha.h (PROCESSOR_MAX): New.
16316         (CONST_COSTS, RTX_COSTS): Remove.
16317
16318         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
16319         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
16320         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
16321         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
16322         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
16323         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
16324         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
16325         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
16326         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
16327         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
16328         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
16329         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
16330         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
16331         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
16332         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
16333         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
16334         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
16335         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
16336         config/v850/v850.c, config/v850/v850.h,
16337         config/xtensa/xtensa.c, config/xtensa/xtensa.h
16338         (CONST_COSTS, RTX_COSTS): Move code ...
16339         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
16340
16341         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
16342         (arm_rtx_costs, TARGET_RTX_COSTS): New.
16343         * config/arm/arm-protos.h: Update.
16344         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
16345
16346         * config/avr/avr.h (CONST_COSTS): Move code ...
16347         * config/avr/avr.c (avr_rtx_costs): ... here.
16348         (default_rtx_costs): Make static.
16349         * config/avr/avr-protos.h: Update.
16350
16351         * config/h8300/h8300.c (const_costs): Make static.
16352         (h8300_and_costs, h8300_shift_costs): Likewise.
16353         * config/h8300/h8300-protos.h: Update.
16354
16355         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
16356         (CONST_COSTS): Move code ...
16357         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
16358         default_rtx_costs; update for signature change.
16359         * config/ip2k/ip2k-protos.h: Update.
16360
16361         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
16362         (CONST_COSTS): Move code ...
16363         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
16364         (TARGET_RTX_COSTS): New.
16365         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
16366         * config/m68hc11/m68hc11-protos.h: Update.
16367
16368         * config/m68k/m68k.c (const_int_cost): Make static.
16369         * config/m68k/m68k-protos.h: Update.
16370
16371         * config/mcore/mcore.c (mcore_const_costs): Make static.
16372         (mcore_and_cost, mcore_ior_cost): Likewise.
16373         * config/mcore/mcore-protos.h: Update.
16374
16375         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
16376         (mmix_rtx_cost_recalculated): Remove.
16377         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
16378         * config/mmix/mmix-protos.h: Update.
16379
16380         * config/sh/sh.c (shiftcosts): Make static.
16381         (addsubcosts, andcosts, multcosts): Likewise.
16382         * config/sh/sh-protos.h: Update.
16383
16384         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
16385         (sparc_rtx_costs): Make static; update for change in signature.
16386         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
16387         * config/sparc/sparc-protos.h: Update.
16388
16389         * config/v850/v850.c (const_costs): Make static.
16390         * config/v850/v850-protos.h: Update.
16391
16392         * config/vax/vax.h (RTX_COSTS): Remove.
16393         (CONST_COSTS): Move code ...
16394         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
16395         from vax_rtx_cost.
16396         (vax_rtx_costs, TARGET_RTX_COSTS): New.
16397
16398 2003-01-27  Richard Henderson  <rth@redhat.com>
16399
16400         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
16401         * config/vax/vax-protos.h: Update.  Really.
16402
16403 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
16404
16405         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
16406         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
16407         zero if no hardware floating point.
16408         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
16409         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
16410         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
16411         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
16412         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
16413         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
16414         even FP registers on N32 and N64.
16415         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
16416         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
16417         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
16418         even-register-like alignment to 128-bit arguments.
16419         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
16420         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
16421         on N32 or N64.
16422         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
16423         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
16424         (TPBIT): Set to tp-bit.c.
16425         (tp-bit.c): Create out of fp-bit.c.
16426
16427 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16428
16429         * c-parse.in: Remove '%expect 32' directive in objc mode.
16430
16431 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
16432
16433         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
16434         (LIBGCOV): New variable.
16435         (libgcc.mk): Add LIBGCOV.
16436         (LIBGCC_DEPS): Add libgcov.c.
16437         (libgcov.a): New target.
16438         (clean): Remove libgcov.a.
16439         (install-libgcc): Do libgcov too.
16440         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
16441         with libgcov.a.
16442         * libgcc2.c (L_gcov): Move into ...
16443         * libgcov.c: ... here. New file.
16444         * mklibgcc.in: Add libgcov rules.
16445         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
16446
16447         * doc/invoke.texi (profile-arcs, test-coverage): Update and
16448         clarify.
16449
16450         * profile.c (index_counts_file): Remove duplicate check for open file.
16451
16452 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
16453
16454         * gcc/doc/invoke.texi (Optimization Options): Group together
16455         optional and experimental flags.  Move trapv and bounds-check
16456         out of this section.  Group floating point flags together.
16457         (Code Gen Options): Move trapv and bounds-check to here.
16458
16459 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
16460
16461         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
16462
16463 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
16464
16465         PR optimization/9090
16466         * function.c (purge_addressof_1): After pushing an addressed register
16467         onto the stack, simplify the result.
16468
16469 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
16470
16471         * doc/extend.texi: Fix typo.
16472
16473 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
16474
16475         * doc/cppopts.texi: Fix typo.
16476         * doc/objc.texi: Likewise.
16477         * doc/passes.texi: Likewise.
16478
16479 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
16480
16481         * real.c (ibm_extended_format): Add 53 to minimum exponent.
16482         (encode_ibm_extended): Adjust.
16483
16484 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
16485
16486         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
16487         timevar_id enumerations.
16488
16489 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16490
16491         * combine.c: Fix formatting.
16492
16493 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16494
16495         * doc/gccint.texi: Update the copyright.
16496
16497 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16498
16499         * doc/cpp.texi: Fix typos.
16500         * doc/extend.texi: Likewise.
16501         * doc/gty.texi: Likewise.
16502         * doc/install.texi: Likewise.
16503         * doc/passes.texi: Likewise.
16504         * doc/rtl.texi: Likewise.
16505         * doc/tm.texi: Likewise.
16506
16507 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16508
16509         * config/ia64/fde-glibc.c: Fix comment typos.
16510         * config/ia64/hpux.h: Likewise.
16511         * config/ia64/ia64.c: Likewise.
16512         * config/ia64/ia64.h: Likewise.
16513         * config/ia64/unwind-ia64.c: Likewise.
16514
16515 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
16516
16517         * config/i386/i386-modes.def: Fix comment typos.
16518         * config/i386/i386.c: Likewise.
16519         * config/i386/i386.md: Likewise.
16520
16521 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
16522
16523         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
16524         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
16525         ASM_FINISH_DECLARE_OBJECT before defining it.
16526         * toplev.c (rest_of_decl_compilation):  Don't define
16527         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
16528         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
16529         parameters for DWARF2 targets because they _are_ used.
16530
16531 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
16532
16533         * fp-bit.h: Define macros for TFmode floating-point constants
16534         in IBM-extended TFmode types.
16535         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
16536         widths.
16537         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
16538         TFmode type.
16539
16540         * config/fp-bit.h: Define macros for TFmode floating-point
16541         constants in IEEE quad TFmode type.  Declare functions according
16542         to L_ macros.
16543         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
16544         (TFtype, TItype, UTItype): Define if TMODES is defined.
16545         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
16546         (F_T_BITOFF, D_T_BITOFF): Define.
16547         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
16548         guaranteed to be wide enough.
16549         * config/fp-bit.c: Check for L_ macros for tf functions.
16550         (__thenan_tf): New.
16551         (nan): Adjust.
16552         (pack_d, unpack_d): Support IEEE 854 quad type.
16553         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
16554         from FRAC_NBITS, FRAC_BITS and NGARDS.
16555         (usi_to_float): Cast constants to be shifted to fractype
16556         instead of assuming long long is wide enough.
16557         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
16558
16559 2003-01-26  Andreas Jaeger  <aj@suse.de>
16560
16561         * df.c: Remove prototype of unused function df_regno_rtl_debug.
16562
16563 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
16564
16565         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
16566         (DBBIT_FUNCS): Added _df_to_tf.
16567         (TPBIT_FUNCS): New.
16568         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
16569         (LIBGCC_DEPS): Added TPBIT.
16570         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
16571
16572         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
16573         been able to move the result to target.
16574
16575         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
16576         for the appropriate mode.
16577
16578         * calls.c (emit_library_call_value_1): Handle return values
16579         in a PARALLEL.
16580
16581         * rtl.c (get_mode_alignment): Moved to...
16582         * stor-layout.c: ... here.
16583
16584         * print-rtl.c (print_rtx): Don't print MEM details in
16585         GENERATOR_FILEs.
16586
16587 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
16588
16589         * df.h: Update comments, tidy formatting.
16590         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
16591         REVERSE, UNION, INTERSECTION.  All uses updated.
16592         (OLD_DF_INTERFACE): Remove.
16593         (struct insn_info): Remove commented out insn field.
16594         * df.c: Update comments, tidy formatting.
16595         (df_def_table_realloc): Remove.
16596
16597
16598 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
16599
16600         * calls.c (save_fixed_argument_area): Tidy.
16601         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
16602         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
16603         call chain loop at 1 if !try_tail_call.  Formatting.
16604         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
16605         Use save_fixed_argument_area and restore_fixed_argument_area.
16606
16607 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16608
16609         * df.c (df_uses_record): Handle CC0.
16610
16611 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
16612
16613         * reload.c (maybe_memory_address_p): New function.
16614         (find_reloads_address): Use it instead of memory_address_p.
16615
16616 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
16617
16618         * final.c (shorten_branches): Align the address of code label
16619         when computing initial lengths and addresses.
16620
16621 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16622
16623         * config/m68hc11/m68hc11.md: Fix a comment typo.
16624
16625 2003-01-25  Andreas Jaeger  <aj@suse.de>
16626
16627         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
16628         TARGET_MACHO.
16629
16630 2003-01-25  Roger Sayle  <roger@eyesopen.com>
16631
16632         * gcse.c (bypass_last_basic_block): New global variable.
16633         (bypass_block):  Use redirect_edge_and_branch_force to redirect
16634         fall-through edges.  Use bypass_last_basic_block to determine
16635         which blocks have valid PRE information.
16636         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
16637
16638 2003-01-25  Jan Hubicka  <jh@suse.cz>
16639
16640         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
16641
16642 2003-01-25  Jan Hubicka  <jh@suse.cz>
16643                               Eric Botcazou <ebotcazou@libertysurf.fr>
16644         PR opt/8492
16645         * gcse.c (one_cprop_pass): Delete unreachable blocks.
16646
16647 2003-01-25  Richard Henderson  <rth@redhat.com>
16648
16649         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
16650         from ia64_aix_select_rtx_section.
16651         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
16652         instead of saving and restoring flag_pic.
16653         (ia64_rwreloc_unique_section): Similarly.
16654         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
16655         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
16656         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
16657         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
16658
16659 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16660
16661         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
16662         comment.
16663
16664 2003-01-25  Richard Henderson  <rth@redhat.com>
16665
16666         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
16667
16668 2003-01-25  Kelley Cook <kelleycook@comcast.net>
16669
16670         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
16671
16672 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
16673
16674         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
16675         type for bitmaps.  Use unsigned long.
16676         (nBITMAP_WORD_BITS): New macro.
16677         (BITMAP_WORD_BITS): New macro.
16678         (rest of file): Use it.
16679         * bitmap.c: Use it.
16680
16681 2003-01-25  Richard Henderson  <rth@redhat.com>
16682
16683         2002-02-19  Robert Lipe  <robertlipe@usa.net>
16684         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
16685
16686 2003-01-25  Roger Sayle  <roger@eyesopen.com>
16687
16688         * builtins.c (purge_builtin_constant_p): Scan insn stream
16689         sequentially rather than by basic block.
16690         * function.c (purge_addressof): Simplify test with INSN_P.
16691
16692 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
16693
16694         * combine.c (simplify_comparison, case AND): Remove a redundant test.
16695
16696 2003-01-25  Roger Sayle  <roger@eyesopen.com>
16697
16698         * function.h (struct function): New field calls_constant_p.
16699         (current_function_calls_constant_p): New macro for above.
16700         * function.c (prepare_function_start): Initialize calls_eh_return
16701         and calls_constant_p.
16702         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
16703         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
16704         when the current_function_calls_constant_p.
16705         * integrate.c (expand_inline_function): Set calls_constant_p if
16706         the function being inlined has calls_constant_p set.
16707
16708 2003-01-25  Roger Sayle  <roger@eyesopen.com>
16709
16710         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
16711         optimizing, even if flag_gcse is true.
16712         * toplev.c (rest_of_compilation): purge_builtin_constant_p
16713         only needs to be called when "optimize > 0 && flag_gcse".
16714
16715 2003-01-25  Roger Sayle  <roger@eyesopen.com>
16716
16717         * stmt.c (emit_case_bit_tests): New routine to implement suitable
16718         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
16719         (case_bit_test_cmp): New comparison function for "qsort" to order
16720         case_bit_tests by decreasing number of destination nodes.
16721         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
16722         (expand_end_case_type): Use emit_case_bit_tests to implement
16723         suitable switch statments.
16724         (CASE_USE_BIT_TESTS): New target macro to disable the above.
16725         * Makefile.in (stmt.o): Add dependency on optab.h.
16726         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
16727
16728 2003-01-23  Andreas Schwab  <schwab@suse.de>
16729
16730         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
16731         __do_global_ctors_aux hidden global and don't put it in
16732         .init_array.
16733         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
16734         instead so that it comes first.
16735
16736 2003-01-25  Jan Hubicka  <jh@suse.cz>
16737
16738         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
16739         subreg is read/modify.
16740
16741 2003-01-25  Jan Hubicka  <jh@suse.cz>
16742
16743         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
16744         do libcall for large blocks.
16745         * i386.md (comi patterns): Set type to ssecomi.
16746         (sse2_unpck?pd): Fix mode of vec_select.
16747
16748         * cse.c: Include except.h
16749         (cse_set_around_loop):  Do not create new basic blocks.
16750         * Makefile.in (cse.o): Add dependnecy on except.h
16751
16752 2003-01-25  Jan Hubicka  <jh@suse.cz>
16753
16754         * builtins.c (fold_trunc_transparent_mathfn): New function.
16755         (fold_builtin): Use it.
16756         * convert.c (convert_to_real): Re-enable code to convert
16757         math functions; add support for floor familly functions.
16758
16759 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16760
16761         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
16762         dependencies on coretypes.h and $(TM_H).
16763
16764 2003-01-25  Jan Hubicka  <jh@suse.cz>
16765
16766         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
16767
16768 2003-01-24  Stuart Hastings  <stuart@apple.com>
16769
16770         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
16771
16772 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16773
16774         * config/c4x/c4x.md (UNSPEC_BU): New constants.
16775         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
16776         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
16777         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
16778         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
16779         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
16780         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
16781         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
16782
16783 2003-01-24  Jan Hubicka  <jh@suse.cz>
16784
16785         * emit-rtl.c (reg_attrs_htab): New static variable.
16786         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
16787         functions.
16788         (reg_rtx): Do not maintain regno_decl.
16789         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
16790         set_mem_attrs_from_reg): New global function.
16791         (init_emit): Do not initialize regno_decl.
16792         (init_emit_once): initialize reg_attrs_htab.
16793         * final.c (alter_subreg): Do not replace REG by SUBREG.
16794         (gen_mem_expr_from_op): Improve output.
16795         (output_asm_operands): Likewise.
16796         * function.c (assign_params): Do not set REGNO_DECL.
16797         * function.h (struct function): Kill regno_decl.
16798         (REGNO_DECL): Kill.
16799         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
16800         * print_rtl.c (print_rtx): Output REG information.
16801         * regclass.c (reg_scan_mark_refs): Update attrs.
16802         * reload1.c (alter_reg): Likewise.
16803         * simplify_rtx.c (simplify_subreg): Likewise.
16804         * stmt.c (expand_decl): Likewise.
16805         * rtl.def (REG): Add new field.
16806         * rtl.h (struct reg_attrs): New.
16807         (rtunion_def): At rtreg.
16808         (X0MEMATTR): Add checking.
16809         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
16810         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
16811         Declare.
16812         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
16813
16814 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
16815
16816         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
16817         (xtensa_emit_call, print_operand): Fix printf format strings
16818         to avoid compile warnings.
16819         (xtensa_function_prologue, xtensa_function_epilogue): Change type
16820         of "size" argument to HOST_WIDE_INT to fix compile warnings.
16821         * config/xtensa/xtensa-protos.h
16822         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
16823
16824 2003-01-24  Jan Hubicka  <jh@suse.cz>
16825
16826         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
16827         (implicit_built_in_decls): New global array.
16828         (mathfn_built_in): New global function.
16829         (fold_trunc_transparent_mathfn): New static function
16830         (expand_builtin_strstr, expand_bultin_strchr,
16831         expand_builtin_strpbrk, expand_builtin_strcpy,
16832         expand_builtin_strncpy, expand_bultin_strcmp,
16833         expand_bultin_strncat, expand_builtin_fputs): Use
16834         implicint_built_in_decls.
16835         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
16836         * builtins.def: Fix comments.
16837         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
16838         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
16839         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
16840         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
16841         (DEF_C99_C90RES_BULTIN): New.
16842         (*f, *l builtins): Update.
16843         * c-common.c (DEF_BUILTIN): Initialize implicit array.
16844         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
16845         * convert.c (strip_float_extensions): New global function.
16846         * tree.h (DEF_BUILTIN): Accept 10 arguments.
16847         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
16848         Declare.
16849         * java/builtins.c (define_builtin): Handle implicit.
16850         (DEF_BUILTIN): Update.
16851         * tm.texi (TARGET_C99_FUNCTIONS): Document.
16852         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
16853         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
16854         when using glibc2.
16855
16856 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
16857
16858         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
16859         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
16860         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
16861         * config/xtensa/crti.asm: New file.
16862         * config/xtensa/crtn.asm: New file.
16863         * config/xtensa/t-elf: New file.
16864         * config/xtensa/t-linux: New file.
16865         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
16866         Move various CFLAGS settings to new t-elf file.
16867
16868 2003-01-24  Richard Henderson  <rth@redhat.com>
16869
16870         PR optimization/4382
16871         * tree-inline.c (find_builtin_longjmp_call_1): New.
16872         (find_builtin_longjmp_call): New.
16873         (inlinable_function_p): Use it.
16874
16875 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16876
16877         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
16878         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
16879         * config/i386/i386.c (function_arg_pass_by_reference): New.
16880         (ix86_va_arg): Support arguments passed by reference.
16881
16882 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16883
16884         * cfgloopanal.c: New file.
16885         * cfgloopmanip.c: New file.
16886         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
16887         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
16888         cfglayout.o): Add dependency on cfgloop.h.
16889         (cfgloop.o): Add flags.h dependency.
16890         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
16891         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
16892         (struct loop, struct loops, flow_loops_find, flow_loops_update,
16893         flow_loops_free, flow_loops_dump, flow_loop_dump,
16894         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
16895         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
16896         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
16897         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
16898         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
16899         find_common_loop, verify_loop_structure): Declarations moved to ...
16900         * cfgloop.h: New file.
16901         * bb-reorder.c (reorder_basic_blocks): Modified.
16902         * cfglayout.c: Include cfgloop.h.
16903         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
16904         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
16905         (break_superblocks): New static function.
16906         (cfg_layout_finalize): Use it.
16907         (cfg_layout_split_block): New function.
16908         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
16909         fields.
16910         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
16911         changed.
16912         (cfg_layout_split_block): Declare.
16913         * cfgloop.c: Include cfgloop.h and flags.h.
16914         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
16915         get_loop_body): Avoid signed versus unsigned comparison warnings.
16916         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
16917         loop_latch_edge): Modified.
16918         (verify_loop_structure): Modified to use flags stored in loop structure;
16919         check irreducible loops.
16920         (cancel_loop, cancel_loop_tree): New functions.
16921         (estimate_probability): Use loop analysis code for predictions.
16922         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
16923         warnings.
16924         * doloop.c: Include cfgloop.h.
16925         * loop.c: Include cfgloop.h.
16926         * predict.c: Include cfgloop.h.
16927         * toplev.c: Include cfgloop.h.
16928         * unroll.c: Include cfgloop.h.
16929         * tracer.c (tracer): Modified.
16930
16931 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16932
16933         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
16934
16935 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
16936
16937         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
16938         * configure: Regenerate.
16939
16940         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
16941         (tls_symbolic_reference_mentioned_p): Add prototype.
16942         (s390_tls_get_offset): Add prototype.
16943         (emit_pic_move): Remove prototype, replace by ...
16944         (emit_symbolic_move): .. this new prototype.
16945
16946         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
16947         (tls_model_chars): New global variable.
16948         (s390_encode_section_info): Encode TLS model.
16949         Use targetm.binds_local_p to check for local symbols.
16950         (s390_strip_name_encoding): New function.
16951         (TARGET_STRIP_NAME_ENCODING): Define.
16952
16953         (get_thread_pointer): New function.
16954         (legitimize_tls_address): New function.
16955         (legitimize_address): Call it.
16956         (emit_pic_move): Remove, replace by ...
16957         (emit_symbolic_move): ... this new function.
16958
16959         (larl_operand): Handle TLS operands.
16960         (legitimate_constant_p): Likewise.
16961         (s390_decompose_address): Likewise.
16962         (s390_cannot_force_const_mem): New function.
16963         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
16964
16965         (s390_output_symbolic_const): Handle TLS unspecs.
16966         (print_operand): New code 'J'.
16967         (machine_function): Add struct member 'some_ld_name'.
16968         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
16969
16970         (enum s390_builtin): New type.
16971         (code_for_builtin_64, code_for_builtin_31): New global variables.
16972         (s390_init_builtins, s390_expand_builtin): New functions.
16973         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
16974
16975         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
16976         (ASM_OUTPUT_LABELREF): Define.
16977         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
16978
16979         * config/s390/s390.md: Define TLS UNSPEC constants.
16980         ("movdi", "movsi"): Handle TLS operands.
16981         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
16982         ("*tls_load_64", "*tls_load_31"): New insns.
16983         ("call_value_tls", "call_value_tls_exp"): New expanders.
16984         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
16985         "bas_tls_64", "bas_tls_31"): New insns.
16986
16987 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
16988
16989         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
16990         spe ABI is configured, if requested.
16991
16992 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
16993
16994         * doc/passes.texi: Fix typo.
16995
16996 2003-01-24  Andreas Schwab  <schwab@suse.de>
16997
16998         * stor-layout.c (excess_unit_span): Only define if used.
16999
17000 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
17001
17002         * gcc/doc/invoke.texi (Optimization Options): List -O levels
17003         for each optimization flag.
17004
17005 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
17006
17007         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
17008
17009 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17010
17011         * doc/bugreport.texi: Use @command instead of @code for commands.
17012         * doc/collect2.texi: Likewise.
17013         * doc/headerdirs.texi: Likewise.
17014         * doc/invoke.texi: Likewise.
17015         * doc/standards.texi: Likewise.
17016         * doc/tm.texi: Likewise.
17017         * doc/trouble.texi: Likewise.
17018
17019 2003-01-24  Nick Clifton  <nickc@redhat.com>
17020
17021         * config/arm/arm.c (use_return_insn): Do not use a single return
17022         instruction for interrupt handelrs which have to create a stack
17023         frame.
17024         (arm_expand_prologue): Do not pre-bias the return address of
17025         interrupt handlers which create a stack frame.
17026
17027 2003-01-24  Nick Clifton  <nickc@redhat.com>
17028
17029         * Add sh2e support:
17030
17031         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
17032
17033                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
17034                 med_cbranches.  Fix logic in short_cbranches.
17035
17036         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
17037
17038                 * config/sh/sh.md (delay for cbranch): Don't annul delay
17039                 slots on SH2e.
17040                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
17041                 cbranch with unfilled delay slot on SH2e.
17042                 (output_branch): Fill with a nop the delay slot of a
17043                 branch that required a delay slot but didn't get one.
17044
17045         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
17046
17047                 * doc/invoke.texi (SH options): Document -m2e.
17048                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
17049                 * config/sh/lib1funcs.asm: Likewise.
17050                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
17051                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
17052                 not __sh1__.
17053                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
17054                 SH2E up.
17055                 (SH3E_BIT): Renamed to...
17056                 (SH_E_BIT): ... this.  Replace all uses.
17057                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
17058                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
17059                 (TARGET_SWITCHES): Added 2e.
17060                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
17061                 (processor_type): Added PROCESSOR_SH2E.
17062                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
17063                 TARGET_SH2E, except in sqrtsf2_i.
17064                 (attribute cpu): Added sh2e.
17065                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
17066                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
17067                 * config.gcc: Add sh2e target support.
17068
17069 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
17070
17071         Rename -W to -Wextra.
17072         * c-decl.c:  Update comments.
17073         * c-typeck.c:  Likewise.
17074         * flags.h:  Likewise.
17075         * function.c:  Likewise.
17076         * stmt.c:  Likewise.
17077         * toplev.c:  Update comments.
17078         (W_options):  Add 'extra'.
17079         (display_help):  Remove '-W'.
17080         (decode_W_option):  Special warn_uninitialized treatment in the case
17081         of -Wextra.
17082         * doc/invoke.texi:  Update with new entries.
17083
17084 2003-01-23  Richard Henderson  <rth@redhat.com>
17085
17086         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
17087         in no-else-block case.  Add commentary.
17088
17089 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17090
17091         * configure.in: Revert last change.
17092
17093 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17094
17095         * configure.in: Don't include ansidecl.h in tconfig.h.
17096         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED): Define if IN_LIBGCC2.
17097         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
17098         ATTRIBUTE_UNUSED.
17099
17100         * configure: Regenerate.
17101
17102 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
17103
17104         PR java/6748
17105         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
17106         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
17107         kernels.
17108
17109 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17110
17111         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
17112
17113 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
17114
17115         * genattrtab.c (write_attr_get): Mark 'insn' paramter
17116         as ATTRIBUTE_UNUSED.
17117
17118 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
17119
17120         * arm.c (thumb_base_register_rtx_p): New function.
17121         (thumb_index_register_rtx_p): New function.
17122         (thumb_legitimate_address_p): New function.
17123         (thumb_legitimate_offset_p): New function.
17124         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
17125         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
17126         definitions.
17127         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
17128         (THUMB_LEGITIMATE_OFFSET): Delte.
17129         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
17130         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
17131         (thumb_legitimate_offset_p): Likewise.
17132
17133 2003-01-23  Andreas Schwab  <schwab@suse.de>
17134
17135         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
17136
17137 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17138
17139         * fixinc/Makefile.in (FL_LIST): Revert last change.
17140
17141 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17142
17143         PR other/7341
17144         * invoke.texi (ftest-coverage): Fix broken cross-reference.
17145         Change @code to @command for gcov command.
17146
17147         * gcc.texi: Adjust title of gcov section.
17148         Adjust copyright.
17149         * gcov.texi: Likewise.
17150
17151 2003-01-22  Roger Sayle  <roger@eyesopen.com>
17152
17153         PR optimization/8423
17154         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
17155         its argument is constant, or 0 if !flag_gcse.
17156         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
17157         if it's argument is constant.
17158         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
17159         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
17160         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
17161         * builtins.c (purge_builtin_constant_p): New function to force
17162         instantiation of any remaining CONSTANT_P_RTX nodes.
17163         * rtl.h (purge_builtin_constant_p): Prototype here.
17164         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
17165         pass after GCSE and before loop.
17166         (flag_gcse): No longer static.
17167         * flags.h (flag_gcse): Prototype here.
17168
17169 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
17170
17171         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
17172         introduced by last change.
17173
17174 2003-01-22  Andreas Schwab  <schwab@suse.de>
17175
17176         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
17177
17178 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
17179
17180         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
17181         request a scratch reg on H8S when the shift count is 8.
17182
17183 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
17184
17185         * config/s390/s390-protos.h (preferred_la_operand_p):
17186         Remove second parameter.
17187         * config/s390/s390.c (preferred_la_operand_p): Likewise.
17188         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
17189         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
17190         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
17191         Add peepholes to transform ADD to LOAD ADDRESS.
17192
17193 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
17194
17195         * arm.c (arm_address_register_rtx_p): New function.
17196         (arm_legitimate_address_p): New function.
17197         (arm_legitimate_index_p): New function.
17198         (legitimize_pic_address): Use arm_legitimate_index_p.
17199         * arm-protos.h (arm_legtimate_address_p): Add prototype.
17200         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
17201         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
17202
17203 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
17204
17205         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
17206         * config/s390/2064.md (define_bypass): Correct 'Load' and
17207         'Load-address' bypass values.
17208
17209 2003-01-22  Andreas Schwab  <schwab@suse.de>
17210
17211         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
17212
17213 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
17214
17215         * genautomata.c (output_internal_insn_latency_func,
17216         output_print_reservation_func): Short circuit when there is no
17217         automaton to generate code for.
17218
17219 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17220
17221         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
17222         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
17223
17224 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
17225
17226         * config/rs6000/rs6000.md: Remove warning.
17227         (builtin_setjmp_receiver): Likewise.
17228         * config/darwin.c (update_stubs): Slightly improve terrible hack
17229         with identifiers.  Add comment pointing out problems with it.
17230         (update_non_lazy_ptrs): Likewise.
17231
17232 2003-01-21  Richard Henderson  <rth@redhat.com>
17233
17234         * dwarf2out.c (lookup_filename): Fix printf format warning.
17235         * system.h (fread_unlocked, fwrite_unlocked): Undef.
17236
17237         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
17238         (fixincl.o-warn, gnu-regex.o-warn): New.
17239         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
17240         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
17241         * fixinc/fixincl.c (process): Fix printf format warning.
17242
17243 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
17244
17245         * dwarf2out (output_file_names): Don't crash if called
17246         with empty file_table.
17247
17248 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
17249
17250         * genautomata.c (output_internal_insn_latency_func): Add
17251         missing break statement to generated code.
17252
17253 2003-01-21  Roger Sayle  <roger@eyesopen.com>
17254
17255         * stmt.c (same_case_target_p): New function to determine whether
17256         two case labels branch to the same target.  Split out from...
17257         (group_case_nodes): ... here.  Use same_case_target_p instead.
17258         (strip_default_case_nodes): Remove explicit case nodes
17259         that branch to the default destination.
17260         (expand_end_case_type): Call strip_default_case_nodes after
17261         group_case_nodes, to simplify the case-list before we count it.
17262         Only generate table_label RTX when actually needed.  Try to share
17263         thiscase->exit_label and thiscase->data.case_stmt.default_label
17264         when a switch has no explicit default case.  Simplify test for
17265         constant index.
17266
17267 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17268
17269         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
17270         \t.
17271         (*negsf2_h8300hs): Likewise.
17272         (*addsi3_lshiftrt_16_zexthi): Likewise.
17273         (*iorhi3_lshiftrt_8): Likewise.
17274
17275 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
17276
17277         * dwarf2out.c (fde_table_in_use): Mark GTY.
17278         (dwarf2out_cfi_label_num): New variable, marked GTY.
17279         (dwarf2out_cfi_label): Use it instead of static label_num.
17280         * emit-rtl.c (label_num): Mark GTY.
17281
17282 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
17283
17284         * config/h8300/h8300.c (output_plussi): Support H8/300.
17285         (compute_plussi_length): Likewise.
17286         (compute_plussi_cc): Likewise.
17287         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
17288         output assembly instructions.
17289
17290 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17291
17292         * calls.c (fix_unsafe_tree): Prototype.
17293
17294         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
17295         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
17296         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
17297         c-parse.o-warn): Add -Wno-error.
17298         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
17299
17300         * configure.in (--enable-werror): Add new flag.
17301         * doc/install.texi (--enable-werror): Document.
17302         * configure: Regenerate.
17303
17304         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
17305
17306 2003-01-21  Andreas Schwab  <schwab@suse.de>
17307
17308         * genautomata.c (output_internal_insn_latency_func): Fix missing
17309         close paren in output.
17310
17311 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
17312
17313         * genautomata.c: Space savings in generated code:
17314         (output_dfa_insn_code_func): Split out the table-enlargement
17315         path to an out-of-line static function, dfa_insn_code_enlarge.
17316         (output_internal_insn_latency_func): Use a lookup table for the
17317         default latencies.
17318         (output_print_reservation_func): Use a lookup table for the
17319         strings.
17320
17321 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
17322
17323         PR opt/7507
17324         * calls.c (fix_unsafe_tree): Split out from ...
17325         (expand_call): ... here.  Use it on the function address too.
17326
17327 2003-01-20  Richard Henderson  <rth@redhat.com>
17328
17329         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
17330
17331 2003-01-20  Richard Henderson  <rth@redhat.com>
17332
17333         PR opt/7154
17334         * stmt.c (expand_asm_operands): Validize memory operands.
17335
17336 2003-01-20  Richard Henderson  <rth@redhat.com>
17337
17338         PR opt/8848
17339         * ifcvt.c (noce_process_if_block): Correct arguments to
17340         modified_between_p for no-else-block case.
17341
17342 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17343
17344         * config/h8300/h8300.c (const_costs): Remove a warning.
17345         (output_plussi): Likewise.
17346         (compute_plussi_length): Likewise.
17347         (compute_plussi_cc): Likewise.
17348
17349 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17350
17351         * config/h8300/h8300.md (addsi_h8300): Remove the last
17352         alternative.
17353
17354 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17355
17356         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
17357
17358 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17359
17360         * system.h (__NO_STRING_INLINES): Define.
17361
17362 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17363
17364         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
17365         is not a scalar int mode.
17366
17367 2003-01-20  Roger Sayle  <roger@eyesopen.com>
17368
17369         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
17370         insn's notes following a substitution inside a libcall.
17371
17372 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
17373
17374         * configure.in: Check for system-provided 'uchar' type.
17375         * configure, config.in: Regenerate.
17376         * cpphash.h: Only typedef 'uchar' if the system doesn't.
17377
17378 2003-01-20  Richard Henderson  <rth@redhat.com>
17379
17380         * expr.h (MUST_PASS_IN_STACK): Move implementation...
17381         * calls.c (default_must_pass_in_stack): ... here.
17382
17383 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
17384
17385         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
17386
17387         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
17388
17389         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
17390         Wrap up definition of `insn_alts'.
17391
17392         * genattrtab.c (main): Wrap up `insn_alts'.
17393
17394 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17395
17396         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
17397         prototyping.
17398         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
17399
17400         * config.in, configure: Regenerate.
17401
17402 2003-01-20  Nick Clifton  <nickc@redhat.com>
17403
17404         * config/arm/arm.md (sibcall_epilogue): Add an
17405         UNSPEC_PROLOGUE_USE to prevent the link register from being
17406         considered dead.
17407
17408 2003-01-20  Jan Hubicka  <jh@suse.cz>
17409
17410         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
17411
17412 2003-01-20  Andreas Schwab  <schwab@suse.de>
17413
17414         * system.h: Don't declare strsignal if the decl test hasn't been
17415         run yet.
17416
17417 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
17418
17419         * config/h8300/h8300.c (notice_update_cc): Don't assume that
17420         recog_data.operands[0] is always associated with cc0.
17421
17422 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
17423
17424         * collect2.c (ldgetname): Expand declaration to prototype.
17425         * read-rtl.c (atoll): Add prototype.
17426         * system.h (strsignal): Also declare if no declaration found.
17427
17428 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
17429
17430         * config.gcc (mips64*-*-linux*): Added.
17431         * config/mips/linux64.h, config/mips/t-linux64: New file.
17432         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
17433         * config/mips/mips.c (override_options): Use it.
17434         * config/mips/mips.h (TARGET_SWITCHES): Added...
17435         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
17436         * Makefile.in (SPECS): New.
17437         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
17438         * gcc.c (process_command): Move self-spec processing past spec
17439         file loading.
17440         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
17441         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
17442         CRTSTUFF_T_CFLAGS.
17443         (SPECS): Document.
17444         * doc/invoke.texi (-mabi-fake-default): Document.
17445
17446 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
17447
17448         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
17449         z_reg, z_reg_qi): Declare static and GTY().
17450         (da_reg): Remove.
17451         (create_regs_rtx): Don't create da_reg.
17452         ("gt-m68hc11.h"): Include for GTY roots.
17453         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
17454         and GTY() here.
17455         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
17456         (m68hc11_soft_tmp_reg): Likewise.
17457         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
17458
17459 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
17460
17461         * basic-block.h: Fix comment formatting.
17462         * calls.c: Likewise.
17463         * combine.c: Likewise.
17464         * convert.c: Likewise.
17465         * gcov.c: Likewise.
17466         * haifa-sched.c: Likewise.
17467         * libgcc2.c: Likewise.
17468         * loop.c: Likewise.
17469         * profile.c: Likewise.
17470         * system.h: Likewise.
17471
17472 2003-01-18  Roger Sayle  <roger@eyesopen.com>
17473
17474         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
17475
17476 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17477
17478         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
17479
17480 2003-01-17  Dale Johannesen  <dalej@apple.com>
17481
17482         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
17483           (*floatunssidf2_internal):  Ditto.
17484
17485 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
17486
17487         * alias.c: Fix comment typos.
17488         * basic-block.h: Likewise.
17489         * c-common.c: Likewise.
17490         * c-common.h: Likewise.
17491         * c-decl.c: Likewise.
17492         * c-opts.c: Likewise.
17493         * c-pragma.c: Likewise.
17494         * c-pretty-print.h: Likewise.
17495         * cfg.c: Likewise.
17496         * cfganal.c: Likewise.
17497         * cfgbuild.c: Likewise.
17498         * cfgcleanup.c: Likewise.
17499         * cfglayout.c: Likewise.
17500         * cfgrtl.c: Likewise.
17501         * convert.c: Likewise.
17502         * cpphash.h: Likewise.
17503         * cpplex.c: Likewise.
17504         * cpplib.h: Likewise.
17505         * df.h: Likewise.
17506         * diagnostic.c: Likewise.
17507         * diagnostic.h: Likewise.
17508         * dwarf2.h: Likewise.
17509
17510 2003-01-17  Stan Shebs  <shebs@apple.com>
17511
17512         * config/darwin-protos.h: Forward-declare struct cpp_reader.
17513
17514 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
17515
17516         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
17517         mistake in last checkin.
17518
17519 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
17520
17521         * et-forest.c: Fix comment typos.
17522         * et-forest.h: Likewise.
17523         * except.c: Likewise.
17524         * expr.c: Likewise.
17525         * flags.h: Likewise.
17526         * flow.c: Likewise.
17527         * gcc.c: Likewise.
17528         * gcse.c: Likewise.
17529         * genattrtab.c: Likewise.
17530         * genautomata.c: Likewise.
17531         * gengtype.c: Likewise.
17532         * genrecog.c: Likewise.
17533         * global.c: Likewise.
17534         * gthr-rtems.h: Likewise.
17535
17536 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17537
17538         * i386.c (x86_function_profiler): Fix format specifier.
17539
17540 2003-01-17  Richard Henderson  <rth@redhat.com>
17541
17542         * gengtype.c (walk_type): Allow paramN_is.
17543
17544 2003-01-17  Nick Clifton  <nickc@redhat.com>
17545
17546         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
17547
17548 2003-01-16  Richard Henderson  <rth@redhat.com>
17549
17550         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
17551
17552 2003-01-16  Richard Henderson  <rth@redhat.com>
17553
17554         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
17555         (alpha_next_sequence_number): Likewise.
17556         (alpha_this_literal_sequence_number): Likewise.
17557         (alpha_this_gpdisp_sequence_number): Likewise.
17558         (struct alpha_funcs, alpha_funcs_num): Likewise.
17559         (struct alpha_links): Fix branch merge error.
17560         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
17561
17562 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
17563
17564         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
17565         R. Ghazi.
17566
17567 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17568
17569         * ifcvt.c: Fix comment typos.
17570         * lcm.c: Likewise.
17571         * libgcc2.c: Likewise.
17572         * local-alloc.c: Likewise.
17573         * loop.c: Likewise.
17574         * predict.c: Likewise.
17575         * ra-build.c: Likewise.
17576         * ra.c: Likewise.
17577         * ra-colorize.c: Likewise.
17578         * ra.h: Likewise.
17579         * ra-rewrite.c: Likewise.
17580         * regmove.c: Likewise.
17581         * reload.h: Likewise.
17582         * rtlanal.c: Likewise.
17583         * toplev.c: Likewise.
17584         * tree.h: Likewise.
17585         * unwind-dw2-fde-glibc.c: Likewise.
17586         * vmsdbgout.c: Likewise.
17587
17588 2003-01-16  Richard Henderson  <rth@redhat.com>
17589
17590         * dwarf2out.c (struct file_table): Remove.
17591         (FILE_TABLE_INCREMENT): Remove.
17592         (file_table): Make a varray; mark for GC.  Update all users.
17593         (file_table_last_lookup_index): Extract from struct file_table.
17594         (output_file_names): Fix unsigned compare warnings.
17595         (add_name_attribute): Remove inline marker.
17596         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
17597         (lookup_filename): Don't manage size of file_table.
17598         (init_file_table): Allocate file_table with GC.
17599         (dwarf2out_init): Don't record main_input_filename here.
17600         (dwarf2out_finish): Do it here instead.
17601
17602 2003-01-16  Bruce Korb  <bkorb@gnu.org>
17603
17604         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
17605
17606 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
17607
17608         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
17609         instead of rotldi3_mextr.
17610
17611 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
17612
17613         * haifa-sched.c (move_insn): Restore moving all schedule group.
17614         (set_priorities): Restore taking SCHED_GROUP_P into account.
17615
17616         * sched-deps.c (add_dependence): Restore processing the last group
17617         insn.
17618         (remove_dependence, group_leader): Restore the functions.
17619         (set_sched_group_p): Restore adding dependencies from previous insn
17620         in the group.
17621         (compute_forward_dependences): Restore usage of group_leader.
17622
17623         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
17624         account.
17625
17626         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
17627         account.
17628         (can_schedule_ready_p): Ditto.
17629         (add_branch_dependences): Restore skipping over the group insns.
17630
17631 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
17632
17633         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
17634         68HC12 pre/post inc/dec side effects.
17635
17636 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
17637
17638         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
17639
17640 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
17641
17642         * sh.md (mshflo_w_x): Fix description of operation.
17643
17644 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
17645
17646         * config/rs6000/rs6000.h: Mention Altivec registers in
17647         commentary.  Fix typo.
17648
17649 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
17650
17651         * config/rs6000/rs6000.md (movti_string): Remove clobber.
17652         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
17653         generate PARALLEL with clobber for TARGET_POWER.
17654
17655 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17656
17657         * ra-colorize.c (colorize_one_web): Initialize variable.
17658         * regmove.c (fixup_match_1): Likewise.
17659         * reload1.c (reload_as_needed): Likewise.
17660         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
17661
17662 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17663
17664         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
17665
17666 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17667
17668         * dbxout.c (lastfile, cwd): Fix `unused' warning.
17669         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
17670         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
17671         is_main_source, file_table, decl_die_table_in_use,
17672         abbrev_die_table_in_use, line_info_table_in_use,
17673         separate_line_info_table_in_use, pubname_table_in_use,
17674         arange_table_in_use, ranges_table_in_use,
17675         current_function_has_inlines): Likewise.
17676         * flow.c (life_analysis): Likewise.
17677         * genemit.c (gen_insn): Likewise.
17678         * protoize.c (cplus_suffix): Likewise.
17679
17680         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
17681         * arm.h (ROUND_UP_WORD): Likewise.
17682
17683         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
17684         warning.
17685         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
17686         init_emit_once): Likewise.
17687         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
17688         Likewise.
17689         * function.c (assign_stack_temp_for_type): Likewise.
17690         * loop.c (loop_invariant_p): Likewise.
17691         * recog.c (push_operand): Likewise.
17692         * regclass.c (init_reg_sets_1): Likewise.
17693         * reload.c (update_auto_inc_notes): Likewise.
17694         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
17695         * stmt.c (expand_asm_operands): Likewise.
17696         * stor-layout.c (start_record_layout): Likewise.
17697
17698 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
17699
17700         * config/c4x/c4x.md (epilogue): Correct last patch.
17701
17702 2003-01-15  Richard Henderson  <rth@redhat.com>
17703
17704         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
17705         also check that GP is being used.
17706         (alpha_find_lo_sum_using_gp): New.
17707         (alpha_does_function_need_gp): Use get_attr_usegp.
17708         * config/alpha/alpha-protos.h: Update.
17709         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
17710         as needed.
17711
17712 2003-01-15  Roger Sayle  <roger@eyesopen.com>
17713
17714         * gcse.c (one_cprop_pass): Change function arguments to take both
17715         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
17716         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
17717         (bypass_jumps): New function to perform separate jump bypassing pass.
17718         * rtl.h (bypass_jumps): Add function prototype.
17719         * timevar.def (TV_BYPASS): New timing variable.
17720         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
17721         (dump_file): New entry for the bypass RTL dump file.
17722         (rest_of_compilation): Insert new jump bypassing optimization
17723         pass after loop.
17724         * doc/passes.texi: Document new pass.
17725
17726 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17727
17728         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
17729         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
17730         * pa.h (TARGET_SOM_SDEF): Define.
17731         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
17732
17733 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
17734
17735         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
17736         allocate 4-bytes of locals on 68HC11.
17737         (expand_epilogue): Likewise.
17738         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
17739
17740 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
17741
17742         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
17743         and -mshort-double to the assembler to specify the ABI.
17744         (LINK_SPEC): Likewise.
17745         (CPP_SPEC): Pass HCS12 specific define.
17746         (MASK_M68S12): New define.
17747         (TARGET_M68S12): Likewise.
17748         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
17749         (TARGET_VERSION): Update.
17750         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
17751         (LINK_SPEC): Update.
17752         (ASM_SPEC): Update.
17753         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
17754         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
17755
17756 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
17757
17758         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
17759         the return code.
17760
17761 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
17762
17763         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
17764         flag before setting it.
17765
17766 2003-01-15  Roger Sayle  <roger@eyesopen.com>
17767
17768         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
17769         when loop condition is known true, i.e.  "while (1) { ... }".
17770         (genrtl_for_stmt): Similarly for "for" statements.
17771
17772 2003-01-15  Roger Sayle  <roger@eyesopen.com>
17773
17774         * real.c (real_sqrt): Return a bool result indicating whether
17775         a floating point exception or trap should be raised.
17776         * real.h (real_sqrt): Update function prototype.
17777         * builtins.c (fold_builtin): Only fold non-trapping square
17778         roots unless we're ignoring errno and trapping math.
17779
17780 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
17781
17782         * expr.h (emit_conditional_add): Add PARAMS to declaration.
17783         * gengtype-lex.l (malloc, realloc): Move defines after include of
17784         system.h.  Remove duplicate include of system.h.
17785
17786 2003-01-15  Roger Sayle  <roger@eyesopen.com>
17787
17788         PR middle-end/9009
17789         * optabs.c (expand_unop):  When manipulating the FP sign bit
17790         using integer operations, account for targets with different
17791         integer and FP word orders.
17792         (expand_abs): Likewise.
17793
17794 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
17795
17796         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
17797         file extension in section name.
17798
17799 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
17800
17801         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
17802         constant offset.
17803
17804 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
17805
17806         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
17807         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
17808         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
17809         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
17810
17811 2003-01-15  Jan Hubicka  <jh@suse.cz>
17812
17813         PR f/9258
17814         * global.c (struct allocno): Add no_stack_reg.
17815         (global_conflicts): Set no_stack_reg.
17816         (find_reg): Use it.
17817
17818         * convert.c (convert_to_real): Fold - and abs only when profitable.
17819         * fold-const.c (fold): Fold truncates in - and abs.
17820
17821 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
17822
17823         Segher Boessenkool  <segher@koffie.nl>
17824
17825         * predict.c (real_inv_br_prob_base): New variable.
17826         (propagate_freq): Use multiply by reciprocal instead of
17827         division.  Don't divide by 1.0 at all.
17828         (estimate_bb_frequencies): Similar.
17829
17830 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
17831
17832         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
17833         * configure: Rebuilt.
17834
17835 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
17836
17837         * config/s390/s390.c (s390_safe_attr_type): New function.
17838         (s390_use_dfa_pipeline_interface): New function, return true for z900.
17839         (s390_issue_rate): New function.
17840         (s390_agen_dep_p): New function.
17841         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
17842         (s390_adjust_cost): Return 'cost' if new DFA is used.
17843         (s390_adjust_priority): Delete function.
17844         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
17845         * config/s390/s390.md (atype attribute): Attribute 'atype' default
17846         determined by 'op_type'.
17847         (type attribute): Added more type attributes.
17848         * config/s390/2064.md: New DFA description for z900 pipeline.
17849
17850 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
17851
17852         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
17853         forced to memory.  Fixes PR bootstrap/9036.
17854
17855         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
17856         to set $gp before the call.
17857
17858 2003-01-14  Richard Henderson  <rth@redhat.com>
17859
17860         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
17861         for force_const_mem.
17862
17863 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17864
17865         * genattr.c (main): Rearrange output to avoid prototype warning.
17866         * genautomata.c (transform_3): Fix ambiguous-else warning.
17867         * local-alloc.c (requires_inout): Add parentheses around
17868         assignment used as truth-value.
17869         * timevar.c: Move system includes above local includes.  Include
17870         toplev.h
17871         * Makefile.in (timevar.o): Depend on toplev.h.
17872
17873 2003-01-14  Denis Chertykov  <denisc@overta.ru>
17874
17875         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
17876         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
17877
17878         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
17879         attributes.
17880         (TARGET_ATTRIBUTE_TABLE): New macro.
17881         (valid_machine_type_attribute): Remove.
17882         (valid_machine_decl_attribute): Remove.
17883         (ip2k_handle_progmem_attribute): New function.
17884         (ip2k_handle_fndecl_attribute): New function.
17885
17886 2003-01-10  Andrew Haley  <aph@redhat.com>
17887
17888         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
17889         registers to be in correct order.  Add rip.
17890
17891 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17892
17893         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
17894         (*iorsi3_and_lshiftrt_9_sb): Likewise.
17895
17896 2003-01-14  Jan Hubicka  <jh@suse.cz>
17897
17898         * convert.c (strip_float_extensions):  Look for narrowest type handling
17899         FP constants.
17900
17901         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
17902         float1 CMP float2.
17903         * convert.c (strip_float_extensions): Make global.
17904         * tree.h (strip_float_extensions): Declare.
17905
17906 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
17907
17908         * timevar.def: define TV_NAME_LOOKUP.
17909         * timevar.c (timevar_pop): Be verbose when aborting.
17910
17911 2003-01-13  Andreas Schwab  <schwab@suse.de>
17912
17913         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
17914         $(parsedir), just move the temporary file at the end.
17915         ($(parsedir)/gengtype-yacc.c): Likewise.
17916
17917 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
17918
17919         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
17920         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
17921         splitting.
17922         * configure: Rebuilt.
17923
17924 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17925
17926         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
17927         internal_mcount): Don't use PARAMS.
17928         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
17929         ISO C style.
17930         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
17931
17932 2003-01-13  Andreas Schwab  <schwab@suse.de>
17933
17934         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
17935         directive.
17936
17937 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17938
17939         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
17940         (*iorsi3_and_lshiftrt_n_sb): Likewise.
17941
17942 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
17943
17944         PR c++/9264
17945         * c-lex.c (c_lex): Set the token value to error_mark_node for
17946         invalid numeric constants.
17947
17948 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17949
17950         * c-pch.c (asm_file_startpos): Change to `long'.
17951         (pch_init): Use ftell, not ftello.
17952         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
17953         Use `long' instead of `off_t'.
17954         (c_common_read_pch): Likewise.
17955         * ggc-common.c (gt_pch_save): Use long/ftell instead of
17956         off_t/ftello.
17957
17958 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
17959
17960         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
17961
17962 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
17963
17964         * arm-protos.h (struct cpp_reader): Add declaration.
17965
17966 2003-01-11  Jan Hubicka  <jh@suse.cz>
17967
17968         PR target/9068
17969         * i386.c (output_fp_compare): Fix typo.
17970
17971 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
17972
17973         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
17974
17975 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
17976
17977         * Makefile.in (parsedir): New variable.
17978         (docobjdir): New variable.
17979         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
17980         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
17981         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
17982         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
17983         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
17984         Use docobjdir.
17985         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
17986         objc.maintainer-clean): Use parsedir.
17987
17988         * varasm.c (struct constant_descriptor_rtx): Remove unused
17989         `label' field.
17990
17991         * toplev.c (documented_lang_options): Document -Winvalid-pch.
17992
17993 2003-01-10  Richard Henderson  <rth@redhat.com>
17994
17995         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
17996         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
17997
17998 2003-01-10  Richard Henderson  <rth@redhat.com>
17999
18000         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
18001         not INTEGRAL_MODE_P when widening extensions.
18002
18003 2003-01-10  Richard Henderson  <rth@redhat.com>
18004
18005         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
18006
18007 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
18008
18009         * ggc-page.c (ggc_collect): Avoid overflow computing
18010         min_expand.
18011
18012         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
18013         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
18014         Remove calls.
18015         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
18016
18017 2003-01-10  Jan Hubicka  <jh@suse.cz>
18018
18019         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
18020         with weird operands.
18021
18022 2003-01-10  Dale Johannesen <dalej@apple.com>
18023
18024         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
18025         parameters.  Call check_sibcall_argument_overlap if indicated.
18026         (check_sibcall_argument_overlap):  Add mark_stored_args_map
18027         parameter.  Don't mark parameter area as clobbered if not set.
18028         (expand_call):  Adjust calls to above.
18029
18030 2003-01-10 Kelley Cook <kelleycook@comcast.net>
18031
18032         * configure.in (linker read-only and read-write section mixing):
18033         Squelch some assembler warnings.
18034         * configure: Likewise.
18035
18036 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
18037
18038         * doc/invoke.texi: Document -mtune, delete -mcpu
18039         option for S/390 and zSeries.
18040         * config/s390/s390.c (s390_tune_string) New variable.
18041         (s390_cpu_string) Delete variable.
18042         (override_options): Use s390_tune_string instead of
18043         s390_cpu_string.
18044         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
18045
18046 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
18047
18048         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
18049
18050 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
18051
18052         * jump.c (next_nonnote_insn_in_loop): New function.
18053         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
18054         next_nonnote_insn.
18055         (duplicate_loop_exit_test). Likewise.
18056
18057 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
18058
18059         Merge from pch-branch:
18060
18061         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
18062
18063         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
18064         load.
18065
18066         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
18067
18068         * cpplib.c (count_registered_pragmas): New function.
18069         (save_registered_pragmas): New function.
18070         (_cpp_save_pragma_names): New function.
18071         (restore_registered_pragmas): New function.
18072         (_cpp_restore_pragma_names): New function.
18073         * cpphash.h (_cpp_save_pragma_names): Prototype.
18074         (_cpp_restore_pragma_names): Likewise.
18075         * cpppch.c (struct save_macro_item): Split from save_macro_data.
18076         (struct save_macro_data): New field 'saved_pragmas'.
18077         (save_macros): Update for changes to struct save_macro_data.
18078         (cpp_prepare_state): Call _cpp_save_pragma_names, update
18079         for changes to struct save_macro_data.
18080         (cpp_read_state): Call _cpp_restore_pragma_names, update
18081         for changes to struct save_macro_data.
18082
18083         * cpppch.c (cpp_read_state): Restore the hashtable references
18084         in the cpp_reader.
18085
18086         * tree.h (built_in_decls): Mark for PCH.
18087
18088         * dbxout.c (lastfile): Don't mark for PCH.
18089
18090         * ggc.h: Document PCH calls into memory managers.
18091
18092         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
18093
18094         * doc/invoke.texi (Precompiled Headers): Document the
18095         directory form of PCH.
18096         * cppfiles.c (validate_pch): New function.
18097         (open_file_pch): Search suitably-named directories for PCH files.
18098
18099         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
18100
18101         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
18102         reorder options.
18103         (Type Information): Mention that the information is also
18104         used to implement PCH.
18105         * doc/passes.texi (Passes): Improve documentation of
18106         language-specific files.
18107
18108         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
18109
18110         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
18111         (struct walk_type_data): Add reorder_fn field.
18112         (walk_type): Process 'reorder' option.
18113         (write_types_process_field): Reorder parameters to gt_pch_note_object,
18114         call reorder_note_routine.
18115         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
18116         (ggc_wtd): Update for change to struct write_types_data.
18117         (pch_wtd): Likewise.
18118         * ggc.h (gt_pch_note_object): Reorder parameters.
18119         (gt_handle_reorder): New definition.
18120         (gt_pch_note_reorder): New prototype.
18121         * ggc-common.c (struct ptr_data): Add reorder_fn.
18122         (gt_pch_note_object): Reorder parameters.
18123         (gt_pch_note_reorder): New.
18124         (gt_pch_save): Call reorder_fn.
18125         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
18126
18127         * dbxout.c (cwd): Don't mark for PCH.
18128
18129         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
18130
18131         * gengtype.c (finish_root_table): Fix some warnings.
18132         (write_root): Handle TYPE_STRING.
18133         * ggc.h (gt_ggc_m_S): Add prototype.
18134         * stringpool.c (gt_ggc_m_S): New function.
18135
18136         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
18137
18138         * dwarf2out.c (dw2_string_counter): New.
18139         (AT_string_form): Use it.
18140         (same_dw_val_p): Update for removal of hashtable.h hash tables.
18141
18142         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
18143
18144         * dbxout.c: Include gt-dbxout.h.
18145         (lastfile): Mark for PCH/GGC.
18146         (cwd): Likewise.
18147         (struct typeinfo): Likewise.
18148         (typevec): Likewise.
18149         (typevec_len): Likewise.
18150         (next_type_number): Likewise.
18151         (struct dbx_file): Likewise.
18152         (current_file): Likewise.
18153         (next_file_number): Likewise.
18154         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
18155         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
18156         (dbxout_end_source_file): Don't free struct dbx_file.
18157         (dbxout_type): Use GGC to allocate typevec.
18158         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
18159         (GTFILES): Add dbxout.c.
18160         (gt-dbxout.h): New rule.
18161
18162         * Makefile.in (c-pch.o): Add debug.h as dependency.
18163         * c-pch.c: Include debug.h.
18164         (pch_init): Call start_source_file to keep nesting right.
18165         (c_common_read_pch): Add orig_name parameter.  Call
18166         start_source_file debug hook.  Call end_source_file debug hook.
18167         * c-common.h (c_common_read_pch): Update prototype.
18168         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
18169         callback.
18170         * cppfiles.c (struct include_file): Add new field `header_name'.
18171         (find_or_create_entry): Default it to `name'.
18172         (open_file_pch): Set it to the original header file searched for.
18173         (stack_include_file): Don't stack an empty buffer, just handle
18174         PCH files immediately.  Pass header_name field to read_pch callback.
18175
18176         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
18177
18178         * function.c (funcdef_no): Mark to be saved in a PCH.
18179
18180         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
18181
18182         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
18183
18184         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
18185
18186         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
18187
18188         * optabs.h (code_to_optab): Add GTY marker.
18189
18190         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
18191
18192         * Makefile.in (GTFILES): Add cpplib.h.
18193         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
18194         * c-decl.c (build_compound_literal): Don't use var_labelno.
18195         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
18196         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
18197         * varasm.c (const_labelno): Use gengtype to mark.
18198         (var_labelno): Likewise.
18199         (in_section): Likewise.
18200         (in_named_name): Likewise.
18201         (struct in_named_entry): Likewise.
18202         (in_named_htab): Likewise.
18203         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
18204         (init_varasm_once): Use GGC to allocate in_named_htab.
18205         * config/darwin.c (current_pic_label_num): Mark for PCH.
18206
18207         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
18208
18209         * ggc-simple.c (init_ggc_pch): New stub procedure.
18210         (ggc_pch_count_object): Likewise.
18211         (ggc_pch_total_size): Likewise.
18212         (ggc_pch_this_base): Likewise.
18213         (ggc_pch_alloc_object): Likewise.
18214         (ggc_pch_prepare_write): Likewise.
18215         (ggc_pch_write_object): Likewise
18216         (ggc_pch_finish): Likewise.
18217         (ggc_pch_read): Likewise.
18218
18219         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
18220
18221         * c-pch.c (c_common_write_pch): Write the macro definitions after
18222         the GCed data.
18223         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
18224         definitions after the GCed data.
18225         * cpplib.c (save_macros): New.
18226         (reset_ht): New.
18227         (cpp_write_pch_deps): Split out of cpp_write_pch.
18228         (cpp_write_pch_state): Split out of cpp_write_pch.
18229         (cpp_write_pch): Delete.
18230         (struct save_macro_data): Delete.
18231         (cpp_prepare_state): New.
18232         (cpp_read_state): Erase and restore initial macro definitions.
18233         * cpplib.h (struct save_macro_data): Forward-declare.
18234         (cpp_write_pch_deps): Prototype.
18235         (cpp_write_pch_state): Prototype.
18236         (cpp_write_pch): Delete prototype.
18237         (cpp_prepare_state): Prototype.
18238         (cpp_read_state): Add fourth argument.
18239
18240         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
18241
18242         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
18243         (write_array): Remove warning.
18244
18245         * gengtype.c (contains_scalar_p): New.
18246         (finish_root_table): Add the table to all languages, even if it's
18247         empty.
18248         (write_roots): Output gt_pch_scalar_rtab.
18249         * ggc-common.c (gt_pch_save): Write out scalars.
18250         (gt_pch_restore): Read scalars back.
18251
18252         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
18253         (struct page_entry): Delete pch_page field.
18254         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
18255         (clear_marks): Likewise.
18256         (sweep_pages): Likewise.
18257         (poison_pages): Likewise.
18258         (ggc_print_statistics): Likewise.
18259         (ggc_pch_read): Don't free objects read from a PCH.
18260         Properly set up in_use_p and page_tails.
18261
18262         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
18263
18264         * gengtype.c (struct write_types_data): New.
18265         (struct walk_type_data): Make `cookie' const; add extra
18266         prev_val item; add `orig_s' field.
18267         (walk_type): Update prev_val[3].
18268         (write_types_process_field): New.
18269         (write_func_for_structure): Take write_types_data structure.
18270         (write_types): New.
18271         (ggc_wtd): New.
18272         (pch_wtd): New.
18273         (write_types_local_process_field): New.
18274         (gc_mark_process_field): Delete.
18275         (write_local_func_for_structure): New.
18276         (gc_mark_func_name): Delete.
18277         (write_gc_types): Delete.
18278         (write_local): New.
18279         (finish_root_table): Don't include 'ggc_' in PFX.
18280         (write_root): Rename from write_root.  Fill pchw field of structures.
18281         (write_array): New.
18282         (write_roots): Rename from write_gc_roots.  Split out to write_array.
18283         Update to changes to other routines.  Write gt_pch_cache_rtab table.
18284         (main): Write PCH walking routines.
18285         * ggc-common.c: Include toplev.h, sys/mman.h.
18286         (ggc_mark_roots): For cache hashtables, also mark the hash table
18287         and the array of entries.
18288         (saving_htab): New.
18289         (struct ptr_data): New.
18290         (POINTER_HASH): New.
18291         (gt_pch_note_object): New.
18292         (saving_htab_hash): New.
18293         (saving_htab_eq): New.
18294         (struct traversal_state): New.
18295         (call_count): New.
18296         (call_alloc): New.
18297         (compare_ptr_data): New.
18298         (relocate_ptrs): New.
18299         (write_pch_globals): New.
18300         (struct mmap_info): New.
18301         (gt_pch_save): New.
18302         (gt_pch_restore): New.
18303         * ggc-page.c (ROUND_UP_VALUE): New.
18304         (ROUND_UP): New.
18305         (struct page_entry): Add field `pch_page'.
18306         (init_ggc): Use ROUND_UP.
18307         (struct ggc_pch_data): Declare.
18308         (init_ggc_pch): New.
18309         (ggc_pch_count_object): New.
18310         (ggc_pch_total_size): New.
18311         (ggc_pch_this_base): New.
18312         (ggc_pch_alloc_object): New.
18313         (ggc_pch_prepare_write): New.
18314         (ggc_pch_write_object): New.
18315         (ggc_pch_finish): New.
18316         (ggc_pch_read): New.
18317         * ggc.h (gt_pointer_operator): New.
18318         (gt_note_pointers): New.
18319         (gt_pch_note_object): New prototype.
18320         (gt_pointer_walker): New.
18321         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
18322         (LAST_GGC_ROOT_TAB): Update.
18323         (gt_pch_cache_rtab): Declare.
18324         (gt_pch_scalar_rtab): Declare.
18325         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
18326         (LAST_GGC_CACHE_TAB): Update.
18327         (gt_pch_save_stringpool): Declare.
18328         (gt_pch_restore_stringpool): Declare.
18329         (gt_pch_p_S): Declare.
18330         (gt_pch_n_S): Declare.
18331         (struct ggc_pch_data): Forward-declare.
18332         (init_ggc_pch): Declare.
18333         (ggc_pch_count_object): Declare.
18334         (ggc_pch_total_size): Declare.
18335         (ggc_pch_this_base): Declare.
18336         (ggc_pch_alloc_object): Declare.
18337         (ggc_pch_prepare_write): Declare.
18338         (ggc_pch_write_object): Declare.
18339         (ggc_pch_finish): Declare.
18340         (ggc_pch_read): Declare.
18341         (gt_pch_save): Declare.
18342         (gt_pch_restore): Declare.
18343         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
18344         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
18345         const_double_htab, mem_attrs_htab using GGC.
18346         * c-pch.c: Include ggc.h.
18347         (pch_init): Allow reading PCH file back.
18348         (c_common_write_pch): Call gt_pch_save.
18349         (c_common_read_pch): Call gt_pch_restore.
18350         * c-parse.in (init_reswords): Delete now-untrue comment.
18351         Allocate ridpointers using GGC.
18352         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
18353         calling expand_deferred_fns.
18354         * c-common.h (ridpointers): Mark for GTY machinery.
18355         * Makefile.in (stringpool.o): Update dependencies.
18356         (c-pch.o): Update dependencies.
18357         (ggc-common.o): Update dependencies.
18358         * stringpool.c: Include gt-stringpool.h.
18359         (gt_pch_p_S): New.
18360         (gt_pch_n_S): New.
18361         (struct string_pool_data): New.
18362         (spd): New.
18363         (gt_pch_save_stringpool): New.
18364         (gt_pch_restore_stringpool): New.
18365         * tree.c (init_ttree): Make type_hash_table allocated using GC.
18366
18367         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
18368
18369         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
18370         (output_mangled_typename): Don't pass size_t to printf.
18371
18372         * tree.h (union tree_type_symtab): Add tag to `address' field.
18373         (union tree_decl_u2): Add tag to 'i' field.
18374         * varasm.c (union rtx_const_un): Add tags to all fields.
18375         * gengtype.c (struct walk_type_data): New.
18376         (output_escaped_param): Take struct walk_type_data parameter.
18377         (write_gc_structure_fields): Delete.
18378         (walk_type): New.
18379         (write_gc_marker_routine_for_structure): Delete.
18380         (write_func_for_structure): New.
18381         (gc_mark_process_field): New.
18382         (gc_mark_func_name): New.
18383         (gc_counter): Delete.
18384         (write_gc_types): Use write_func_for_structure.
18385         (write_gc_roots): Use walk_type.
18386
18387         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
18388
18389         * ggc-common.c (ggc_mark_roots): Delete 'x'.
18390         (ggc_splay_dont_free): Fix warning about unused 'x'.
18391         (ggc_print_common_statistics): Remove warnings.
18392
18393         2002-10-01  Mike Stump  <mrs@apple.com>
18394
18395         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
18396         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
18397
18398         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
18399             Catherine Moore  <clm@redhat.com>
18400
18401         * Makefile (c-pch.o): Update dependencies.
18402         (LIBCPP_OBJS): Add cpppch.o.
18403         (cpppch.o): New.
18404         * c-common.c (c_common_init): Don't call pch_init here.
18405         * c-common.h (c_common_read_pch): Update prototype.
18406         * c-lex.c (c_common_parse_file): Call pch_init here.
18407         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
18408         (c_common_decode_option): Handle them.
18409         * c-pch.c: Include c-pragma.h.
18410         (save_asm_offset): Delete.
18411         (pch_init): Move contents of save_asm_offset into here, call
18412         cpp_save_state.
18413         (c_common_write_pch): Call cpp_write_pch.
18414         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
18415         cpp_valid_state.
18416         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
18417         * cppfiles.c (stack_include_file): Update for change to
18418         parameters of cb.read_pch.
18419         * cpphash.h (struct cpp_reader): Add `savedstate' field.
18420         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
18421         `restore_pch_deps' fields.
18422         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
18423         (cpp_save_state): Prototype.
18424         (cpp_write_pch): Prototype.
18425         (cpp_valid_state): Prototype.
18426         (cpp_read_state): Prototype.
18427         * cpppch.c: New file.
18428         * flags.h (version_flag): Remove prototype.
18429         * mkdeps.c (deps_save): New.
18430         (deps_restore): New.
18431         * mkdeps.h (deps_save): Prototype.
18432         (deps_restore): Prototype.
18433         * toplev.c (late_init_hook): Delete.
18434         (version_flag): Make static again.
18435         (compile_file): Don't call late_init_hook.
18436         * toplev.h (late_init_hook): Delete.
18437         * doc/cppopts.texi: Document -fpch-deps.
18438         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
18439
18440         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
18441
18442         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
18443         callers.
18444         (c_common_valid_pch): Rename from c_valid_pch, change callers.
18445         (c_common_read_pch): Rename from c_read_pch, change callers.
18446
18447         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
18448         a space between it and its argument.
18449
18450         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
18451
18452         * c-pch.c: New file.
18453         * toplev.h (late_init_hook): Declare.
18454         * toplev.c (late_init_hook): Define.
18455         (version_flag): Make globally visible.
18456         (compile_file): Call late_init_hook.
18457         (init_asm_output): Make output file seekable.
18458         * gcc.c (default_compilers): Update c-header rule.
18459         * flags.h (version_flag): Declare.
18460         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
18461         fields.
18462         * cppfiles.c (struct include_file): Add 'pch' field.
18463         (INCLUDE_PCH_P): New.
18464         (open_file_pch): New.
18465         (stack_include_file): Handle PCH files specially.
18466         (find_include_file): Call open_file_pch instead of open_file.
18467         (_cpp_read_file): Explain why open_file is used instead of
18468         open_file_pch.
18469         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
18470         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
18471         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
18472         in cpplib callbacks.
18473         * c-common.c (pch_file): Correct comment.
18474         (allow_pch): Define.
18475         (c_common_init): Call pch_init.
18476         * c-common.h (allow_pch): Declare.
18477         (pch_init): Declare.
18478         (c_valid_pch): Declare.
18479         (c_read_pch): Declare.
18480         (c_write_pch): Declare.
18481         * Makefile.in (c-pch.o): New.
18482         (C_AND_OBJC_OBJS): Add c-pch.o.
18483         * doc/invoke.texi (Precompiled Headers): Add index entries,
18484         complete truncated paragraph.
18485
18486         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
18487
18488         * c-common.c: (pch_file): Define.
18489         * c-common.h (pch_file): Declare.
18490         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
18491         (missing_arg): Require --output-pch= to have an argument.
18492         (c_common_decode_option): Handle --output-pch=.
18493         * gcc.c: Document new %V.
18494         (default_compilers): Handle compiling C header files.
18495         (do_spec_1): Implement %V.
18496         (main): Handle "gcc foo.h" without trying to run linker.
18497         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
18498         (Overall Options): Document what the driver does with header files,
18499         document new -x option possibilities.
18500         (Invoking G++): More documentation for PCH.
18501         (Precompiled Headers): New.
18502
18503         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
18504
18505         * ggc.h: Don't include varray.h.  Rearrange functions to be more
18506         organized.
18507         (ggc_add_root): Delete.
18508         (ggc_mark_rtx): Delete.
18509         (ggc_mark_tree): Delete.
18510         (struct ggc_statistics): Remove contents.
18511         * ggc-common.c: Remove unneeded includes.
18512         (struct ggc_root): Delete.
18513         (roots): Delete.
18514         (ggc_add_root): Delete.
18515         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
18516         (ggc_print_common_statistics): Remove most of the contents.
18517         * Makefile.in (GGC_H): No longer uses varray.h.
18518         (ggc-common.o): Update dependencies.
18519         (c-parse.o): Add varray.h to dependencies.
18520         (c-common.o): Add varray.h.
18521         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
18522         (mark_ident_hash): Rename to ggc_mark_stringpool.
18523         (init_stringpool): Don't use ggc_add_root.
18524         * c-parse.in: Include varray.h.
18525         * c-common.c: Include varray.h.
18526         * objc/Make-lang.in (objc-act.o): Add varray.h.
18527         * objc/objc-act.c: Include varray.h.
18528
18529         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
18530
18531         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
18532         (dw_cfi_oprnd1_desc): Likewise.
18533
18534         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
18535
18536         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
18537         move out of ifdef.
18538         (alpha_links): Use gengtype to mark; move out of ifdef.
18539         (mark_alpha_links_node): Delete.
18540         (mark_alpha_links): Delete.
18541         (alpha_need_linkage): Use GGC to allocate splay tree, struct
18542         alpha_links, strings.  Don't use ggc_add_root.
18543         * ggc-common.c (ggc_splay_alloc): New.
18544         (ggc_splay_dont_free): New.
18545         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
18546         (ggc_mark_tree): Likewise.
18547         (splay_tree_new_ggc): New.
18548         (ggc_splay_alloc): Declare.
18549         (ggc_splay_dont_free): Declare.
18550         * dwarf2asm.c: Include gt-dwarf2asm.h.
18551         (mark_indirect_pool_entry): Delete.
18552         (mark_indirect_pool): Delete.
18553         (indirect_pool): Use gengtype to mark.
18554         (dw2_force_const_mem): Don't use ggc_add_root.
18555         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
18556         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
18557         (gt-dwarf2asm.h): Depend on s-gtype.
18558
18559         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
18560
18561         * tree.h (union tree_type_symtab): Mark `die' field.
18562         * Makefile.in (dwarf2out.o): Update dependencies.
18563         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
18564         hash tables.
18565         (dw_cfi_oprnd1_desc): New function.
18566         (dw_cfi_oprnd2_desc): New function.
18567         (indirect_string_alloc): Delete.
18568         (debug_str_do_hash): New function.
18569         (debug_str_eq): New function.
18570         (mark_limbo_die_list): Delete.
18571         (dwarf2out_init): Don't call ggc_add_root.
18572
18573 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
18574
18575         The following changes are merged from itanium-sched-branch:
18576
18577         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
18578
18579         * doc/md.texi: Clarify assignment of units to automata description.
18580
18581         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
18582
18583         * genautomata.c (unit_decl): Remove members
18584         `the_same_automaton_unit' and
18585         `the_same_automaton_message_reported_p'.
18586         (process_unit_to_form_the_same_automaton_unit_lists,
18587         form_the_same_automaton_unit_lists_from_regexp,
18588         form_the_same_automaton_unit_lists, the_same_automaton_lists):
18589         Remove them.
18590         (annotation_message_reported_p): New global variable.
18591         (check_unit_distribution_in_reserv,
18592         check_regexp_units_distribution): New functions.
18593         (check_unit_distributions_to_automata): Rewrite it.
18594
18595         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
18596
18597         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
18598         Use continue instead of break if cycle is too big.
18599
18600         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
18601
18602         * genautomata.c (check_unit_distributions_to_automata): Output at
18603         most one message for a unit.
18604         (process_unit_to_form_the_same_automaton_unit_lists): Check
18605         automaton of units instead of units themself.
18606
18607         * doc/md.texi: Describe the constraint about assigning unit to
18608         automata.
18609
18610         2002-12-20  Jan Hubicka  <jH@suse.cz>
18611                     Vladimir Makarov  <vmakarov@redhat.com>
18612
18613         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
18614         and `in_set_p'.
18615         (gen_cpu_unit): Initialize the new members.
18616         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
18617         up `min_occ_cycle_num'.
18618         (evaluate_max_reserv_cycles): Change the function call.
18619         (CLEAR_BIT): New macro.
18620         (states_union, state_shift): Use the mask.
18621         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
18622         (form_reservs_matter): New function.
18623         (make_automaton): Call the function and use the mask.
18624         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
18625         account.
18626
18627         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
18628
18629         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
18630
18631         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
18632
18633         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
18634         for Itanium.
18635
18636         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
18637
18638         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
18639         default cpu.
18640
18641         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
18642                 2002-10-31  Dale Johannesen <dalej@apple.com>
18643
18644         * haifa-sched.c (find_set_reg_weight): New function.
18645         (find_insn_reg_weight): Use the new function.
18646         (schedule_block): Do sorting ready queue always
18647         after insn issue.
18648
18649         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
18650
18651         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
18652
18653         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
18654
18655         * haifa-sched.c (choice_entry): New structure.
18656         (choice_stack, cycle_issued_insns): New variables.
18657         (max_issue): Rewrite it.
18658         (choose_ready): Set up ready_try for unknown insns too.
18659         (schedule_block): Allocate and free choice_stack.  Set up
18660         and modify cycle_issued_insns.
18661
18662         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
18663         with and without filling the bundle.
18664         (bundling): Combine calls of issue_nops_and_insn.
18665
18666         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
18667
18668         * config/ia64/itanium1.md: New file.
18669
18670         * config/ia64/itanium2.md: New file.
18671
18672         * config/ia64/ia64.md: Move DFA descriptions into the new files.
18673         Remove the old pipeline description.
18674
18675         * config/ia64/ia64.c (ia64_override_options): Add aliases of
18676         itanium processor names.
18677
18678         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
18679
18680         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
18681         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
18682
18683         * config/ia64/ia64.md: Add descriptions for Itanium2.
18684
18685         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
18686
18687         * config/ia64/ia64.h (processor_type): New enumeration.
18688         (ia64_tune, ia64_tune_string): New external declarations.
18689         (TARGET_OPTIONS): Add option `tune='.
18690
18691         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
18692         variables.
18693         (ia64_override_options): Set up `ia64_tune'.
18694         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
18695         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
18696         (bundling): Add nops for MM-insns only for Itanium.
18697         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
18698         Itanium.
18699
18700         * config/ia64/ia64.md (cpu): New attribute.
18701         (DFA description): Enable it only for Itanium.
18702
18703         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
18704                     Richard Henderson  <rth@redhat.com>
18705
18706         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
18707         MASK_EARLY_STOP_BITS.
18708         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
18709         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
18710         `early-stop-bits'.
18711
18712         * config/ia64/ia64.c (ia64_dfa_new_cycle,
18713         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
18714         instead of TARGET_TUNE_STOP_BITS.
18715
18716         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
18717         `-mearly-stop-bits'.
18718
18719         * config/ia64/ia64.c (automata_option "v"): Comment it.
18720
18721         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
18722
18723         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
18724         New macros.
18725         (TARGET_SWITCHES): Add entries for the new option.
18726
18727         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
18728         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
18729         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
18730         global variables.
18731         (ia64_sched_reorder2): Set up `clocks'.
18732         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
18733         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
18734         queue when TARGET_TUNE_STOP_BITS.
18735         (bundling): Insert additional nops for MM-insns.
18736         (final_emit_insn_group_barriers): Add insertion of stop bits
18737         according `stops_p'.
18738         (ia64_reorg): Initiate the new varibales.
18739
18740         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
18741
18742         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
18743
18744         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
18745         insns at the end of block insn scheduling.
18746
18747         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
18748
18749         * sched-deps.c (remove_dependence, group_leader): Remove it.
18750         (add_dependence): Add dependence to group leader to.
18751         (set_sched_group_p): Add dependence to the first insn of the
18752         schedule group too.
18753         (sched_analyze_insn): Make dependence to jump as anti-dependence.
18754         Change true dependence by anti-dependence when
18755         `reg_pending_barrier'.
18756
18757         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
18758         add_branch_dependences): Ignore schedule groups.
18759
18760         * sched-ebb.c (init_ready_list): Ditto.
18761
18762         * (move_insn, set_priorities): Ditto.
18763
18764         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
18765         flag is clear after reload.
18766         (adjust_cost): Change cost only for output dependencies.
18767
18768         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
18769
18770         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
18771
18772         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
18773
18774         * target.h (gcc_target): Add member
18775         `dependencies_evaluation_hook'.
18776
18777         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
18778         macro.
18779         (TARGET_SCHED): Add initiatialization of the new member.
18780
18781         * sched-ebb.c: Include `target.h'.
18782         (schedule_ebb): Call `dependencies_evaluation_hook'.
18783
18784         * sched-rgn.c (schedule_region): Call
18785         `dependencies_evaluation_hook'.
18786
18787         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
18788         New macro.
18789         (ia64_dependencies_evaluation_hook): New function.
18790
18791         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
18792         Describe the new hook.
18793
18794         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
18795
18796         * target.h (gcc_target): Add members
18797         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
18798
18799         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
18800         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
18801         macros.
18802         (TARGET_SCHED): Add initiatialization of the new members.
18803
18804         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
18805         insn scheduling too.
18806         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
18807         initialize `ready_try'.
18808         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
18809         `dfa_new_cycle' says not to do it.
18810
18811         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
18812         bundling.
18813
18814         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
18815
18816         * config/ia64/ia64.c: Include `hashtab.h'.
18817         (ia64_first_cycle_multipass_dfa_lookahead_guard,
18818         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
18819         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
18820         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
18821         bundle_state_eq_p, insert_bundle_state,
18822         initiate_bundle_state_table, finish_bundle_state_table,
18823         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
18824         get_template, get_next_important_insn, bundling): New functions.
18825         (ia64_internal_sched_reorder): Remove it.
18826         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
18827         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
18828         (ia64_safe_itanium_requires_unit0): Remove it.
18829         (group_barrier_needed_p): Place group barrier right before a real
18830         insn.
18831         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
18832         Remove them.
18833         (bundle_name): New variable.
18834         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
18835         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
18836         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
18837         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
18838         temp_dfa_state, prev_cycle_state): New global variables.
18839         (insn_matches_slot, maybe_rotate, finish_last_head,
18840         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
18841         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
18842         find_best_packet, itanium_reorder, dump_current_packet,
18843         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
18844         (sched_data, sched_ready, sched_types): Remove them.
18845         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
18846         `init_insn_group_barriers'.
18847         (ia64_sched_reorder, ia64_sched_reorder2): Call
18848         ia64_dfa_sched_reorder.
18849         (ia64_variable_issue): Rewrite it.
18850         (bundle_state): New structure.
18851         (index_to_bundle_states, bundle_states_num,
18852         allocated_bundle_states_chain, free_bundle_state_chain): New
18853         global variables.
18854         (ia64_sched_finish): Add stop bits and call `bundling' after the
18855         2nd insn scheduling.
18856         (ia64_use_dfa_pipeline_interface): Return zero always.
18857         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
18858         insn scheduling.
18859         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
18860         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
18861         (ia64_reorg): Add bundling insns.
18862
18863         * doc/tm.texi
18864         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
18865         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
18866
18867         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
18868
18869         * config/ia64/ia64.md: Add Itanium1 DFA description.
18870         (itanium_class): Add `nop' and `pre_cycle'.  Add
18871         define_function_unit for `nop'.
18872         (nop): Change attribute `itanium_class'.
18873         (pre_cycle): New define_insn.
18874
18875         * config/ia64/ia64-protos.h (bundling_p): New external variable.
18876         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
18877         ia64_produce_address_p): New function prototypes.
18878
18879         * config/ia64/ia64.c (bundling_p): New global variable.
18880         (ia64_use_dfa_pipeline_interface,
18881         ia64_first_cycle_multipass_dfa_lookahead,
18882         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
18883         functions.
18884         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
18885         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
18886         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
18887         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
18888         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
18889         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
18890         (dfa_pre_cycle_insn): New variable.
18891
18892         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
18893
18894         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
18895         constructions.
18896
18897         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
18898         New function prototypes.
18899
18900         * genattrtab.c (main): Process the new constructions.
18901
18902         * genautomata.c (gen_presence_absence_set,
18903         process_presence_absence_names, process_presence_absence_patterns,
18904         add_presence_absence, check_absence_pattern_sets): Add parameter
18905         `final_p'.
18906         (unit_decl): Add new members `final_presence_list' and
18907         `final_absence_list'.
18908         (unit_pattern_rel_decl): Add new member `final_p'.
18909         (gen_final_presence_set, gen_final_absence_set): New functions.
18910         (process_decls): Use member `final_p'.
18911         (temp_reserv): New global variable.
18912         (reserv_sets_are_intersected): Add processing `final_presence_set'
18913         and `final_absence_set'.
18914         (initiate_states): Allocate `temp_reserv'.
18915         (unit_final_presence_set_table, unit_final_absence_set_table): New
18916         gloabal variables.
18917         (initiate_presence_absence_pattern_sets): Initiate them.
18918         (NDFA_to_DFA): Fix typo.
18919         (output_description): Output `final_presence_set' and
18920         `final_absence_set'.
18921
18922         * doc/md.texi (final_presence_set, final_absence_set): Describe
18923         them.
18924
18925         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
18926
18927         * genautomata.c (transform_3): Process a missing case (nothing on
18928         unit place).
18929
18930         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
18931
18932         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
18933         comments about queried units and the minimization.
18934
18935         * doc/md.texi: Ditto.
18936
18937         * genautomata.c (create_composed_state): Return nonzero if the new
18938         state has been created.
18939         (first_cycle_unit_presence): New function.
18940         (state_is_differed): Add new parameter.  Use the new function.
18941         Take queried units into account.
18942         (partition_equiv_class): Pass additional parameter to
18943         `state_is_differed'.
18944         (merge_states): Process composed states too.
18945         (build_automaton, create_automata, output_min_issue_delay_table,
18946         output_tables, output_statistics): Output more information.
18947         (output_reserved_units_table): Use function
18948         `first_cycle_unit_presence'.
18949         (output_tables): Output table of queried units even if the
18950         minimization is switched on.
18951         (write_automata): Output code for querying units even if the
18952         minimization is switched on.
18953
18954         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
18955
18956         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
18957         syntax of the constructions.
18958
18959         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
18960         extended syntax of the constructions.
18961
18962         * genautomata.c (unit_rel_decl): Rename it to
18963         `unit_pattern_rel_decl'.
18964         (pattern_set_el, pattern_reserv): New structures.
18965         (pattern_set_el_t, pattern_reserv_t): New types.
18966         (gen_presence_absence_set): New function.
18967         (process_presence_absence): Remove it.
18968         (process_presence_absence_names,
18969         process_presence_absence_patterns): New functions.
18970         (get_presence_absence_set): Remove it.
18971         (initiate_presence_absence_sets): Rename it on
18972         `initiate_presence_absence_pattern_sets'.  Use new function
18973         `form_reserv_sets_list'.
18974         (form_reserv_sets_list, check_presence_pattern_sets,
18975         check_absence_pattern_sets, output_pattern_set_el_list): New
18976         functions.
18977         (unit_decl): Change types of members `presence_list' and
18978         `absence_list'.
18979         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
18980         (decl): Change types of members `excl', `presence', and `absence'.
18981         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
18982         at the end of the vector.
18983         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
18984         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
18985         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
18986         (gen_presence_set, gen_absence_set): Use new function
18987         `gen_presence_absence_set'.
18988         (add_presence_absence): Process `pattern_list' instead of
18989         `source_list'.
18990         (process_decls): USe new functions
18991         `process_presence_absence_names' and
18992         `process_presence_absence_patterns'.
18993         (reserv_sets_are_intersected): Use new function
18994         `check_presence_pattern_sets'.
18995         (presence_set, absence_set): Remove them.
18996         (unit_presence_set_table, unit_absence_set_table): New global
18997         variables.
18998         (output_description): Use new function
18999         `output_pattern_set_el_list'.
19000         (generate): Use `initiate_presence_absence_pattern_sets'.
19001
19002         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
19003
19004         * genattr.c (main): Add output of prototype of new interface
19005         function `dfa_clean_insn_cache'.
19006
19007         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
19008         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
19009         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
19010         the generated code.
19011         (write_automata): Call the new function.
19012
19013 2003-01-09  Jan Hubicka  <jh@suse.cz>
19014
19015         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
19016         correctly.
19017
19018 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
19019
19020         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
19021
19022 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
19023
19024         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
19025         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
19026         (CONSTRAINT_LEN): Provide default definition.
19027         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
19028         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
19029         (EXTRA_CONSTRAINT_STR): Likewise.
19030         (REG_CLASS_FROM_CONSTRAINT): Define.
19031         * genoutput.c (check_constraint_len, constraint_len): New functions.
19032         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
19033         constraint / modifier.
19034         (gen_insn): Call check_constraint_len.
19035         * local-alloc.c (block_alloc): Update to use new macros / pass
19036         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
19037         * ra-build.c (handle_asm_insn): Likewise.
19038         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
19039         (constrain_operands, peep2_find_free_register): Likewise.
19040         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
19041         * regmove.c (find_matches): Likewise.
19042         * reload.c (push_secondary_reload, find_reloads): Likewise.
19043         (alternative_allows_memconst): Likewise.
19044         * reload1.c (maybe_fix_stack_asms): Likewise.
19045         (reload_cse_simplify_operands): Likewise.
19046         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
19047         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
19048         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
19049         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
19050         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
19051         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
19052
19053         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
19054
19055 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19056
19057         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
19058         length.
19059         (*extzv_1_r_h8300hs): Likewise.
19060         (*extzv_1_r_inv_h8300): Likewise.
19061         (*extzv_1_r_inv_h8300hs): Likewise.
19062
19063 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19064
19065         * config/h8300/h8300.h (PREDICATE_CODES): New.
19066
19067 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
19068
19069         * config/h8300/h8300.md (*addsi3_upper): New.
19070         (*iorsi3_shift): Likewise.
19071         (two splitters): Likewise.
19072         (*addsi3_shift): Likewise.
19073         (two splitters): Likewise.
19074
19075 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
19076
19077         * Makefile.in (optabs.o): Add dependency on basic-block.h.
19078         * basic-block.h (control_flow_insn_p): Fuction was exported.
19079         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
19080         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
19081         notes only when the region is contained in a single basic block.
19082
19083 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
19084
19085         PR inline-asm/8832
19086         * tree.h (expand_asm): New prototype.
19087         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
19088         to do so.
19089         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
19090         down to expand_asm.
19091         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
19092         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
19093         (volatile_refs_p) [ASM_INPUT]: Likewise.
19094         (side_effects_p) [ASM_INPUT]: Likewise.
19095
19096 2003-01-09  Jan Hubicka  <jh@suse.cz>
19097
19098         * i386.md (*mul*): FIx constraints; remove confused comment; fix
19099         athlon_decode attributes
19100         (imul/k8 optimization peep2s): New.
19101
19102         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
19103         * i386.md (type attribute): Add ssecomi.
19104         (unit, memory, prefix attributes): Handle ssecomi.
19105         (cvt?2? patterns): Fix athlon_decode attribute
19106         (comi patterns): Set attribute to ssecomi.
19107
19108         PR target/8343
19109         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
19110
19111 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
19112
19113         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
19114         that match register_operands.
19115         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
19116         register_operand the default case.
19117
19118 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
19119
19120         PR c/8032
19121         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
19122         an empty element, do not advance the pointer to unfilled
19123         fields if there are pending initializers.
19124
19125 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
19126
19127         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
19128         (install-gcc-tooldir, install-cpp, installdirs,
19129         install-common, install-driver, install-info, install-man,
19130         install-headers, install-include-dir, install-headers-tar,
19131         install-headers-cpio, install-headers-cp, install-mkheaders,
19132         install-collect2, uninstall): Prepend $(DESTDIR) to
19133         destination paths in all (un)installation commands.
19134         (install-driver): Rewrite $(LN) commands to support DESTDIR
19135         with "ln" as well as with "ln -s".
19136         (installdirs): Simply use mkinstalldirs.
19137         (install-libgcc, install-multilib): Also pass DESTDIR.
19138         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
19139         installation destination variable ldir.
19140         * config/alpha/t-osf4, config/arm/t-netbsd,
19141         config/ia64/t-hpux, config/mips/t-iris5-6,
19142         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
19143         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
19144         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
19145         in the definition of SHLIB_INSTALL.
19146         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
19147         $(libsubdir) in the installation commands.
19148
19149 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
19150
19151         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
19152         non-optimizing compile.
19153         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
19154         compile.
19155
19156 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
19157
19158         * config/i386/i386.c (ix86_attribute_table): Add new attributes
19159         ms_struct and gcc_struct.
19160         (ix86_handle_struct_attribute): New function.
19161         (ix86_ms_bitfield_layout_p): Update to take new attributes
19162         into account.
19163         * doc/extend.texi: Document new attributes.
19164         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
19165
19166 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
19167
19168         PR optimization/8750
19169         * config/i386/i386.c (ix86_expand_prologue): Don't allow
19170         scheduling pass to move insns across __alloca call.
19171
19172 2003-01-08  Dale Johannesen  <dalej@apple.com>
19173
19174         * config/rs6000/rs6000.md:  Replace *store_multiple_string
19175         with *stmsi[3-8].
19176
19177 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
19178
19179         PR target/9210
19180         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
19181         Set SYMBOL_REF_FLAG on local data sym_ref.
19182
19183 2003-01-08  Dale Johannesen  <dalej@apple.com>
19184
19185         * function.c (assign_parms):  Don't set pretend_args_size if
19186           REG_PARM_STACK_SPACE.
19187           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
19188           pretend_args_size.
19189
19190 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
19191
19192         * gcc.hlp: Delete.
19193
19194 2003-01-09  Jan Hubicka  <jh@suse.cz>
19195
19196         * i386.c  (ix86_expand_int_addcc): Fix thinko.
19197
19198 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
19199
19200         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
19201         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
19202         as hook_bool_tree_hwi_hwi_tree_true.
19203         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
19204         (rs6000_emit_epilogue): Same.
19205         (rs6000_output_mi_thunk): Re-implement as RTL.
19206         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
19207         xcoffout_declare_function if any debugging enabled.
19208
19209 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
19210
19211         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
19212         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
19213         * config/mips/mips.h (enum processor_type): Rename
19214         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
19215         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
19216         Add PROCESSOR_M4K.
19217         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
19218         (ISA_MIPS32R2): New define.
19219         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
19220         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
19221         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
19222         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
19223         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
19224         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
19225         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
19226         compiling MIPS16 code.
19227         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
19228         comment.
19229         (ISA_HAS_SEB_SEH): New define.
19230         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
19231         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
19232         processor_type value renaming.  Add support for MIPS32R2.
19233         Clean up comments, and move "sb1" entry with other MIPS64 CPU
19234         entries.
19235         (override_options): Reimplement -mipsN option handling so that
19236         it will work correctly for -mips32r2.  Avoid branch-likely
19237         instructions on MIPS32R2.
19238         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
19239         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
19240         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
19241         (extendhisi2_hw, extendqisi2_hw): New.
19242         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
19243         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
19244         MIPS32R2, and MIPS64.
19245         (LINK_SPEC): Pass -mips32r2 to linker.
19246         * config/mips/t-isa3264: Built -mips32r2 multilibs.
19247         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
19248         for mips32r2 in the -march description.  Alphabetically sort
19249         CPU names in the -march description.  Add long-missed -mips32
19250         and -mips64 to MIPS option summary.
19251
19252         * config.gcc: Update copyright years to include 2003.
19253         * config/mips/mips.c: Likewise.
19254         * config/mips/mips.h: Likewise.
19255         * config/mips/mips.md: Likewise.
19256         * config/mips/netbsd.h: Likewise.
19257         * doc/invoke.texi: Likewise.
19258
19259 2003-01-08  Andreas Schwab  <schwab@suse.de>
19260
19261         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
19262         variable.
19263         * configure: Regenerated.
19264
19265 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
19266
19267         * config/h8300/h8300.c (output_logical_op): Replace byte/word
19268         extraction of det with b0, b1, w0, w2, etc.
19269         (compute_logical_op_length): Likewise.
19270         (compute_logical_op_cc): Likewise.
19271
19272 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
19273
19274         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
19275         HIGH on all variants.
19276
19277 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
19278
19279         * Makefile.in (PARTITION_H): New.
19280         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
19281         * basic-block.h: Include hard-reg-set.h.
19282
19283 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
19284
19285         * arm.h (ENABLE_XF_PATTERNS): Delete.
19286         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
19287         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
19288         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
19289         (cmpxf_trap): Delete.
19290         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
19291
19292 2003-01-08  Jan Hubicka  <jh@suse.cz>
19293
19294         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
19295         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
19296         (add??cc): New expanders.
19297         * i386.c (expand_int_addcc): New function.
19298         * i386-protos.h (expand_int_addcc): Declare.
19299
19300         * alias.c (memory_modified_1): New static function.
19301         (memory_modified): New static varaible.
19302         (memory_modified_in_insn_p): New global function.
19303         * rtl.h (memory_modified_in_insn_p): Declare.
19304         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
19305         references.
19306
19307         * expr.h (emit_conditional_add): Declare.
19308
19309 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
19310
19311         PR other/8947
19312         * doc/invoke.texi (-malign-double): Explain that the option breaks
19313         binary compatibility.
19314
19315 2003-01-08  Andreas Schwab  <schwab@suse.de>
19316
19317         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
19318         should come from the generic *-*-linux* entry.
19319
19320 2003-01-07  Jan Hubicka  <jh@suse.cz>
19321
19322         * cselib.c (cselib_current_insn_in_libcall): New static variable.
19323         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
19324         we are inside libcall.
19325         * cselib.h (elt_loc_list): Add in_libcall.
19326         * gcse.c (do_local_cprop): Do not copy propagate using insns
19327         in libcalls.
19328
19329 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
19330
19331         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
19332         not normally affect to issue rate.
19333
19334 2003-01-07  Jan Hubicka  <jh@suse.cz>
19335
19336         * genopinit.c (optabs): Add addc_optab.
19337         * ifcvt.c (noce_try_store_flag): Rename to ...
19338         (noce_try_addcc): ... this one; handle generic conditional increment.
19339         (noce_process_if_block): Update noce_try_addcc call.
19340         * optabs.c (emit_conditional_add): New.
19341         (init_obtabs): Initialize addc_optab.
19342         * optabs.h (optab_index): Add OTI_addcc.
19343         (addcc_optab): New macro.
19344         * md.texi: Document addMcc
19345
19346         PR target/8322
19347         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
19348         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
19349         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
19350
19351         * reload1.c (delete_output_reload): Avoid repeated attempts
19352         to delete insn.
19353
19354 2003-01-07  Andreas Schwab  <schwab@suse.de>
19355
19356         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
19357         Move --enable-initfini-array check ...
19358         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
19359         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
19360         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
19361         * configure: Rebuild.
19362
19363 2003-01-07  Richard Henderson  <rth@redhat.com>
19364
19365         * alias.c (find_base_value): Only use new_reg_base_value shortcut
19366         if the register is set once.
19367
19368 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
19369
19370         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
19371         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
19372         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
19373
19374 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
19375             Sunil Davasam  <sunil.k.davasam@intel.com>
19376
19377         PR libstdc++/9076
19378         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
19379         DW_CFA_same_value, read next and ignore.
19380
19381 2003-01-07  Richard Henderson  <rth@redhat.com>
19382
19383         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
19384
19385 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
19386
19387         * cfg.c: Include alloc-pool.h
19388         (edge_pool): New pool.
19389         (bb_pool): New pool.
19390         (first_deleted_edge): Remove.
19391         (first_deleted_block): Remove.
19392         (init_flow): Alloc/free the pools.
19393         (free_edge): Use pools.
19394         (alloc_block): Ditto.
19395         (expunge_block): Ditto.
19396         (cached_make_edge): Ditto.
19397
19398         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
19399
19400 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
19401
19402         * et-forest.c: Include alloc-pool.h.
19403         (struct et_forest): Add node_pool and occur_pool.
19404         (et_forest_create): Create the new pools.
19405         (et_forest_delete): Delete them.
19406         (et_forest_add_node): Allocate and free using pools.
19407         (et_forest_add_edge): Ditto.
19408         (et_forest_remove_node): Ditto.
19409         (et_forest_remove_edge): Ditto.
19410
19411         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
19412
19413 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
19414
19415         * config/h8300/h8300.c (output_logical_op): Simplify and
19416         optimize the handling of SImode.
19417         * config/h8300/h8300.c (compute_logical_op_length): Update
19418         accordingly.
19419         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
19420
19421 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
19422
19423         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
19424         big-endian correction to indirect arguments too.
19425
19426 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
19427
19428         Segher Boessenkool  <segher@koffie.nl>
19429
19430         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
19431         (alt_reg_names): Ditto, fix formatting.
19432         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
19433
19434 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19435
19436         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
19437         (output_logical_op): Constify intval and det.
19438         (compute_logical_length): Likewise.
19439         (compute_logical_cc): Likewise.
19440         (output_a_shift): Constify mask.
19441         (h8300_encode_label): Constify len.
19442
19443 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19444
19445         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
19446         (h8300_expand_epilogue): Likewise.
19447
19448 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
19449
19450         Segher Boessenkool  <segher@koffie.nl>
19451
19452         * config/rs6000/altivec.md: Remove spaces from assembler
19453         instruction argument lists.
19454
19455 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
19456
19457         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
19458         c4x_assembler_function_p.
19459         (c4x_null_epilogue_p): Complement return value, all uses updated.
19460         (c4x_insert_attributes): Add naked.
19461         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
19462         * doc/extend.texi: Update C4x function attributes.
19463
19464 2003-01-06  Richard Henderson  <rth@redhat.com>
19465
19466         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
19467         properly when changing "local-ness".
19468         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
19469
19470 2003-01-06  Dale Johannesen  <dalej@apple.com>
19471
19472         * config/darwin-protos.h:  Add prototypes for new section functions.
19473
19474 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
19475
19476         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
19477         to EABI.
19478
19479 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
19480
19481         * hwint.h: If the current compiler has no 64-bit type at all,
19482         make HOST_WIDEST_INT 32 bits.
19483
19484 2003-01-06  Eric Christopher  <echristo@redhat.com>
19485
19486         * config/mips/mips.md (movdf_internal2): Fix constraints.
19487
19488 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
19489
19490         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
19491
19492 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
19493
19494         * config/mips/mips.md (leadi): Use dla rather than la.
19495
19496 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
19497
19498         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
19499         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
19500
19501 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
19502
19503         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
19504         redefinition.
19505
19506 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19507
19508         * config/h8300/h8300.md (*extzv_8_23): New.
19509
19510 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
19511
19512         * pa64-hpux.h (JCR_SECTION_NAME): Define.
19513         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
19514         USE_EH_FRAME_REGISTRY when defining.
19515
19516 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
19517
19518         * config/h8300/h8300.c (output_a_shift): Do not output a
19519         variable shift.
19520         * config/h8300/h8300.md (two splitters): New.
19521
19522 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
19523
19524         * config/mips/mips.md: Disable the movstrsi define_split.
19525
19526 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19527
19528         * alloc-pool.c: Don't include "libiberty.h".
19529         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
19530         * convert.c (convert_to_real): Hide unused variable.
19531
19532 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19533
19534         * Makefile.in (gtyp-gen.h): Const-ify.
19535         * gcov-dump.c (tag_table): Likewise.
19536
19537 2003-01-04  Bruce Korb  <bkorb@gnu.org>
19538
19539         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
19540         of *both* the file name and the fix name.
19541
19542 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
19543
19544         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
19545         collect2.
19546         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
19547         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
19548         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
19549         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
19550         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
19551         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
19552         elfos.h.
19553         (EH_FRAME_IN_DATA_SECTION): Delete define.
19554         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
19555         (STARTFILE_SPEC): Use crtbegin.o.
19556         (ENDFILE_SPEC): Use crtend.o.
19557         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
19558         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
19559         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
19560         DTOR_LIST_BEGIN): Define.
19561         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
19562         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
19563         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
19564
19565 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
19566
19567         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
19568         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
19569         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
19570         Cleanup handling of replacement text.
19571         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
19572
19573 2003-01-04  Bruce Korb  <bkorb@gnu.org>
19574
19575         * fixinc/tests/base/math.h: removed obsolete results
19576         * fixinc/tests/base/stdlib.h: ditto
19577         * fixinc/tests/base/sys/param.h: ditto
19578         * fixinc/tests/base/sys/stat.h: ditto
19579         * fixinc/tests/base/time.h: ditto
19580         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
19581         * fixinc/tests/base/sys/byteorder.h: ditto
19582         * fixinc/inclhack.def: Remove superfluous backslashes
19583
19584 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
19585
19586         * config/h8300/h8300-protos.h: Add prototypes for
19587         the new functions defined below.
19588         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
19589         define.
19590         (dosize): Emit RTL instead of assembly code.
19591         (push): Likewise.
19592         (pop): Likewise.
19593         (h8300_output_function_prologue): Remove.
19594         (h8300_expand_prologue): New.
19595         (h8300_expand_epilogue): New.
19596         (h8300_output_function_epilogue): Do only the reset of
19597         pragma_saveall.
19598         * config/h8300/h8300.md (push_h8300): New.
19599         (push_h8300hs): Likewise.
19600         (pop_h8300): Likewise.
19601         (pop_h8300hs): Likewise.
19602         (*stm_h8300s_2): Change the name to stm_h8300s_2.
19603         (*stm_h8300s_3): Change the name to stm_h8300s_3.
19604         (*stm_h8300s_4): Change the name to stm_h8300s_4.
19605         (*ldm_h8300s_2): New.
19606         (*ldm_h8300s_3): Likewise.
19607         (*ldm_h8300s_4): Likewise.
19608         (return): Likewise.
19609         (*return_1): Likewise.
19610         (prologue): Likewise.
19611         (epilogue): Likewise.
19612         (monitor_prologue): Likewise.
19613
19614 2003-01-03  Dale Johannesen  <dalej@apple.com>
19615
19616         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
19617           machopic_picsymbol_stub1.
19618           (EXTRA_SECTION_FUNCTIONS):  Ditto.
19619         * rs6000/rs6000.c:  Update copyright.
19620           (machopic_output_stub):  Use them.  Remove an insn from stub code.
19621
19622 2003-01-02  Jason Merrill  <jason@redhat.com>
19623
19624         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
19625
19626         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
19627         static/external decls.
19628
19629         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
19630         outermost scope.
19631         * c-decl.c (c_make_fname_decl): Push the decls there, too.
19632
19633 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
19634
19635         * config/h8300/h8300-protos.h: Add a prototype for
19636         h8300_current_function_interrupt_function_p.
19637         * config/h8300/h8300.c (interrupt_handler): Remove.
19638         (os_task): Likewise.
19639         (monitor): Likewise.
19640         (pragma_interrupt): New.
19641         (WORD_REG_USED): Use
19642         h8300_current_function_interrupt_function_p.
19643         (dosize): Likewise.
19644         (h8300_output_function_prologue): Likewise.
19645         Do not set interrupt_handler, os_task, monitor.
19646         (h8300_output_function_prologue): Use
19647         h8300_current_function_interrupt_function_p.
19648         Do not set interrupt_handler, os_task, monitor.
19649         (h8300_current_function_interrupt_function_p): New.
19650         (h8300_pr_interrupt): Set pragma_interrupt.
19651         (h8300_insert_attributes): Reset pragma_interrupt.
19652
19653 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
19654
19655         * doc/install.texi (Configuration): Fix markup for reference to
19656         gcc/config.gcc.
19657
19658 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19659
19660         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
19661         (*iorhi3_two_qi): Likewise.
19662         (*iorsi3_zexthi): Likewise.
19663         (*xorhi3_zextqi): Likewise.
19664         (*xorsi3_zexthi): Likewise.
19665         (*xorsi3_zextqi): Likewise.
19666
19667 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
19668
19669         * config/h8300/h8300.c (stack_pointer_operand): New.
19670         (const_int_gt_2_operand): Likewise.
19671         (const_int_ge_8_operand): Likewise.
19672         * config/h8300/h8300.md (a splitter): Likewise.
19673         (a peephole2): Likewise.
19674         * config/h8300/h8300-protos.h: Add prototypes for the new
19675         functions above.
19676
19677 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
19678
19679         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
19680         objc/objc-act.h: Fix copyright years.
19681
19682 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
19683
19684         * doc/passes.texi: Fix documentation for -fssa-ccp
19685
19686 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
19687
19688         * gccbug.in: Update for new categories.
19689
19690 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
19691
19692         * config/h8300/h8300.md: Reorder some patterns.
19693
19694 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
19695
19696         * config/h8300/h8300.c (output_logical_op): Fix a warning.
19697
19698 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
19699
19700         * config/darwin-protos.h, config/c4x/c4x-protos.h,
19701         config/cris/cris-protos.h, config/i370/i370-protos.h,
19702         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
19703         config/v850/v850-protos.h: Use struct, and don't conditionally
19704         compile on GCC_C_PRAGMA_H.
19705
19706 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
19707
19708         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
19709         * config/h8300/h8300-protos.h: Likewise.
19710         * config/sh/sh-protos.h: Likewise.
19711
19712 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
19713
19714         * config/arm/arm-protos.h: Use struct cpp_reader instead of
19715         cpp_reader.
19716         * config/h8300/h8300-protos.h: Likewise.
19717         * config/sh/sh-protos.h: Likewise.
19718
19719 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
19720
19721         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
19722         arm_pr_long_calls_off): Use struct.
19723         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
19724         : Similarly.
19725         Don't include cpplib.h.
19726         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
19727         sh_pr_nosave_low_regs): Similarly.
19728
19729 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
19730
19731         * config/h8300/h8300.c: Include cpplib.h.
19732
19733 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
19734
19735         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
19736           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
19737           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
19738           "GCC" in the copyright header.
19739
19740 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
19741
19742         * c-pragma.c (c_register_pragma): New.
19743         (init_pragma): Use it.
19744         * c-pragma.h (cpp_register_pragma): Don't declare.
19745         (c_register_pragma): New.
19746         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
19747         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
19748         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
19749         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
19750         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
19751         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
19752         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
19753         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
19754         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
19755         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
19756         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
19757         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
19758
19759 See ChangeLog.8 for earlier changes.