OSDN Git Service

70c94414f973862433962d22437d00a4e21c8ae5
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-06-07  Magnus Kreth <magnus.kreth@gmx.de>
2             Thibaud Gaillard <thibaud.gaillard@nto.atmel.com>
3
4         PR other/7031
5         * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of
6         gcov.
7
8 2003-06-07  Kelley Cook  <kelleycook@wideopenwest.com>
9
10         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in
11         section names.
12         * configure: Regenerate.
13
14 2003-06-07  Alan Modra  <amodra@bigpond.net.au>
15
16         * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
17
18 2003-06-06  James E Wilson  <wilson@tuliptree.org>
19
20         PR inline-asm/10890
21         * reload1.c (merge_assigned_reloads): Abort only if two reloads have
22         different in fields.
23
24 2003-06-06  Nathanael Nerode  <neroden@gcc.gnu.org>
25
26         * configure.in: Make $(target_subdir) correspond with top level usage.
27         * Makefile.in: Likewise.
28         * configure: Regenerate.
29
30 2003-06-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31
32         * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
33         ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
34         unsigned HOST_WIDE_INT.
35         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
36         Likewise.
37         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
38         Likewise.
39
40 2003-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41
42         * doc/install.texi (Prerequisites): New section documenting
43         tools and packages necessary prior to building and/or
44         modifying GCC.
45         * doc/install.texi2html: Also generate prerequisites.html.
46
47 2003-06-06  Richard Earnshaw  <rearnsha@arm.com>
48
49         PR target/11052
50         * ifcvt.c (noce_process_if_block): Fail if the destination has
51         side-effects.
52
53 2003-06-06  Jason Merrill  <jason@redhat.com>
54
55         * stmt.c (resolve_asm_operand_names): Rename from
56         resolve_operand_names.  No longer static.  Avoid needless copying.
57         Don't build array of constraints.
58         (expand_asm_operands): Build it here.
59         * tree.h: Declare resolve_asm_operand_names.
60
61         * stmt.c (expand_decl): Put artificial vars into registers even
62         when not optimizing, and don't mark the regs as user vars.
63
64 2003-06-06  J"orn Rennecke <joern.rennecke@superh.com>
65
66         * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode
67         of the generated register.
68
69 2003-06-06  Daniel Jacobowitz  <drow@mvista.com>
70
71         * config.gcc: Add a missing sparc64 case.
72
73 2003-06-06  Jakub Jelinek  <jakub@redhat.com>
74
75         * mklibgcc.in: Propagate .note.GNU-stack section if needed into
76         the .hidden assembly stubs.
77
78 2003-06-06  H.J. Lu <hongjiu.lu@intel.com>
79
80         * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
81         and x86_64-*-*.
82
83         * config/i386/mmintrin.h: Update version and add alternate
84         intrinsic names.
85         * config/i386/xmmintrin.h: Likewise.
86
87         * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
88         intrinsics to ...
89         * config/i386/emmintrin.h: Here. New file.
90
91 2003-06-06  Roger Sayle  <roger@eyesopen.com>
92
93         * fold-const.c (fold <ABS_EXPR>):  Re-fold the result of folding
94         fabs(-x) into fabs(x).  Use tree_expr_nonnegative_p to determine
95         when the ABS_EXPR (fabs or abs) is not required.
96         (tree_expr_nonnegative_p): Move the logic that sqrt and exp are
97         always nonnegative from fold to here.  Additionally, cabs and fabs
98         are always non-negative, and pow and atan are non-negative if
99         their first argument is non-negative.
100
101         * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
102         Evaluate cabs of a constant at compile-time.  Convert cabs of a
103         non-complex argument into fabs.  Convert cabs(z) into
104         sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
105         -funsafe-math-optimizations or -ffast-math.
106         (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
107         Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.
108
109 Thu Jun  5 20:51:09 CEST 2003  Jan Hubicka  <jh@suse.cz>
110
111         * sourcebuild.texi (Front End Directory): Document new hooks.
112
113 Fri Jun  6 11:02:35 CEST 2003  Jan Hubicka  <jh@suse.cz>
114
115         * function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
116         * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic
117         stack frames.
118         (pro_epilogue_adjust_stack_rex64_2): New pattern
119
120 Fri Jun  6 11:03:14 CEST 2003  Jan Hubicka  <jh@suse.cz>
121                                Pop Sebastian
122                                Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
123
124         * cfghooks.h, cfghooks.c: New files.
125         * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
126         (OBJS): Add cfghooks.o.
127         (cfghooks.o): New rule.
128         * basic-block.h (split_edge): Rename to rtl_split_edge.
129         (verify_flow_info): Rename to rtl_verify_flow_info.
130         (cfghooks.h): Included here.
131         * cfgrtl.c (split_edge): Renamed rtl_split_edge.
132         (verify_flow_info): Renamed rtl_verify_flow_info.
133         * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
134
135         * basic-block.h (split_block, split_edge, flow_delete_block,
136         redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
137         (flow_delete_block_noexpunge):  Return void.
138         * cfg.c (verify_flow_info): New function.
139         * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
140         try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
141         Use delete_block.
142         * cfglayout.c (function_footer): Rename to...
143         (cfg_layout_function_footer): ... this variable
144         (unlink_insn_chain): Make global.
145         (fixup_reorder_chain, record_effective_endpoints): Update.
146         (cleanup_unconditional_jumps): Use delete_block.
147         (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
148         (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
149         (cfg_layout_initialize, cfg_layout_finalize): Update hooks.
150         * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block):  Delete.
151         (cfg_layout_function_footer): Declare.
152         * cfgloopmanip (split_loop_bb): Do not update RBI.
153         (remove_bbs): Use delete_block.
154         (loop_reidrect_edge, loop_delete_branch_edge): Use
155         redirect_edge_and_branch.
156         (create_preheader): Use split_block and redirect_edge_and_branch_force.
157         (split_edge_with): Likewise.
158         * cfgrtl.c: Include cfglayout.h
159         (split_edge): Rename to ...
160         (rtl_split_edge) ... this one; make local.
161         (redirect_edge_and_branch): Rename to ...
162         (rtl_redirect_edge_and_branch) ... this one; make local.
163         (redirect_edge_and_branch_force): Rename to ...
164         (rtl_redirect_edge_and_branch_force) ... this one; make local.
165         (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
166         (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
167         cfglayout.c; update to directly call RTL counterparts.
168         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
169         * ifcvt.c (find_cond_trap): Use delete_block.
170         (find_if_case_1): Use delete_block.
171         (find_if_case_2): Use delete_block.
172         * rtl.h (unlink_insn_chain): Declare.
173         * toplev.c (rtl_reigster_cfg_hooks): New.
174
175 2003-06-05  Richard Henderson  <rth@redhat.com>
176
177         * recog.c (peephole2_optimize): Revert last change.
178
179 2003-06-05  Richard Henderson  <rth@redhat.com>
180
181         * recog.c (peephole2_optimize): Don't split block unless
182         can_throw_internal.
183
184 2003-06-06  Kazu Hirata  <kazu@cs.umass.edu>
185
186         * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl.
187         * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise.
188
189 2003-06-05  Kelley Cook  <kelleycook@wideopenwest.com>
190
191         PR optimization/4490
192         * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
193         * doc/invoke.texi (m96bit-long-double, m128bit-long-double):  Reword
194         documentation to accurately reflect what these options do.
195
196 2003-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
197
198         * config/sh/linux.h (STARTFILE_SPEC): Handle -pie.  Simplify.
199         (ENDFILE_SPEC): Redefine to handle -pie.
200
201 2003-06-05  Phil Edwards <phil@jaj.com>
202
203         * Makefile.in (qmtest-g++): Use target_alias, not target.
204
205 2003-06-05  Per Bothner  <pbothner@apple.com>
206
207         * toplev.c (push_srcloc):  Simplify behavior to save current location
208         and set current location to parameters.
209         (pop_srcloc):  Simplify semantics.
210         (lang_dependent_init):  Remove now-useless initial push_srcloc.
211
212 2003-05-06  Richard Henderson  <rth@redhat.com>
213
214         * dwarf2out.c (loc_descriptor_from_tree): Return 0 for 
215         language-specific tree codes.
216
217 2003-06-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
218
219         PR middle-end/9986
220         * pa.c (pa_init_builtins): Also set implicit_built_in_decls for
221         BUILT_IN_FPUTC_UNLOCKED to NULL_TREE.
222
223 Thu Jun  5 18:32:46 CEST 2003  Jan Hubicka  <jh@suse.cz>
224
225         * install.tex: Document profiledbootstrap.
226
227         * configure.in:  Add support for lang.stageprofile and
228         lang.stagefeedback
229         * Makefile.in (clean, distclean): Kill new stages
230         (POSTSTAGE1_FLAGS_TO_PASS): Break from ...
231         (STAGE2_FLAGS_TO_PASS): ... this one.
232         (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New.
233         (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS.
234         (stageprofile_build, stageprofile_copy, stagefeedback_build,
235         stagefeedback_copy): New.
236         (restageprofile, restagefeedback, stageprofile-start, 
237         stageprofile, stagefeedback-start): Likewise.
238
239 2003-06-05  David Miller  <davem@redhat.com>
240             Richard Henderson  <rth@redhat.com>
241
242         * optabs.c (HAVE_conditional_trap): Provide default.
243         (gen_conditional_trap): Likewise.
244         (init_optabs): Merge init_traps.
245         (gen_cond_trap): Use prepare_operand.  Restructure and avoid ifdef.
246
247 Thu Jun  5 14:59:44 CEST 2003  Jan Hubicka  <jh@suse.cz>
248
249         * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
250         is REG for nonzero_bits (REG) == 8.  
251
252 Thu Jun  5 13:23:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
253
254         * i386.md (align): Fix warning; clarify what to do when no p2align
255         is available.
256
257 2003-06-05  Nick Clifton  <nickc@redhat.com>
258
259         * config.gcc (m32r-elf): Revert previous delta.
260         * config/m32r/t-m32r (crtinit.o): Fix rule to work with
261         multilibs.  Remove m32rx specific version.
262         (crtfini.o): Likewise.
263         (EXTRA_MULTILIB_PARTS): Define.
264         
265 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
266
267         * doc/md.texi (Machine Constraints): Correct the meaning of
268         constraints related to floating-point registers on SPARC.
269
270 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
271             Paolo Bonzini  <bonzini@gnu.org>
272
273         PR target/10663
274         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
275         assembler and linker output to /dev/null.
276         Use a 'sed' construct instead of 'grep -A1'.
277         * configure: Regenerate.
278
279 2003-06-04  Richard Henderson  <rth@redhat.com>
280
281         * config/i386/i386.c (struct ix86_address): Add seg.
282         (no_seg_address_operand): New.
283         (ix86_decompose_address): Restructure PLUS loop.  Accept one
284         UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS.  Adjust ESP swap test
285         to test for a regnum, not stack_pointer_rtx.
286         (ix86_address_cost): Reduce cost if non-default segment.
287         (legitimate_address_p): Remove UNSPEC_TP check.
288         (get_thread_pointer): Add to_reg argument.  Don't represent
289         the thread pointer as a memory load.
290         (legitimize_tls_address): Split out of ...
291         (legitimize_address): ... here.
292         (print_operand_address): Handle parts.seg.
293         (ix86_expand_move): Use legitimize_tls_address.
294         (ix86_rtx_costs): Handle UNSPEC_TP.
295         * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New.
296         (TARGET_TLS_DIRECT_SEG_REFS): New.
297         (TARGET_SWITCHES): Add tls-direct-seg-refs.
298         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default.
299         (PREDICATE_CODES): Add no_seg_address_operand.
300         * config/i386/i386.md (lea_1): Use it.
301         (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise.
302         (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New.
303         * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
304         * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
305         * doc/invoke.texi: Add -mtls-direct-seg-refs.
306
307 2003-06-04  Mark Mitchell  <mark@codesourcery.com>
308
309         * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation.
310         (QMTEST_GPP_TESTS): Use "g++" by default.
311         (stamp-qmtest): Tweak database creation.
312         (QMTEST_DIR/context): Update context file format.
313         (qmtest-g++): Tweak command-line.
314
315 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
316
317         * Makefile.in (varasm.o): Don't set -Wno-error.
318         * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear.
319
320 2003-06-04  Zack Weinberg  <zack@codesourcery.com>
321
322         PR bootstrap/3163
323         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
324         (gcc_AC_FUNC_MMAP_BLACKLIST): New.
325         * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
326         and AC_CHECK_FUNCS lists, respectively.  Use
327         gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
328         AC_FUNC_MMAP_FILE.
329         * configure, config.in: Regenerate.
330
331 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
332
333         * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning.
334         * arm.c (arm_output_function_prologue): Fix format specifiers.
335         * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise.
336         * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of
337         HOST_WIDE_INT_PRINT_DEC.
338         * vax.c (vax_output_function_prologue): Fix format specifiers.
339
340 2003-06-04  Richard Henderson  <rth@redhat.com>
341
342         * cse.c (find_best_addr): Consider binary operators even if second
343         argument is not CONST_INT.
344
345 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
346
347         * doc/invoke.texi (max-cse-path-length): Document.
348
349 2003-06-04  Richard Henderson  <rth@redhat.com>
350
351         * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
352
353 2003-06-04  Andrew Pinski <pinskia@physics.uc.edu>
354
355         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
356         Remove semi-colon at the end of the expression.
357
358 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
359
360         * i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
361         * i370.h (mvs_function_name_length): Likewise.
362         * i960.h (CONSTANT_ALIGNMENT): Likewise.
363         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
364         * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
365         * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
366         * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
367         variable.
368
369 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
370
371         * config.gcc: Reorganize --with-cpu logic.  Set
372         configure_default_options according to the default CPU, --with-cpu,
373         --with-arch, --with-tune, --with-schedule, --with-abi, and
374         --with-float.  Check for legal values of various options.
375         * configure.in: Define configure_default_options in configargs.h.
376         * configure: Regenerated.
377         * config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
378         (TARGET_DEFAULT_FLOAT_P): New macros.
379         * gcc.c (do_option_spec): New function.
380         (struct default_spec, option_default_specs): New.
381         (main): Call do_option_spec.
382         * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
383         config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
384         config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
385
386         * doc/install.texi: Update --with-cpu documentation.  Mention
387         --with-arch, --with-schedule, --with-tune, --with-abi, and
388         --with-float.
389         * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
390
391 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
392
393         * config.gcc: Only process --with-cpu logic in the third pass.
394
395 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
396
397         * config.gcc: Reorganize --with-cpu section.  Remove an
398         obsolete comment about the default CPU for x86-64.  Fix
399         a typo for the ep9312.  Update the list of supported PowerPC
400         CPUs.  Support a limited set of new --with-cpu options
401         for i386.
402
403 2003-06-04  Aldy Hernandez  <aldyh@redhat.com>
404
405         * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
406         complex numbers <= 32 bits into two registers.
407
408 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
409
410         * alpha.c (print_operand_address): Fix format specifier warnings.
411         * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
412         * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
413         * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
414         * arm/pe.h (ASM_OUTPUT_COMMON): Likewise.
415         * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL,
416         ASM_OUTPUT_SKIP): Likewise.
417         * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
418         * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
419         * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON):
420         Likewise.
421         * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
422         * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise.
423         * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise.
424         * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
425         * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise.
426         * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
427         * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
428         * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
429         * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
430         * svr3.h (ASM_OUTPUT_COMMON): Likewise.
431
432 2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>
433
434         * c-decl.c (c_init_decl_processing): Clear input_file_name
435         while building common nodes.
436         * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
437         Don't add working directory for strings like <built-in> .
438
439 2003-06-04  David Edelsohn  <edelsohn@gnu.org>
440
441         * doc/install.texi (*-ibm-aix*): Native as and ld required
442         to bootstrap on AIX 5L.
443
444 2003-06-04  Richard Henderson  <rth@redhat.com>
445
446         * c-common.c (handle_cleanup_attribute): New.
447         (c_common_attributes): Add it.
448         * c-decl.c (finish_decl): Honor the cleanup attribute.
449         * doc/extend.texi (Variable Attributes): Document it.
450
451         * unwind-c.c: New file.
452         * Makefile.in (LIB2ADDEH): Add it.
453         * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
454         config/ia64/t-ia64: Likewise.
455
456 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
457
458         * function.c (trampolines_created): New variable.
459         (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
460         * function.h (trampolines_created): Add.
461         * config/s390/linux.h (ASM_FILE_END): Define.
462         * config/alpha/linux-elf.h (ASM_FILE_END): Define.
463         * config/m68k/linux.h (ASM_FILE_END): Define.
464         * config/rs6000/linux.h (ASM_FILE_END): Define.
465         * config/rs6000/linux64.h (ASM_FILE_END): Define.
466         * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
467         * config/sparc/linux.h (ASM_FILE_END): Define.
468         * config/sparc/linux64.h (ASM_FILE_END): Define.
469         * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
470         * config/i386/linux.h (SUBTARGET_FILE_END): Define.
471         * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
472
473 Wed Jun  4 18:39:33 CEST 2003  Jan Hubicka  <jh@suse.cz>
474
475         * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions
476         (ix86_reorg): Use it.
477         * i386.md (align): New insn pattern.
478
479 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
480
481         * toplev.c (rest_of_type_compilation): Fix typo.
482
483 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
484             Alan Modra  <amodra@bigpond.net.au>
485
486         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
487         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
488         * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
489         * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
490         * config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
491         * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
492         (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
493         * config/rs6000/rs6000.c (output_profile_hook): Likewise.
494
495         * configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
496         Pass it to $gcc_cv_as.
497         * configure: Rebuilt.
498
499         * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
500         (print_operand): Allow TARGET_AIX to be non-constant.
501         (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
502         Define unconditionally.
503         (rs6000_elf_declare_function_name): New function.
504         * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
505         non-constant.
506         * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
507         to 1.
508         (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
509         [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
510         is defined.
511         (TARGET_AIX): Define to 1 if TARGET_64BIT.
512         (PROCESSOR_DEFAULT): Remove.
513         (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
514         INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
515         [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
516         (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
517         -m32 and -m64.
518         (MULTILIB_DEFAULTS): Define.
519         (SUBSUBTARGET_EXTRA_SPECS): Define.
520         (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
521         (TARGET_TOC): Define only if !RS6000_BI_ARCH.
522         (TARGET_NO_TOC): Remove.
523         [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
524         TARGET_PROTOTYPE): Define to 0.
525         (NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
526         (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
527         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
528         if !TARGET_64BIT.
529         (USER_LABEL_PREFIX): Remove.
530         (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
531         (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
532         if TARGET_64BIT.
533         (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
534         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
535         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
536         (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
537         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
538         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
539         TARGET_64BIT.
540         (RS6000_CALL_GLUE): Likewise.
541         (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
542         RESTORE_FP_SUFFIX): Likewise.
543         (ASM_DECLARE_FUNCTION_NAME): Remove.
544         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
545         DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
546         name if TARGET_64BIT.
547         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
548         !TARGET_64BIT.
549         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
550         (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
551         (DRAFT_V4_STRUCT_RET): Define.
552         (SIGNAL_FRAMESIZE): New enum value.
553         (MD_FALLBACK_FRAME_STATE_FOR): Define.
554         * config/rs6000/default64.h: New file.
555         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
556         options.
557         (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
558         to RS6000_ABI_NAME.  Only disallow mixing of -fPIC with -mcall-aixdesc
559         if !TARGET_64BIT.
560         [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
561         (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
562         function.
563         (TARGET_OS_SYSV_CPP_BUILTINS): Define.
564         (TARGET_OS_CPP_BUILTINS): Use it.
565         (CPP_SYSV_SPEC): Remove.
566         (CPP_SPEC): Remove cpp_sysv.
567         (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
568         Add SUBSUBTARGET_EXTRA_SPECS.
569         (SUBSUBTARGET_EXTRA_SPECS): Define.
570         * config/rs6000/biarch64.h: New file.
571         * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
572         New prototype.
573         * config/rs6000/x-linux64: New file.
574         * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
575         multilibs.
576         * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
577         * config/rs6000/eabi-cn.asm: Likewise.
578         * config/rs6000/tramp.asm: Likewise.
579         * config/rs6000/sol-ci.asm: Likewise.
580         * config/rs6000/sol-cn.asm: Likewise.
581         * config/rs6000/linux.h (TARGET_64BIT): Define to 0.
582         (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
583         * config/rs6000/ppc-asm.h: Move __powerpc64__ section before
584         _CALL_AIXDESC section.
585         * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
586         defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
587         or default32.
588
589 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
590
591         * config.gcc: Revert accidentally committed ARM changes.
592
593 2003-06-04  Roger Sayle  <roger@eyesopen.com>
594
595         * builtins.c (dconstpi, dconste): New mathematical constants.
596         (init_builtin_dconsts): New function to initialize dconstpi
597         and dconste.
598         (fold_builtin): Optimize exp(1.0) = e.  Evaluate exp(x) at
599         compile time with -ffast-math when x is an integer constant.
600         Optimize tan(0.0) = 0.0.  Optimize atan(0.0) = 0.0,
601         atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math.
602
603 2003-06-04  Roger Sayle  <roger@eyesopen.com>
604
605         * calls.c (expand_call): Avoid calling pure or const functions
606         when the result is ignored (or void) and none of the arguments
607         are volatile.  Move warning diagnostic earlier in function.
608
609 2003-06-04  Andreas Jaeger  <aj@suse.de>
610
611         * system.h: Do not poison TDESC_SECTION_ASM_OP,
612         RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE.
613
614 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
615
616         * final.c (asm_fprintf): Update comments, accept "-+ #0" flags,
617         optimize '%' case, handle %c, don't accept %p, %e, %f or %g,
618         handle %ll, optimize regular character case.
619
620 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
621
622         * Makefile.in (cse.o): Add params.h dependency.
623         * cse.c: Include params.h.
624         (PATHLENGTH): Removed.
625         (struct cse_basic_block_data): Make path array dynamic.
626         (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead
627         of PATHLENGTH.
628         (cse_main, cse_basic_block): Allocate path array.
629         * params.def (PARAM_MAX_CSE_PATH_LENGTH): New.
630
631 Wed Jun  4 09:49:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
632
633         * i386.c (ix86_reorg): Replace the jump instead of adding nop.
634         * i386.md (UNSPEC_REP): New constant.
635         (return_internal_long): New pattern.
636
637 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
638
639         PR optimization/11018
640         * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
641         consistently to decide whether the scratch register is really
642         required.
643
644 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
645
646         PR optimization/10876
647         * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
648         new 'O' constraint for constant 4096.
649         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
650         * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
651         Do not transform into MINUS insn for constant 4096.
652         (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
653         for constant 4096 as third operand.
654         (addsi3 expander): Remove.
655         (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
656         new alternative for constant 4096 as third operand.
657         (subdi3 expander): Do not transform into PLUS insn for constant 4096.
658         (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
659         operand.
660         (subsi3 expander): Remove.
661         (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
662         constant 4096 as third operand.
663         * doc/md.texi (Machine Constraints): Document new 'O' constraint for
664         the SPARC port.
665
666 2003-06-03  Chris Demetriou  <cgd@broadcom.com>
667
668         * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define.
669
670 2003-06-04  Andreas Jaeger  <aj@suse.de>
671
672         * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
673
674         * config/i386/i386.c (ix86_expand_prologue): Do not use
675         SUBTARGET_PROLOGUE.
676
677         * system.h: Poision SUBTARGET_PROLOGUE.
678
679         * config/arm/arm-protos.h: Remove unused rdate_section prototype.
680
681         * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
682         dependend code.
683
684         * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
685
686         * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
687         INSN_CACHE_LINE_WIDTH.
688
689         * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
690         (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
691         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
692
693         * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
694         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
695
696         * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
697         (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
698         (dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
699         (dbxout_block): Remove usage of DBX_LBRAC_FIRST.
700         (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
701         (dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
702
703         * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
704         DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
705         DBX_WORKING_DIRECTORY.
706
707         * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
708         DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
709
710         * config/frv/frv-protos.h: Remove unused const_section
711         declaration.
712         * config/vax/vax-protos.h: Likewise.
713
714         * output.h: Remove CONST_SECTION_ASM_OP usage.
715
716         * system.h: Poison CONST_SECTION_ASM_OP.
717
718         * crtstuff.c (__do_global_dtors_aux): Remove usage of
719         CRT_GET_RFIB_TEXT.
720         (frame_dummy): Likewise.
721         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
722         * system.h: Poison CRT_GET_RFIB_TEXT.
723
724         * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code.
725
726         * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables.
727         (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code.
728         (recognized_function): Likewise.
729         (read_scan_file): Likewise.
730
731 2003-06-03  Roger Sayle  <roger@eyesopen.com>
732
733         * optabs.c (expand_binop): Optimize complex multiplication for
734         the case of squaring a complex argument.
735
736 2003-06-03  Roger Sayle  <roger@eyesopen.com>
737
738         * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
739         non-volatile operands of binary operations.
740         (prepare_cmp_insn): Likewise.
741
742 2003-06-03  Roger Sayle  <roger@eyesopen.com>
743
744         * varasm.c (force_const_mem): Handle alignment of constants not
745         representable as a type in the front-end language.
746
747 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
748
749         * flow.c (initialize_uninitialized_subregs): Use
750         emit_move_insn instead of emitting a hardcoded move.
751
752 2003-06-03  Richard Henderson  <rth@redhat.com>
753
754         * optabs.c (expand_abs_nojump): Split out from ...
755         (expand_abs): ... here.
756         * optabs.h (expand_abs_nojump): Declare.
757         * ifcvt.c: (noce_try_abs): Use expand_abs_nojump.
758         * Makefile.in (ifcvt.o): Depend on optabs.h.
759
760 2003-06-03  Alan Modra  <amodra@bigpond.net.au>
761
762         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
763
764 2003-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
765
766         * config.gcc (default_use_cxa_atexit): New variable, defaults to no.
767         (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit
768         to yes.
769         * configure.in: Allow default_use_cxa_atexit to determine the
770         value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or
771         disabled.
772         * configure: Regenerate.
773
774 2003-06-03  Douglas B Rupp  <rupp@gnat.com>
775
776         * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
777         * doc/gcc.texi: Remove vms.texi section.
778         * doc/vms.texi: Remove obsolete file.
779
780 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
781
782         * configure.in (inhibit_libc): Don't define when configuring
783         with --with-newlib --with-headers.
784         * configure: Regenerate.
785
786         * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules.
787
788 2003-06-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
789
790         * configure.in (gcc_cv_as_hidden): Disable .hidden completely on
791         IRIX 6 without GNU ld.
792         * configure: Regenerate.
793
794 2003-06-03  Roger Sayle  <roger@eyesopen.com>
795
796         * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
797         of a complex number rather than invoke mov_optab directly.
798
799 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
800
801         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
802         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
803
804 2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>
805
806         * config/i386/x86-64.h: Remove two target-independent comments;
807          replace "GNU CC" with "GCC".
808
809 2003-06-03  Anthony Green  <green@redhat.com>
810
811         * config/frv/t-frv (EXTRA_HEADERS): Remove media.h
812
813 2003-06-03  Roger Sayle  <roger@eyesopen.com>
814
815         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
816         New builtins representing ISO C99's cabs, cabsf and cabsl.
817         * builtins.c (expand_builtin_fabs): New function.
818         (expand_builtin_cabs): New function.
819         (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L}
820         using expand_builtin_fabs and expand_builtin_cabs respectively.
821
822         * doc/extend.texi: Document new cabs, cabsf and cabsl builtins.
823
824 2003-06-03  Aldy Hernandez  <aldyh@redhat.com>
825
826         * function.c (assign_parms): Split complex arguments.
827
828         * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
829
830         * expr.h (SPLIT_COMPLEX_ARGS): Define.
831         (split_complex_types): Protoize.
832         (split_complex_values): Protoize.
833
834         * calls.c (expand_call): Split complex arguments on architectures
835         that require it.
836         (split_complex_values): New.
837         (split_complex_types): New.
838
839         * config/rs6000/rs6000.c (rs6000_libcall_value): New.
840         (rs6000_function_value): Handle complex values on AIX.
841         (rs6000_complex_function_value): New.
842
843         * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
844
845         * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
846         (SPLIT_COMPLEX_ARGS): New.
847
848 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
849
850         * configure.in (HAVE_LD_PIE): Check for ld -pie.
851         * config.in: Rebuilt.
852         * configure: Rebuilt.
853         * toplev.c (flag_pie, flag_shlib): New variables.
854         (f_options): Add -fpie and -fPIE.
855         (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
856         Set flag_shlib if flag_pic and not -fpie/-fPIE.
857         * flags.h (flag_pic, flag_shlib): Add.
858         * varasm.c (default_binds_local_p): Use flag_shlib instead of
859         flag_pic.
860         * gcc.c (LINK_PIE_SPEC): Define.
861         (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
862         (option_map): Add --pie -> -pie mapping.
863         * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
864         and -fPIE the same way as -fPIC.
865         * config/openbsd.h (ASM_SPEC): Likewise.
866         * config/frv/frv.h (ASM_SPEC): Likewise.
867         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
868         * config/arm/semi.h (ASM_SPEC): Likewise.
869         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
870         * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
871         * config/i386/beos-elf.h (CC1_SPEC): Likewise.
872         * config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
873         * config/m68k/linux.h (CPP_SPEC): Likewise.
874         * config/m68k/netbsd.h (ASM_SPEC): Likewise.
875         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
876         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
877         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
878         * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
879         * config/pa/pa-linux.h (CPP_SPEC): Likewise.
880         * config/netbsd-aout.h (ASM_SPEC): Likewise.
881         * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
882         * config/rs6000/vxworks.h (CPP_SPEC): Likewise.
883         * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
884         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
885         * config/sparc/sparc.h (ASM_SPEC): Likewise.
886         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
887         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
888         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
889         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
890         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
891         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
892         Simplify.
893         * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
894         * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
895         * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
896         * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
897         * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
898         * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
899         * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
900         * doc/invoke.texi: Document -pie, -fpie and -fPIE options.
901
902 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
903
904         * builtins.c (expand_builtin_memcpy): Remove endp argument and endp
905         != 0 handling.  Pass 0 to store_by_pieces.
906         (expand_builtin_mempcpy): Add endp argument.  Don't call
907         expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
908         directly.  If ignoring result, only do expand_call.
909         (expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
910         otherwise.
911         (expand_builtin_strncpy, expand_builtin_memset): Adjust
912         store_by_pices callers.
913         (expand_builtin): Adjust expand_builtin_memcpy and
914         expand_builtin_mempcpy callers.
915         * expr.c (can_move_by_pieces): New function.
916         (move_by_pieces): Add endp argument, return to resp. memory at end
917         or one byte earlier depending on endp.
918         (store_by_pieces): Likewise.
919         (emit_block_move): Adjust call to move_by_pieces.
920         (emit_push_insn): Adjust move_by_pieces caller.
921         * expr.h (can_move_by_pieces): New prototype.
922         (store_by_pieces): Adjust prototypes.
923         * rtl.h (move_by_pieces): Adjust prototype.
924         * config/mips/mips.c (expand_block_move): Adjust move_by_pieces
925         caller.
926
927 2003-06-03  Ben Elliston  <bje@wasabisystems.com>
928
929         * doc/md.texi (Processor pipeline description): Improve wording.
930
931 2003-06-03  Neil Booth  <neil@daikokuya.co.uk>
932
933         * c-opts.c (c_common_handle_option): New, pulled out of
934         c_common_decode_option.  Substitute uses of argv.
935         (c_common_decode_option): Broken into two.
936
937 2003-06-02  Roger Sayle  <roger@eyesopen.com>
938             Zack Weinberg  <zack@codesourcery.com>
939
940         * emit-rtl.c (gen_complex_constant_part):  Remove unnecessary
941         test of TREE_CONSTANT_POOL_ADDRESS_P.
942
943 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
944
945         * mips.c: Don't include output.h twice.
946         * stormy16.c: Likewise.
947         * xtensa.c: Likewise.
948         * output.h: Protect against multiple inclusion.
949
950 2003-06-02  J"orn Rennecke <joern.rennecke@superh.com>
951
952         * sh.h (OLD_ARG_MODE): New macro.
953         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
954         (FUNCTION_ARG_1): Break out of:
955         (FUNCTION_ARG).  Use OLD_ARG_MODE.
956
957 2003-06-02  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
958
959         * gcc/config.gcc Add support multilib parts for m32rx processor.
960
961 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
962
963         * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh.
964         (mostlyclean): Delete c-options.c and c-options.h.
965
966 2003-06-02  Neil Booth  <neil@daikokuya.co.uk>
967
968         * c-opts.c (CL_REJECT_NEGATIVE): New.
969         (c_common_decode_option): Update to use it.
970         * c.opt: Update documentation; use RejectNegative.
971         * opts.sh: Handle RejectNegative.
972
973 2003-06-01  Zack Weinberg  <zack@codesourcery.com>
974
975         * ggc-page.c (init_ggc): Give better diagnostics on failure to
976         open /dev/zero.
977         * toplev.c (crash_signal): Reset handling for received signal
978         to SIG_DFL.
979
980 2003-06-02  Ben Elliston  <bje@wasabisystems.com>
981
982         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare.
983         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already.
984         (arm_use_dfa_pipeline_interface): Implement.
985         * config/arm/arm.md (arm): New automaton.
986         (write_buf): Remove function units; new cpu unit.
987         (write_blockage): Remove function units; new cpu unit.
988         (core): Remove function units; new cpu unit.
989         (r_mem_f_wbuf): New instruction reservation.
990         (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise.
991         (store1_ldsched, store2, store3, store4): Likewise.
992         (load_ldsched, load_ldsched_xscale, load_or_store): Likewise.
993         (mult, mult_ldsched, mult_ldsched_strongarm): Likewise.
994         (multi_cycle, single_cycle): Likewise.
995         * config/arm/fpa.md (armfp): New automaton.
996         (fpa): Remove function units; new cpu unit.
997         (fpa_mem): Remove function unit; new cpu unit.
998         (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations.
999         (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise.
1000
1001 2003-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1002
1003         * builtin-attrs.def (ATTR_ASM_FPRINTF): New.
1004         * c-format.c (enum format_type): Add asm_fprintf_format_type.
1005         (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs,
1006         asm_fprintf_flag_pairs, asm_fprintf_char_table): New.
1007         (format_types_orig): Renamed from format_types.  Add new data.
1008         (format_types): Declare as pointer.
1009         (handle_format_attribute): Move later in file so we have all
1010         necessary declarations.  Add section to capture HOST_WIDE_INT.
1011         * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New.
1012         (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF.
1013
1014 2003-06-01  Andreas Jaeger  <aj@suse.de>
1015
1016         * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and
1017         ROUND_TYPE_SIZE_UNIT.
1018
1019         * stor-layout.c (finalize_record_size): Remove usages of
1020         ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1021         (finalize_type_size): Likewise.
1022         (layout_type): Likewise.
1023
1024         * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1025
1026         * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro.
1027
1028         * config/d30v/d30v.h: Remove text copied from the manual.
1029
1030 2003-06-01  Roger Sayle  <roger@eyesopen.com>
1031             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1032             Geoffrey Keating  <geoffk@apple.com>
1033
1034         * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
1035         constants as condition code values.
1036
1037 2003-06-01  DJ Delorie  <dj@redhat.com>
1038
1039         * cppmacro.c (warn_of_redefinition): Handle cases where the two
1040         definitions have different numbers of tokens.
1041
1042 2003-06-01  Andreas Jaeger  <aj@suse.de>
1043
1044         * gen-protos.c (main): Readd unused attribute for argc.
1045
1046 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1047
1048         * Makefile.in (c-options.c, c-options.h): Parallel make safe.
1049         * c.opt: End in blank line.
1050         * opts.sh: Take AWK from environment if available; use C locale.
1051
1052 2003-06-01  Andreas Schwab  <schwab@suse.de>
1053
1054         * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1.
1055
1056 2003-06-01  Andreas Jaeger  <aj@suse.de>
1057
1058         * gen-protos.c (main): Revert patch to check for argument.
1059
1060 2003-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1061
1062         PR target/11044
1063         * config/i386/i386.md (length attribute): Set length to 4
1064         for instructions of type "fcmp".
1065
1066 2003-06-01  Andreas Jaeger  <aj@suse.de>
1067
1068         * toplev.c: Use ISO C90 prototypes.
1069
1070         * toplev.h: Use ISO C90 prototypes.
1071
1072         * genrecog.c: Use ISO C90 prototypes.
1073         (nodes_identical): Correct declaration to match prototype.
1074         (maybe_both_true): Likewise.
1075         (merge_trees): Likewise.
1076
1077         * genpeep.c (gen_peephole): Remove #if 0 code.
1078         Use ISO C90 prototypes.
1079
1080         * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code.
1081         Remove #if 0'ed function simplify_by_alternatives.
1082         (optimize_attrs): Remove #if 0'ed code.
1083         Remove ^L.
1084         Use ISO C90 prototypes.
1085         (make_canonical): Remove #if 0'ed code.
1086         (convert_const_symbol_ref): Remove #if 0'ed function.
1087
1088         * gen-protos.c (main): Check for argument.
1089
1090         * rtl.h: Use ISO C90 prototypes for functions from lists.c.
1091
1092         * params.h: Use ISO C90 prototypes.
1093         * params.c: Likewise.
1094         * intl.c: Likewise.
1095         * intl.h: Likewise.
1096         * lists.c: Likewise.
1097         * errors.c: Likewise.
1098         * errors.h: Likewise.
1099         * gencodes.c: Likewise.
1100         * genpreds.c: Likewise.
1101         * genattr.c: Likewise.
1102         * gen-protos.c: Likewise.
1103         * genflags.c: Likewise
1104         * genconditions.c: Likewise.
1105         * genautomata.c: Likewise.
1106         * gencheck.c: Likewise.
1107         * genconfig.c: Likewise.
1108         * genconstants.c: Likewise.
1109         * genemit.c: Likewise.
1110         * genextract.c: Likewise.
1111         * gengenrtl.c: Likewise.
1112         * gengtype.c: Likewise.
1113         * gengtype.h: Likewise.
1114         * genopinit.c: Likewise.
1115         * genoutput.c: Likewise.
1116         * gensupport.c: Likewise.
1117         * gensupport.h: Likewise.
1118
1119         * sdbout.h: Use ISO C90 prototypes.
1120
1121         * sdbout.c (CONTIN): Removed empty macro.
1122         (sdbout_one_type): Remove CONTIN usages.
1123         Remove ^Ls.
1124         (tag_of_ru_type): Remove #if 0'ed function.
1125         (sdbout_symbol): Remove #if 0'ed code.
1126         (sdbout_one_type): Remove a #if 1.
1127         (sdbout_one_type): Remove #if 0'ed code.
1128         (sdbout_init): Remove RMS_QUICK_HACK_1 code.
1129         Remove PARAMS, use ISO C90 prototypes for all functions.
1130
1131 2003-06-01  Josef Zlomek  <zlomekj@suse.cz>
1132
1133         * rtl.def (CONST_DOUBLE): Update comment.
1134
1135 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1136
1137         * opts.sh: Remove path from sort.
1138
1139 2003-06-01  Aldy Hernandez  <aldyh@redhat.com>
1140
1141         PR/9680
1142         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require
1143         TARGET_SPE for SPE_VECTOR_MODE.
1144
1145 2003-05-31  Aldy Hernandez  <aldyh@redhat.com>
1146
1147         * toplev.c (botch): Remove.
1148         (do_abort): Remove.
1149         (set_Wunused): Comment.
1150         (set_Wextra): Comment.
1151         Remove ^L's.
1152         (rest_of_compilation): Factor out common code into functions.
1153         (rest_of_handle_inlining): New.
1154         (rest_of_handle_ssa): New.
1155         (rest_of_handle_cse): New.
1156         (rest_of_handle_gcse): New.
1157         (rest_of_handle_loop_optimize): New.
1158         (rest_of_handle_jump_bypass): New.
1159         (rest_of_handle_sibling_calls): New.
1160         (rest_of_handle_null_pointer): New.
1161         (rest_of_handle_addresof): New.
1162         (rest_of_handle_flow): New.
1163         (rest_of_handle_branch_prob): New.
1164         (rest_of_handle_if_conversion): New.
1165         (rest_of_handle_tracer): New.
1166         (rest_of_handle_loop2): New.
1167         (rest_of_handle_cse2): New.
1168         (rest_of_handle_life): New.
1169         (rest_of_handle_combine): New.
1170         (rest_of_handle_if_after_combine): New.
1171         (rest_of_handle_regmove): New.
1172         (rest_of_handle_sched): New.
1173         (rest_of_handle_old_regalloc): New.
1174         (rest_of_handle_new_regalloc): New.
1175         (rest_of_handle_regrename): New.
1176         (rest_of_handle_reorder_blocks): New.
1177         (rest_of_handle_sched2): New.
1178         (rest_of_handle_new_regalloc): New.
1179         (rest_of_handle_old_regalloc): New.
1180         (rest_of_handle_regrename): New.
1181         (rest_of_handle_reorder_blocks): New.
1182         (rest_of_handle_stack_regs): New.
1183         (rest_of_handle_machine_reorg): New.
1184         (rest_of_handle_delay_slots): New.
1185         (rest_of_handle_final): New.
1186
1187         * toplev.h (botch): Remove prototype.
1188         (do_abort): Same.
1189
1190 2003-05-31  Neil Booth  <neil@daikokuya.co.uk>
1191
1192         * Makefile.in (c-opts.o, c-options.h): Update dependencies.
1193         * c-opts.c: Include c-options.h and c-options.c.
1194         (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY):
1195         Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX.
1196         (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option,
1197         OPT, opt_comp): Remove.
1198         (missing_arg, c_common_init_options, c_common_decode_option,
1199         write_langs): Update for macro redefinitions and enumeration
1200         name changes.
1201         * c.opt, opts.sh: New files.
1202         * doc/passes.texi: Update.
1203
1204 2003-05-31  Andreas Jaeger  <aj@suse.de>
1205
1206         * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
1207         usage.
1208
1209         * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.
1210
1211         * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.
1212
1213         * system.h: Poison ALLOCATE_TRAMPOLINE.
1214
1215         * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
1216         * system.h: Poison HANDLE_PRAGMA.
1217
1218 2003-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1219
1220         * doc/invoke.texi: Update dump file names.
1221
1222 2003-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1223
1224         * c-format.c (format_length_info, format_char_info,
1225         format_flag_spec, format_flag_pair, format_kind_info):
1226         De-const-ify structure members.
1227
1228 2003-05-31  Roger Sayle  <roger@eyesopen.com>
1229
1230         * flags.h (flag_wrapv): New flag controlling overflow semantics.
1231         * toplev.c (flag_wrapv): Declare the variable with default false.
1232         (lang_independent_options): New option "-fwrapv" to set the above.
1233
1234         * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
1235         as x, when signed arithmetic overflow wraps around.
1236         (fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
1237         * loop.c (basic_induction_var): Ignore BIVs that rely on undefined
1238         overflow when flag_wrapv is true.
1239
1240         * doc/invoke.texi: Document new -fwrapv command line option.
1241         * doc/c-tree.texi: Mention that the overflow semantics of
1242         NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
1243         upon both flag_wrapv and flag_trapv.
1244
1245 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1246
1247         * doc/install.texi (mips-sgi-irix5): Add missing
1248         HTML <hr> marker.
1249
1250 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1251
1252         * doc/md.texi (Machine Constraints): Document
1253         missing SPARC constraints.
1254
1255 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1256
1257         * doc/md.texi (Automaton pipeline description): Use
1258         "type" instead of "cpu" as the attribute in the examples.
1259
1260 2003-05-30  Stan Shebs  <shebs@apple.com>
1261
1262         * system.h: Poison OBJC_PROLOGUE.
1263
1264 2003-05-30  Roger Sayle  <roger@eyesopen.com>
1265
1266         * emit-rtl.c (gen_complex_constant_part): New function for getting
1267         the constant real or imaginary part of a complex constant.
1268         (gen_realpart): Use it.
1269         (gen_imagpart): Likewise.
1270
1271 2003-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1272
1273         * doc/invoke.texi: Fix typos.
1274         * doc/rtl.texi: Likewise.
1275
1276 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
1277
1278         * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal
1279         mode.
1280         * config/h8300/crtn.asm: Likewise.
1281         * config/h8300/lib1funcs.asm: Likewise.
1282         * config/h8300/h8300.c (asm_file_start): Likewise.
1283         * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and
1284         h8300snelf emulations for normal mode.
1285         * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn
1286         emulations for normal mode.
1287
1288 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
1289
1290         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return
1291         true if TARGET_NORMAL_MODE.
1292
1293 2003-05-30  Roger Sayle  <roger@eyesopen.com>
1294
1295         * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when
1296         making a substitution.
1297         (dead_libcall_p): If directly replacing a libcall with a
1298         constant value produces an invalid instruction, also try forcing
1299         the constant into the constant pool.
1300         * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not
1301         obvious that the source is a constant.
1302         (compress_float_constant): Use set_unique_reg_note to place
1303         REG_EQUAL notes on instructions.
1304
1305 2003-05-30  Eric Christopher  <echristo@redhat.com>
1306
1307         * config/mips/mips.c (extern_list): Add GTY marker.
1308         (extern_head): Separate out definition. Add marker.
1309         (mips_output_external): Use ggc_alloc for extern_list
1310         allocation.
1311         (mips_output_external_libcall): Ditto.
1312
1313 2003-05-30  Florian Weimer  <fw@deneb.enyo.de>
1314
1315         * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
1316         later.
1317
1318 2003-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1319
1320         * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
1321         warnings.
1322         (PRINT_OPERAND): Likewise.
1323
1324 2003-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1325
1326         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
1327         -mdebug/-no-mdebug switches ...
1328         (MDEBUG_ASM_SPEC): ... here.
1329         Use only with gas.
1330         (EXTRA_SPECS): Initialize mdebug_asm_spec.
1331
1332 2003-05-29  Matt Kraai  <kraai@alumni.cmu.edu>
1333
1334         * gthr-gnat.c: Remove #undef UNUSED.
1335         (__gnat_default_lock, __gnat_default_unlock): Prototype.
1336         (__gnat_task_lock, __gnat_task_unlock): Make declarations
1337         prototypes.
1338         (__gnat_install_locks): Convert declaration to ISO C90, make
1339         parameter declarations prototypes, and remove blank line.
1340         * gthr-gnat.h (__gnat_install_locks): Make parameter
1341         declarations prototypes.
1342
1343 2003-05-29  Jason Merrill  <jason@redhat.com>
1344
1345         * Makefile.in (unstrap): Remove stage_last after make unstage1.
1346
1347 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1348
1349         * mips-tfile.c (PAGE_SIZE): Increase page size to 32K.
1350
1351 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1352             Kaveh Ghazi  <ghazi@caip.rutgers.edu>
1353
1354         PR bootstrap/10169
1355         * mips-tfile.c (main): Use getopt_long instead of getopt.
1356         Add new command line option --version to display version.
1357         Treat --verbose like -v to report a single line version.
1358         (options): New global variable for getopt_long.
1359         * mips-tdump.c (main): Use getopt_long instead of getopt.
1360         New command line options -v, --version and -verbose to display
1361         the program version number (to match mips-tfile's behavior).
1362         (options): New global variable for getopt_long.
1363
1364         * gcov.c (options): Zero-terminate getopt_long array.
1365         * gcov-dump.c (options): Likewise.
1366
1367         * Makefile.in (mips-tdump.o): Add dependency on version.h.
1368
1369 2003-05-29  Stan Shebs  <shebs@apple.com>
1370
1371         Remove OBJC_PROLOGUE everywhere.
1372         * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE.
1373         * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE.
1374         * config/d30v/d30v.h: Similarly.
1375         * config/ip2k/ip2k.h: Similarly.
1376         * doc/tm.texi: Remove doc of OBJC_PROLOGUE.
1377
1378 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1379
1380         * c-semantics.c (genrtl_do_stmt_1): New function split out from...
1381         (gen_rtl_do_stmt): ... here.  Call genrtl_do_stmt_1.
1382         (expand_unreachable_stmt): Expand unreachable while statements
1383         using genrtl_do_stmt_1.
1384
1385 2003-05-29  Richard Sandiford  <rsandifo@redhat.com>
1386
1387         * config/mips/mips-protos.h (mips_output_load_label): Declare.
1388         * config/mips/mips.c (mips_output_load_label): New function.
1389         (mips_output_conditional_branch): Use it.
1390         * config/mips/mips.md (jump): And here.
1391
1392 2003-05-28  Bob Wilson  <bob.wilson@acm.org>
1393
1394         * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
1395         (xtensa_split_operand_pair): New proto.
1396         * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
1397         (smalloffset_double_mem_p): Delete.
1398         (gen_float_relational, printx, print_operand, xtensa_va_arg):
1399         Fix whitespace.
1400         (xtensa_split_operand_pair): New.
1401         (xtensa_dbx_register_number): Fix formatting.
1402         * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
1403         * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
1404         instead of splitting them into single-word moves.  Remove unnecessary
1405         checks for reload_in_progress and reload_completed.
1406         (movdi_internal, movdf_internal): Change to post-reload split patterns.
1407         Add constraints to allow constant operands.
1408         (movsf_internal): Allow CONST_INT operands.
1409
1410 2003-05-27  Danny Smith   <dannysmith@users.sourceforge.net>
1411
1412         * config.gcc (i[34567]86-*-mingw32*): Add host makefile
1413         fragment i386/x-mingw32.
1414         * config/i386/x-mingw32: New file. Make local_includedir
1415         relative to EXEC_PREFIX.
1416
1417 2003-05-27  Aaron W. LaFramboise  <awlaframboise@aol.com>
1418
1419         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update.
1420         (MD_STARTFILE_PREFIX): Define.
1421
1422 2003-05-27  Denis Chertykov  <denisc@overta.ru>
1423
1424         * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
1425         VOIDmode.
1426         * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
1427         call of cselib_invalidate_regno.
1428
1429 2003-05-28  Daniel Jacobowitz  <drow@mvista.com>
1430
1431         * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
1432         -lthread to -lpthread.
1433
1434 2003-05-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1435             Bruce Korb  <bkorb@gnu.org>
1436             Arno Klaassen  <arno@heho.snv.jussieu.fr>
1437
1438         * fixinc/inclhack.def: Add missing declaration of getpagesize()
1439         to unistd.h on Solaris 2.5.1.
1440         Fix prototype of recv() and send() in sys/socket.h on
1441         Solaris 2.5.1 and 2.6.
1442         * fixinc/tests/base/unistd.h: Add solaris_unistd fix test.
1443         * fixinc/tests/base/sys/socket.h: Add solaris_socket test.
1444         * fixinc/check.tpl: Use 'diff -c', not 'diff -u'.
1445         * fixinc/fixincl.x: Regenerate.
1446
1447 2003-05-27  Jason Merrill  <jason@redhat.com>
1448
1449         * tree.c (expr_first, expr_length): New fns.
1450         * tree.h: Declare them.
1451
1452         * tree.c (iterative_hash_expr): Hash commutative expressions
1453         consistently.
1454
1455 2003-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1456
1457         * tree.h (contains_placeholder_p): Now returns bool.
1458         (CONTAINS_PLACEHOLDER_P): New macro.
1459         (type_contains_placeholder_p): New function.
1460         * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
1461         (contains_placeholder_p): Now returns bool.
1462         Rework to use CONTAINS_PLACEHOLDER_P macro.
1463         (type_contains_placeholder_p): New function.
1464         * fold-const.c (fold, case COMPONENT_REF): Don't fold if
1465         type_contains_placeholder_p.
1466         (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
1467         Use CONTAINS_PLACEHOLDER_P macro.
1468         * builtins.c (fold_builtin): Likewise.
1469         * calls.c (initialize_argument_information): Likewise.
1470         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1471         * explow.c (expr_size): Likewise.
1472         * expr.c (store_constructor, get_inner_reference): Likewise.
1473         * function.c (assign_parms): Likewise.
1474         * stor-layout.c (variable_size): Likewise.
1475
1476 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
1477
1478         * diagnostic.h (output_verbatim, verbatim):  Remove  printf
1479         attribute.
1480
1481 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1482
1483         * doc/contrib.texi (Contributors): Update Kean Johnston.
1484
1485 2003-05-24  David Edelsohn  <edelsohn@gnu.org>
1486
1487         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute.
1488
1489 2003-05-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1490
1491         * config/rs6000/440.md, config/stormy16/stormy16protos.h,
1492         config/stormy16/stormy16.c, config/stormy16/stormy16.md:
1493         Replace "GNU CC" with "GCC".
1494
1495 2003-05-24  Matt Kraai  <kraai@alumni.cmu.edu>
1496
1497         * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for
1498         intermediate computation.
1499
1500 2003-05-23  Eric Christopher  <echristo@redhat.com>
1501
1502         * config/mips/mips.md (clzsi, clzdi): New patterns.
1503
1504 2003-05-23  Geoffrey Keating  <geoffk@apple.com>
1505
1506         * gcc.c (default_compilers): Use -o to specify preprocessor's output
1507         file.  Make -no-integrated-cpp work when building PCH files.
1508         * objc/lang-specs.h: Likewise.
1509
1510 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
1511
1512         * fixinc/Makefile.in: Correct description.
1513         * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c,
1514         fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c,
1515         fixinc/genfixes: Replace "GNU CC" with "GCC".
1516
1517 2003-05-23  Roger Sayle  <roger@eyesopen.com>
1518
1519         * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl
1520         builtin functions (and their __builtin_* variants).
1521         * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}.
1522         (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not
1523         optimizing.
1524
1525         * doc/extend.texi: Document new tan and atan builtins, and
1526         their float and long double variants.
1527
1528 2003-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1529
1530         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
1531         __sparcv9 in the TARGET_ARCH64 case.
1532
1533 Fri May 23 22:17:32 CEST 2003  Jan Hubicka  <jh@suse.cz>
1534
1535         * i386.c (ix86_reorg): Calls are also jumps.
1536
1537 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
1538
1539         * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL
1540         note containing an EXPR_LIST, process all the arguments.
1541
1542 Fri May 23 21:19:31 CEST 2003  Jan Hubicka  <jh@suse.cz>
1543                                Andreas Jaeger  <aj@suse.de>
1544
1545         * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
1546         do not use assertion.
1547
1548 2003-05-23  Mike Stump  <mrs@apple.com>
1549
1550         * tlink.c (scan_linker_output): Add support for darwin linker, as it
1551         emits unresolved symbols one per line, consuming the entire line.
1552
1553 2003-05-23  Larin Hennessy <larin@science.oregonstate.edu>
1554             Zack Weinberg <zack@codesourcery.com>
1555
1556         * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe.
1557         * config/m68k/m68k.c (m68k_output_function_prologue):
1558         Remove code under #if NEED_PROBE.
1559         * config/m68k/m68k.h: Don't define NEED_PROBE.
1560         * config/m68k/m68k.md: Remove "probe" insn.
1561         * doc/md.texi: Remove documentation of "probe" pattern.
1562
1563 2003-05-23  Dorit Naishlos  <gcchaifa@il.ibm.com>
1564
1565         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute.
1566
1567 2003-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1568
1569         * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
1570         Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
1571
1572 2003-05-22  Roger Sayle  <roger@eyesopen.com>
1573
1574         * real.c (real_maxval): New function to return the largest finite
1575         value representable in a given mode (i.e. FLT_MAX and DBL_MAX).
1576         * real.h (real_maxval): Prototype here.
1577         * fold-const.c (fold_inf_compare): Transform comparisons against
1578         +-Infinity into comparisons against DBL_MAX (or equivalent).
1579
1580 2003-05-22  Mike Stump  <mrs@apple.com>
1581
1582         * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the
1583         default.
1584
1585 2003-05-22  DJ Delorie  <dj@redhat.com>
1586
1587         * calls.c (expand_call): If the arg block is going to grow
1588         downward, we need argblock to point to the top of the block,
1589         not the bottom.
1590
1591 2003-05-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1592
1593         * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
1594
1595         * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if
1596         constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER.
1597
1598 2003-05-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1599
1600         * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
1601         * m68k.c: Likewise.
1602         * m68k.h: Likewise.
1603
1604 2003-05-22  Zack Weinberg  <zack@codesourcery.com>
1605
1606         PR other/2873
1607         * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
1608         expressions to prevent triggering on recent curses.h,
1609         linux/nls.h, or X11/Xlib.h.
1610         (stdio_va_list): Add _G_va_list to bypass pattern.
1611         (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
1612         * fixinc/fixincl.x: Regenerate.
1613
1614 2003-05-22 Rekha Bhintade <rekhad@kpitcummins.com>
1615
1616         * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target
1617         switches when --target-help option is specified.
1618
1619 2003-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1620
1621         PR bootstrap/10805
1622         * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
1623         failure with Sun assembler 5.0 Alpha 03/27/98.
1624
1625 2003-05-21  Loren James Rittle  <ljrittle@acm.org>
1626
1627         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
1628         to match system compiler convention.
1629
1630 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
1631
1632         * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for non-zero
1633         value, not just if defined.
1634         Update copyright year.
1635
1636 2003-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1637
1638         PR target/6428
1639         * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling
1640         directories from LIB_SPEC to LINK_SPEC.  Emit warning if `-p' or `-pg'
1641         option is used without `-static'.
1642         * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise.
1643         * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise.
1644
1645 2003-05-21  Bob Wilson  <bob.wilson@acm.org>
1646
1647         * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
1648         TARGET_SERIALIZE_VOLATILE): Delete.
1649         (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
1650         (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
1651         (TARGET_SWITCHES): Remove "-mserialize-volatile" and
1652         "-mno-serialize-volatile".
1653         * config/xtensa/xtensa.c (print_operand): Remove checks of
1654         TARGET_SERIALIZE_VOLATILE.
1655         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
1656         * doc/invoke.texi (Option Summary, Xtensa Options): Remove
1657         "-mserialize-volatile" and "-mno-serialize-volatile" options.
1658
1659 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
1660
1661         * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier.
1662         (nested_function): Likewise.
1663         (notype_nested_function): Likewise.
1664
1665 2003-05-21  Nick Clifton  <nickc@redhat.com>
1666
1667         * config/stormy16/stormy-abi: Update overflow type for
1668         R_XSTORMY16_16 reloc.
1669
1670 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
1671
1672         * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
1673         * c-parse.in (reswords): Remove __bounded__ and __unbounded__.
1674         (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
1675         * print-tree.c (print_node): Remove ambient-boundedness.
1676         * tree.h (tree_common): Remove bounded_flag.
1677         (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
1678         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
1679         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
1680         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
1681         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
1682         Remove.
1683         (TYPE_QUALS): Remove BOUNDED.
1684         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
1685         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
1686         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
1687         TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
1688         VA_LIST_POINTER_DEPTH): Remove.
1689         (struct tree_type): Remove pointer_depth.
1690
1691 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1692
1693         * c-pretty-print.c (pp_c_integer_literal): Use
1694         HOST_WIDE_INT_PRINT_DOUBLE_HEX.
1695
1696 2003-05-20  Roger Sayle  <roger@eyesopen.com>
1697             Kazu Hirata  <kazu@cs.umass.edu>
1698             Joern Rennecke  <joern.rennecke@superh.com>
1699
1700         * gcse.c (cprop_jump):  Make use of REG_EQUAL notes on both
1701         setcc and jump, if they exist.  If substituted instruction
1702         fails to validate, store current effort in a REG_EQUAL note.
1703         (cprop_insn): Don't attempt further substitutions if the
1704         current instruction has been deleted.
1705         (local_cprop_pass): Likewise.
1706
1707         * jump.c (redirect_jump):  Also update REG_EQUAL note, if
1708         one is attached to the jump instruction.
1709         (invert_jump): Delete REG_EQUAL note on jump, if one exists.
1710
1711 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
1712
1713         PR c++/9738
1714         * config/i386/winnt.c (i386_pe_encode_section_info): Enable
1715         even if not first.
1716
1717 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1718
1719         * genautomata.c (output_description, output_automaton_units,
1720         output_state_arcs): Add missing specifiers.
1721
1722 2003-05-20  Bob Wilson  <bob.wilson@acm.org>
1723
1724         * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives.
1725         (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros.
1726         (__mulsi3): Use do_addx* instead of ADDX* instructions.  Formatting.
1727         (nsau): Rename to do_nsau.  Provide alternate version for use when
1728         the NSAU instruction is available.
1729         (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro.
1730         (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction.
1731         * config/xtensa/xtensa-config.h: Update comments to match binutils.
1732         (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define.
1733         * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define.
1734         (TARGET_ABS, TARGET_ADDX): Define.
1735         (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX.
1736         (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx".
1737         * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4,
1738         *subx8): Set predicate condition to TARGET_ADDX.
1739         (abssi2): Set predicate condition to TARGET_ABS.
1740         * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs",
1741         "-maddx", and "-mno-addx" options.
1742         (Xtensa Options): Likewise.  Also tag some opcode names with @code.
1743
1744 2003-05-20  Kevin Ryde <user42@zip.com.au>
1745             Wolfgang Bangerth <bangerth@dealii.org>
1746
1747         PR/10355
1748         * doc/extend.texi: Put a warning into the documentation
1749         of attribute regparm.
1750
1751 2003-05-20  Jason Merrill  <jason@redhat.com>
1752
1753         * tree.c (expr_last): New fn.
1754         * tree.h: Declare it.
1755         * objc/objc-act (expr_last): Rename to objc_expr_last.
1756
1757 2003-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1758
1759         * sh.c (sh_register_move_cost): Add clase for moving between
1760         FP registers and MAC registers.
1761
1762 2003-05-19  John David Anglin  <dave.anglin@nrc-gnrc.gc.ca>
1763
1764         * pa/milli64.S ($$mulI): Fix typo.
1765
1766 2003-05-19  Matt Kraai  <kraai@alumni.cmu.edu>
1767
1768         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p)
1769         (nonlocal_set_p): Remove initial blank line.
1770         * dwarf2out.c (simple_type_size_in_bits): Likewise.
1771         * et-forest.c (et_forest_create): Likewise.
1772         * explow.c (stabilize): Likewise.
1773         * fix-header.c (write_lbrac): Likewise.
1774         * graph.c (start_fct, node_data): Likewise.
1775         * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise.
1776         * rtlanal.c (global_reg_mentioned_p): Likewise.
1777         * tree.c (bit_position): Likewise.
1778
1779 2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
1780
1781         * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct
1782         -lthread to -lpthread.
1783
1784 2003-05-19  Neil Booth  <neil@daikokuya.co.uk>
1785
1786         * c-opts.c (c_common_decode_option): Don't accept dollars
1787         as identifier characters in assembly.
1788         * doc/cpp.texi: Document this.
1789
1790 2003-05-19  Seth Arnold  <sarnold@wirex.com>
1791             Aldy Hernandez  <aldyh@redhat.com>
1792
1793         * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
1794         vrsave_size twice.
1795
1796 2003-05-19  Aldy Hernandez  <aldyh@redhat.com>
1797
1798         * doc/tm.texi (function_arg): Fix typo.
1799
1800 2003-05-19  Matt Austern  <austern@apple.com>
1801
1802         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option.
1803         * c-common.h (warn_invalid_offsetof): Declare.
1804         * c-common.c (warn_invalid_offsetof): Define.
1805         * doc/invoke.texi: Document -Winvalid-offsetof.
1806         * testsuite/g++.dg/other/offsetof3.C: New.
1807         * testsuite/g++.dg/other/offsetof4.C: New.
1808
1809 2003-05-19  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
1810             David Edelsohn  <edelsohn@gnu.org>
1811
1812         * config/rs6000/rs6000.c (rs6000_alignment_string,
1813         rs6000_alignment_flags): New variables.
1814         (rs6000_parse_alignment_option): New function.
1815         (rs6000_override_options): Call it.
1816         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
1817         (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
1818         macros.
1819         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
1820         natural alignment if TARGET_NATURAL_ALIGNMENT
1821         (ROUND_TYPE_ALIGN): Always use default record alignment if
1822         TAGET_NATURAL_ALIGNMENT.
1823         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
1824         (ROUND_TYPE_ALIGN): Same.
1825         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
1826         (ROUND_TYPE_ALIGN): Same.
1827         * doc/invoke.texi (Option Summary, PowerPC Options): Document
1828         new options.
1829
1830 2003-05-19  J"orn Rennecke <joern.rennecke@superh.com>
1831
1832         * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME
1833         of a function using ASMSPEC, prepend a star.
1834
1835 2003-05-19  Jason Merrill  <jason@redhat.com>
1836
1837         * tree-inline.c (copy_body_r): Avoid generating &* during inline
1838         substitution.
1839
1840 2003-05-19  Andrew Macleod  <amacleod@redhat.com>
1841
1842         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do
1843         not mark assignments to the hard frame pointer as being stack
1844         frame related.
1845         (xstormy16_expand_epilogue): Mark adjustments to the stack
1846         pointer as being stack frame related.
1847
1848 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1849
1850         * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY,
1851         ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros.
1852         (PREDICATE_CODES): Add hilo_operand.
1853         * config/mips/mips.c (hilo_operand): New predicate.
1854         (mips_adjust_insn_length): Account for the number nops that might
1855         be needed to avoid hardware hazards.
1856         * config/mips/mips.md (dslot): Remove attribute.
1857         (hazard): New attribute.
1858         (can_delay): Use it.  Check for calls, branches & jumps.
1859         (muldi3): Use the standard dmult pattern for mips16 code.
1860         (muldi3_internal, muldi3_internal2): Adjust conditions accordingly.
1861
1862 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1863
1864         * config/mips/mips-protos.h (final_prescan_insn,
1865         mips_count_memory_refs, mips_fill_delay_slot): Remove.
1866         * config/mips/mips.h (delay_type, dslots_load_total,
1867         dslots_load_filled, dslots_jump_total, dslots_jump_filled,
1868         dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2,
1869         mips_load_reg3, mips_load_reg4): Remove.
1870         (MASK_STATS): Remove.
1871         (MASK_EXPLICIT_RELOCS): Reuse its value.
1872         (TARGET_STATS): Remove.
1873         (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops.
1874         Warn that -mstats is now ignored.
1875         (FINAL_PRESCAN_INSN): Undefine.
1876         (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics.
1877         (ASM_OUTPUT_REG_POP): Likewise.
1878         * config/mips/mips.c (dslots_load_total, dslots_load_filled,
1879         dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs,
1880         mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4,
1881         mips_fill_delay_slot, mips_count_memory_refs,
1882         final_prescan_insn): Remove.
1883         (output_block_move): Remove calls to mips_count_memory_refs.
1884         (print_operand): Remove printing of #nop for TARGET_STATS.
1885         (mips_output_function_epilogue): Remove TARGET_STATS code.
1886         Reorganize setting of fnnmae.
1887         * config/mips/mips.md: Remove handling of dslot statistics
1888         throughout file.  Change all fcmp patterns into normal asm
1889         templates, removing calls to mips_fill_delay_slot.
1890         * doc/invoke.texi: Remove documentation of -mstats.
1891
1892 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1893
1894         * config/mips/mips.c (mips_class_max_nregs): Return the number of
1895         words in the mode.
1896
1897 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1898
1899         * config/mips/mips.c (override_options): Disable explicit
1900         relocs for old ABIs unless using gas.
1901
1902 2003-05-18  Eric Christopher  <echristo@redhat.com>
1903
1904         * config/mips/mips.h: Remove definition of g_switch_value.
1905
1906 2003-05-18  Matt Kraai  <kraai@alumni.cmu.edu>
1907
1908         * flags.h (g_switch_value): Change to an unsigned
1909         HOST_WIDE_INT.
1910         * toplev.c (g_switch_value): Likewise.
1911
1912         * config/alpha/alpha.c (small_symbolic_operand): Remove
1913         g_switch_value cast.
1914         (alpha_in_small_data_p): Cast size to an unsigned
1915         HOST_WIDE_INT.
1916
1917         * config/frv/frv.c (frv_in_small_data_p): Cast size to an
1918         unsigned HOST_WIDE_INT.
1919         * config/frv/frv.h (g_switch_value, g_switch_set): Remove.
1920         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
1921
1922         * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
1923         unsigned HOST_WIDE_INT.
1924         (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
1925         * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
1926         (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
1927
1928         * config/rs6000/rs6000.c (rs6000_file_start): Use
1929         HOST_WIDE_INT_PRINT_UNSIGNED.
1930         (small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
1931         (rs6000_elf_in_small_data_p): Cast size to unsigned
1932         HOST_WIDE_INT.
1933         * config/rs6000/sysv4.h (g_switch_value, g_switch_set):
1934         Remove.
1935         (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
1936         g_switch_set.
1937         (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
1938         g_switch_value cast.
1939
1940 2003-05-18  Roger Sayle  <roger@eyesopen.com>
1941             Zack Weinberg  <zack@codesourcery.com>
1942
1943         PR middle-end/10472
1944         * builtins.c (expand_builtin_memcpy):  Call force_operand on
1945         expressions and use simplify_gen_binary to create the addition.
1946
1947 2003-05-18  Andreas Schwab  <schwab@suse.de>
1948
1949         * config/m68k/m68k.md: Use define_constants for unspec numbers.
1950
1951 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
1952
1953         * config/sparc/sparc.h: Define sparc for now.
1954 2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
1955
1956         * config.gcc: Clear xm_file, md_file at the beginning of each pass.
1957
1958         * config/stormy16/stormy16.h: Remove about 3000 lines of
1959         target-independent comments.  Update copyright notice.
1960
1961         * doc/collect2.texi: GNU CC -> GCC.
1962         * doc/headerdirs.texi: GNU CC -> GCC.
1963
1964 2003-05-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
1965
1966         * hashtable.h (struct ht_identifier): Add data member "hash_value".
1967         * hashtable.c (ht_lookup): Use it when searching, remember.
1968         (ht_expand): Do not recompute.
1969         * tree.h (IDENTIFIER_HASH_VALUE): New macro.
1970
1971 2003-05-18  Nathan Sidwell  <nathan@codesourcery.com>
1972
1973         * gcov-io.c (gcov_read_bytes): Fix fread thinko.
1974
1975 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
1976
1977         * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
1978         Default here.
1979         (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
1980         * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
1981         * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
1982         * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
1983         config/arm/linux-elf.h, config/arm/rtems-elf.h,
1984         config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
1985         config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
1986         config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
1987         config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
1988         config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
1989         config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
1990         config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
1991         config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
1992         config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
1993         config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
1994         config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
1995         Don't define __ELF__.
1996         * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
1997         Define __ELF__.
1998         * doc/cpp.texi: Document __ELF__.
1999         * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.     *
2000
2001 2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2002
2003         * builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
2004         always use stdarg.
2005         * c-errors.c (pedwarn_c99): Likewise.
2006         * c-format.c (status_warning): Likewise.
2007         * c-semantics.c (build_stmt): Likewise.
2008         * calls.c (emit_library_call, emit_library_call_value): Likewise.
2009         * collect2.c (notice, fatal_perror, fatal, error): Likewise.
2010         * cpperror.c (cpp_error, cpp_error_with_line): Likewise.
2011         * diagnostic.c (build_message_string, output_printf,
2012         output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
2013         fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
2014         error_with_decl, fnotice): Likewise.
2015         * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
2016         dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
2017         dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
2018         dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
2019         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
2020         dw2_asm_output_encoded_addr_rtx): Likewise.
2021         * emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
2022         * errors.c (warning, error, fatal, internal_error): Likewise.
2023         * final.c (output_operand_lossage, asm_fprintf): Likewise.
2024         * fix-header.c (fatal): Likewise.
2025         * gcc.c (fatal, error, notice): Likewise.
2026         * gcov.c (fnotice): Likewise.
2027         * genattrtab.c (attr_rtx, attr_printf): Likewise.
2028         * gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
2029         * gensupport.c (message_with_line): Likewise.
2030         * mips-tfile.c (fatal, error): Likewise.
2031         * protoize.c (notice): Likewise.
2032         * ra-debug.c (ra_debug_msg): Likewise.
2033         * read-rtl.c (fatal_with_file_and_line): Likewise.
2034         * rtl-error.c (error_for_asm, warning_for_asm): Likewise.
2035         * tree.c (build, build_nt, build_function_type_list): Likewise.
2036
2037 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2038
2039         * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove.
2040         * gcc.c (cpp_predefines): Remove.
2041         (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES.
2042         (static_specs): Remove predefines.
2043         * system.h: Poison CPP_PREDEFINES.
2044         * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h,
2045         config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES.
2046
2047 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2048
2049         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h,
2050         config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h,
2051         config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES,
2052         use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead.
2053
2054 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2055
2056         PR c/9209
2057         * c-common.c, c-common.h (dollars_in_ident): Remove.
2058         * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
2059         (c_common_init_options, c_common_decode_option): Set dollars_in_ident.
2060         * cpphash.h (warned_dollar): Rename warn_dollars.
2061         * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
2062         Permit dollars regardless of -std=.
2063         (post_options): Set warn_dollars.
2064         * cpplex.c (forms_identifier_p): Use warn_dollars.
2065         * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
2066         Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
2067         * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
2068         Update documentation.
2069
2070 2003-05-17  Andreas Schwab  <schwab@suse.de>
2071
2072         * config/m68k/m68k.c (m68k_output_function_prologue): Use
2073         HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when
2074         formatting a HOST_WIDE_INT.
2075         (m68k_output_function_epilogue): Likewise.
2076
2077 2003-05-17  Zack Weinberg  <zack@codesourcery.com>
2078
2079         * doc/install.texi: Remove information about desupported targets.
2080
2081 2003-05-17  Andreas Schwab  <schwab@suse.de>
2082
2083         * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board.
2084         * config/m68k/linux.h: Likewise.
2085         * config/m68k/m68k-none.h: Likewise.
2086         * config/m68k/netbsd-elf.h: Likewise.
2087         * config/m68k/sgs.h: Likewise.
2088         * config/m68k/m68k.h: Likewise.
2089         * config/m68k/m68k.md: Likewise.
2090         * config/m68k/m68k.c: Likewise.
2091         * doc/md.texi (Machine Constraints): Remove Sun FPA specific
2092         constraints.
2093         * doc/invoke.texi (Option Summary): Remove -mfpa.
2094         (M680x0 Options): Likewise.
2095
2096 2003-05-17  David Edelsohn  <edelsohn@gnu.org>
2097
2098         * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
2099
2100 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2101
2102         * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
2103         * config/sparc/liteelf.h, config/sparc/openbsd64.h,
2104         config/sparc/rtemself.h, config/sparc/sol2-64.h,
2105         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h:
2106         Update for use of TARGET_SUB_OS_CPP_BUILTINS.
2107
2108 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2109
2110         * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and
2111         TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES.
2112
2113 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2114
2115         * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h.
2116         * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h,
2117         sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h,
2118         sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h,
2119         sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h,
2120         sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h,
2121         sparc/sysv4.h,
2122         * sparc/sysv4-only.h: New.
2123
2124 2003-05-17  Alan Modra  <amodra@bigpond.net.au>
2125
2126         * function.c (assign_parms): Check for zero size args.
2127
2128 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2129
2130         * cfgloopanal.c (test_for_iteration): Use string concatentation on
2131         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2132         function calls into one.
2133         * dbxout.c (dbxout_symbol): Likewise.
2134         * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
2135         * dwarf2asm.c (dw2_asm_output_data_uleb128,
2136         dw2_asm_output_data_sleb128): Likewise.
2137         * genrecog.c (debug_decision_2): Likewise.
2138         * loop.c (emit_prefetch_instructions): Likewise.
2139         * print-rtl.c (print_rtx): Likewise.
2140         * print-tree.c (print_node_brief, print_node): Likewise.
2141         * ra-debug.c (dump_igraph, dump_graph_cost,
2142         dump_static_insn_cost): Likewise.
2143         * ra-rewrite.c (dump_cost): Likewise.
2144         * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2145         * sreal.c (dump_sreal): Likewise.
2146         * unroll.c (unroll_loop, precondition_loop_p): Likewise.
2147         * varasm.c (assemble_vtable_entry): Likewise.
2148
2149         * avr.c (avr_output_function_prologue,
2150         avr_output_function_epilogue, print_operand): Fix format specifier
2151         warnings.
2152         (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
2153         * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.
2154
2155 2003-05-16  Geoffrey Keating  <geoffk@apple.com>
2156
2157         * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING
2158         and ! TARGET_STRING cases.
2159
2160         * doc/cppopts.texi (-undef): Fix texinfo warning.
2161
2162         * doc/cppopts.texi (-H): Document that -H works for PCH files too.
2163         * cppfiles.c (validate_pch): When -H is used, print some information
2164         about PCH files found.
2165
2166 2003-05-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2167
2168         * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h.
2169         * config/mips/t-isa3264, config/mips/t-r3900: Likewise.
2170         * config/mips/t-sr71k: Likewise.
2171
2172 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2173
2174         * arc.c (arc_output_function_prologue,
2175         arc_output_function_epilogue): Fix format specifier warnings.
2176         * arc.h (LARGE_INT): Fix signed/unsigned warnings.
2177
2178         * v850.c (print_operand): Fix format specifier warnings.
2179
2180         * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format
2181         specifier warnings.
2182
2183         * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix
2184         format specifier warnings.
2185
2186         * ip2k.c (function_prologue, function_epilogue, print_operand):
2187         Fix format specifier warnings.
2188         * ip2k.md: Likewise.
2189
2190         * i960.c (i960_output_function_prologue, i960_print_operand,
2191         i960_print_operand_addr): Fix format specifier warnings.
2192
2193         * i370.c (ascebc, ebcasc): Wrap in macros controlling usage.
2194         (i370_output_function_prologue): Fix format specifier warnings.
2195         * i370.h (PRINT_OPERAND): Likewise.
2196
2197         * fr30.c (fr30_print_operand): Fix format specifier warnings.
2198
2199         * dsp16xx.c (print_operand_address): Fix format specifier warning.
2200         * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers.
2201
2202         * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format
2203         specifier warnings.
2204
2205         * alpha.c (print_operand_address, alpha_start_function,
2206         unicosmk_output_ssib): Use string concatentation on
2207         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2208         function calls into one.
2209         * arm.c (arm_print_operand): Likewise.
2210         * cris.c (cris_asm_output_mi_thunk): Likewise.
2211         * frv.c (frv_asm_output_mi_thunk): Likewise.
2212         * ia64.c (ia64_print_operand, process_set): Likewise.
2213         * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
2214         Likewise.
2215         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
2216         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2217         * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
2218         * pa.h (PRINT_OPERAND_ADDRESS): Likewise.
2219         * rs6000.c (rs6000_va_start, print_operand_address): Likewise.
2220         * s390.c (s390_assemble_integer): Likewise.
2221         * sparc.c (sparc_flat_function_prologue,
2222         sparc_flat_function_epilogue): Likewise.
2223         * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
2224         * vax.c (vax_output_mi_thunk): Likewise.
2225
2226         * frv.c (frv_print_operand_memory_reference): Fix format specifier
2227         warning.
2228         (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED.
2229
2230         * m68k.c (m68k_output_function_epilogue): Fix format specifier
2231         warnings.
2232
2233         * stormy16-protos.h (xs_hi_general_operand,
2234         xs_hi_nonmemory_operand): Prototype.
2235         * stormy16.c (xstormy16_output_shift): Fix format specifier
2236         warnings.
2237
2238         * cris.c: Fix format specifier warnings.
2239
2240 2003-05-16  Nick Clifton  <nickc@redhat.com>
2241
2242         * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM.
2243
2244 2003-05-16  Wolfgang Bangerth <bangerth@dealii.org>
2245
2246         * doc/bugreport.texi: Remove most of the of the preface of the
2247         bugs section.
2248
2249 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
2250
2251         * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
2252         .save XX, r0.
2253
2254 2003-05-15  Roger Sayle  <roger@eyesopen.com>
2255
2256         * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
2257
2258 2003-05-15  Eric Christopher  <echristo@redhat.com>
2259
2260         * cfgcleanup.c (merge_blocks): Fix return value.
2261
2262 2003-05-15 Eric Christopher <echristo@redhat.com>
2263
2264         * combine.c (expand_compound_operation): Make sure
2265         that zero_extend operation is profitable.
2266
2267 2003-05-15  Richard Henderson  <rth@redhat.com>
2268
2269         * config/alpha/linux.h, config/alpha/linux-elf.h: Remove
2270         code protected by USE_GNULIBC_1.
2271
2272 2003-05-15  Zack Weinberg  <zack@codesourcery.com>
2273
2274         * config.gcc: Purge all targets obsoleted in GCC 3.3.  Also
2275         remove hppa*-*-mpeix* which could not be built, and prune
2276         files from tmake_file= or tm_file= lists that don't exist.
2277
2278         * config/alpha/alpha-interix.h, config/alpha/alpha32.h
2279         * config/alpha/t-interix, config/arm/conix-elf.h
2280         * config/arm/t-arm-aout, config/arm/t-strongarm-coff
2281         * config/arm/unknown-elf-oabi.h, config/i386/win32.h
2282         * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h
2283         * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h
2284         * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h
2285         * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h
2286         * config/m68k/m68k-psos.h, config/m68k/mot3300.h
2287         * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h
2288         * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h
2289         * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h
2290         * config/m68k/t-mot3300, config/m68k/t-mot3300-gald
2291         * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld
2292         * config/m68k/tower-as.h, config/m68k/tower.h
2293         * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h
2294         * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh
2295         * config/m88k/m88k-protos.h, config/m88k/m88k.c
2296         * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h
2297         * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas
2298         * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h
2299         * config/mips/rtems64.h, config/mips/sni-gas.h
2300         * config/mips/sni-svr4.h, config/mips/t-ecoff
2301         * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h
2302         * config/mn10200/mn10200.c, config/mn10200/mn10200.h
2303         * config/mn10200/mn10200.md, config/mn10200/t-mn10200
2304         * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h
2305         * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h
2306         * config/romp/romp-protos.h, config/romp/romp.c
2307         * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h
2308         * config/rs6000/aix3newas.h, config/rs6000/mach.h
2309         * config/sparc/bsd.h, config/sparc/hal.h
2310         * config/sparc/linux-aout.h, config/sparc/lynx-ng.h
2311         * config/sparc/lynx.h, config/sparc/netbsd.h
2312         * config/sparc/sp86x-aout.h, config/sparc/splet.h
2313         * config/sparc/sun4gas.h, config/sparc/sun4o3.h
2314         * config/sparc/sunos4.h, config/sparc/t-chorus-elf
2315         * config/sparc/t-halos, config/sparc/t-sparcbare
2316         * config/sparc/t-splet, config/sparc/t-sunos41
2317         * config/v850/rtems.h: Delete file.
2318
2319 2003-05-15  Aldy Hernandez  <aldyh@redhat.com>
2320
2321         * config/rs6000/rs6000-protos.h (function_value): Protoize.
2322
2323         * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function.
2324
2325         * config/rs6000/rs6000.c (rs6000_function_value): New.
2326
2327 2003-05-15  Philip Blundell  <philb@gnu.org>
2328
2329         * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
2330         All uses updated.
2331         (arm_tune_xscale): New variable.
2332         (arm_override_options): Set it.
2333         (arm_adjust_cost): Use it in place of arm_arch_xscale.
2334         (arm_gen_load_multiple): Likewise.
2335         (arm_gen_store_multiple): Likewise.
2336         * config/arm/arm.md (is_xscale): Likewise.
2337         * config/arm/arm.h (arm_tune_xscale): Declare.
2338
2339 2003-05-15  Philip Blundell  <philb@gnu.org>
2340
2341         PR target/10730
2342         * config/arm/arm.c (adjacent_mem_locations): Reject offsets
2343         involving invalid constants.
2344
2345 2003-05-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2346
2347         * pa.c (hppa_expand_prologue): Remove blockage.
2348
2349 2003-05-15  Wolfgang Bangerth <bangerth@dealii.org>
2350
2351         * doc/bugreport.texi: Remove most of the bug reporting
2352         instructions and merge them into bugs.html.
2353
2354 2003-05-14  Matt Kraai  <kraai@alumni.cmu.edu>
2355
2356         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
2357         g_switch_value to unsigned HOST_WIDE_INT.
2358
2359 2003-05-14  Eric Christopher  <echristo@redhat.com>
2360
2361         * combine.c: Fix header comments.
2362         (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
2363         to all calls and prototype.
2364
2365 2003-05-14  Roger Sayle  <roger@eyesopen.com>
2366
2367         PR optimization/10764
2368         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
2369         Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1).
2370         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3):  Likewise,
2371         add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1).
2372         (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match
2373         the corresponding *fyl2x_?fxf3 instructions.
2374
2375 2003-05-14  Bob Wilson  <bob.wilson@acm.org>
2376
2377         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
2378         * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
2379         XCHAL_HAVE_L32R): New.
2380         * config/xtensa/xtensa-protos.h (non_const_move_operand,
2381         xtensa_load_constant, xtensa_function_prologue,
2382         xtensa_function_epilogue): Delete prototypes.
2383         (xtensa_expand_prologue): New.
2384         * config/xtensa/xtensa.c (frame_size_const,
2385         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
2386         non_const_move_operand, xtensa_load_constant, xtensa_reorg,
2387         xtensa_function_prologue): Delete.
2388         (add_operand, xtensa_mem_offset): Formatting.
2389         (move_operand): If the const16 option is available, allow any SFmode
2390         and SImode constants.
2391         (xtensa_emit_move_sequence): Inline the former contents of
2392         xtensa_load_constant with modifications to handle the const16 option.
2393         (override_options): Add xtensa_char_to_class['W'] and set it to
2394         the general register class only if the const16 option is enabled.
2395         Fix formatting.  Disallow PIC when using the const16 option.
2396         (print_operand): Reorganize to switch on "letter" instead of the
2397         RTL code.  Add output_operand_lossage calls for invalid cases.
2398         Add support for 't' and 'b' letters.
2399         (xtensa_expand_prologue): New function to replace
2400         xtensa_function_prologue and xtensa_reorg.
2401         (xtensa_function_epilogue): Declare this as static.  Delete code
2402         to print the retw.n or retw instruction.
2403         (xtensa_return_addr): Use A0_REG instead of 0.
2404         (xtensa_rtx_costs): Add costs for using the const16 option.
2405         * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
2406         (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
2407         (TARGET_SWITCHES): Add "const16" and "no-const16".
2408         (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
2409         (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
2410         using the const16 option.
2411         (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
2412         (TRAMPOLINE_SIZE): Change from 49 to 59.
2413         (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
2414         (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
2415         when using the const16 option.
2416         (PREDICATE_CODES): Delete non_const_move_operand.
2417         * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
2418         UNSPECV_ENTRY.
2419         (movdi, movdf): If the source is a constant, always expand to a
2420         sequence of movsi insns.
2421         (movdi_internal, movdf_internal): Remove alternative using l32r insns.
2422         (movsi_internal, movsf_internal): Add alternative using const16 insns.
2423         (movsf): Add const16 support.
2424         (entry, prologue, epilogue): New.
2425         (set_frame_ptr): Add missing mode for unspec_volatile operation.
2426         Likewise for subsequent split pattern.
2427         * doc/invoke.texi (Option Summary, Xtensa Options): Document new
2428         "-mconst16" and "-mno-const16" options.
2429
2430 2003-05-14  Richard Henderson  <rth@redhat.com>
2431
2432         * config/ia64/ia64.c (ia64_expand_load_address): Force destination
2433         to be DImode register.  Merge load_symptr.
2434         * config/ia64/ia64.md (load_symptr): Remove.
2435
2436 2003-05-14  Richard Henderson  <rth@redhat.com>
2437
2438         * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from
2439         DEFERRED_CONSTANT_P.
2440         * integrate.c (copy_rtx_and_substitute): Update use.
2441         * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL
2442         to the copy generated.
2443         (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN
2444         of the constant to see if we should emit.
2445         (mark_constant): Similarly.
2446         (output_constant_def_contents): Set TREE_ASM_WRITTEN.
2447
2448 2003-05-14  David Edelsohn  <edelsohn@gnu.org>
2449
2450         * config/rs6000/rs6000.md (movsi_internal2): Use compare for self
2451         move record condition.
2452         (movdi_internal2): Same.
2453
2454 2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
2455
2456         * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here.
2457         (GCOV_TAG_*) Force type to gcov_unsigned_t.
2458         (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New.
2459         (struct gcov_var): Remove modified. Add start, length, offset,
2460         overread. Have buffer array for libgcov.
2461         (gcov_sync, gcov_seek): Definitions moved to gcov-io.c.
2462         (gcov_position, gcov_rewrite, gcov_is_eof): Adjust.
2463         * gcov-io.c (gcov_open): Set mode, do not read anything.
2464         (gcov_close): Write final block.
2465          (gcov_write_block, gcov_allocate): New.
2466         (gcov_write_bytes): Make static. Write or allocate buffer.
2467         (gcov_write_unsigned, gcov_write_counter): Buffer can never be
2468         null.
2469         (gcov_write_string): Adjust.
2470         (gcov_write_tag)
2471         (gcov_write_length): Adjust. Flush the block.
2472         (gcov_write_tag_length): Buffer can never be null.
2473         (gcov_read_bytes): Make static. Read in block.
2474         (gcov_sync): Moved here. Adjust.
2475         (gcov_seek): Moved here. Adjust.
2476         * coverage.c (read_counts_file): Adjust.
2477         * gcov-dump.c (print_prefix): Add position parameter.
2478         (flag_dump_positions): New flag.
2479         (options, main, print_usage): Add it.
2480         (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters,
2481         tag_summary): Adjust.
2482         * gcov.c (read_graph_file, read_count_file): Adjust.
2483         * libgcov.c (gcov_exit): Adjust.
2484
2485         * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files
2486         (libgcov.a): Depend on libgcc.a.
2487         (gcov.o, gcov-dump.o): Add gcov-io.c.
2488         * mklibgcc.in (libgcov_c_dep): Use $(srcdir).
2489
2490         * loop.c (check_dbra_loop): Factor common test.
2491
2492 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
2493
2494         * doc/md.texi (Automaton pipeline description): Grammar fixes.
2495
2496 2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
2497
2498         * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
2499         (TARGET_INITIALIZER): Include it.
2500         * target.h (struct gcc_target): Add machine_dependent_reorg field.
2501         * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
2502         * system.h: Poison MACHINE_DEPENDENT_REORG.
2503
2504         * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
2505         * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
2506         * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2507         (alpha_handle_trap_shadows): Remove "first insn" parameter.
2508         (alpha_align_insns): Likewise.
2509         (alpha_reorg): Likewise.  Make static.  Update calls to above
2510         functions.
2511
2512         * config/arm/arm-protos.h (arm_reorg): Remove declaration.
2513         * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
2514         * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2515         (arm_reorg): Remove parameter.  Make static.
2516
2517         * config/avr/avr-protos.h (machine_dependent_reorg): Remove.
2518         * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
2519         * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2520         (avr_reorg): Renamed from machine_dependent_reorg.  Make static.
2521         Remove parameter.
2522
2523         * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
2524         * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
2525         * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2526         (c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
2527         Remove parameter.
2528
2529         * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
2530         * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
2531         * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
2532
2533         * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
2534         * config/frv/frv.c: Remove orphaned comment.
2535
2536         * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
2537         * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
2538         * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2539         (ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
2540         Remove parameter.
2541
2542         * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
2543         * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
2544         * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2545         (emit_insn_group_barriers): Remove "first insn" parameter.
2546         (emit_all_insn_group_barriers): Likewise.
2547         (ia64_reorg): Likewise.  Make static.  Update calls to above functions.
2548         (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
2549
2550         * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
2551         * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
2552         * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2553         (ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
2554         Remove parameter.
2555
2556         * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
2557         * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
2558         * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2559         (m68hc11_reorg): Make static.  Remove parameter.
2560
2561         * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
2562         * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
2563         * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2564         (conditionalize_optimization): Remove parameter.
2565         (mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
2566         Make static.  Update call to conditionalize_optimization.
2567
2568         * config/mips/mips-protos.h (machine_dependent_reorg): Remove.
2569         * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
2570         * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2571         (mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
2572         Make static.
2573
2574         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
2575         * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
2576         * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2577         (mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
2578         Remove parameter.
2579
2580         * config/pa/pa-protos.h (pa_reorg): Remove declaration.
2581         * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
2582         * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2583         (pa_combine_instructions): Remove "first insn" parameter.
2584         (remove_useless_addtr_insns): Likewise.
2585         (pa_reorg): Likewise.  Make static.  Update calls to above functions.
2586
2587         * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
2588         commented-out definition.
2589
2590         * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
2591         * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
2592         * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2593         (s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
2594         Remove parameter.
2595
2596         * config/sh/sh-protos.h (machine_dependent_reorg): Remove.
2597         * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
2598         * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2599         (sh_reorg): Renamed from machine_dependent_reorg.  Make static.
2600         Remove parameter.
2601         (sh_output_mi_thunk): Call sh_reorg directly.
2602         * config/sh/sh.md: Update comment.
2603
2604         * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
2605         commented-out definition.
2606
2607         * config/v850/v850-protos.h (v850_reorg): Remove declaration.
2608         * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
2609         * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2610         (v850_reorg): Make static.  Remove parameter.
2611
2612         * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
2613         * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
2614         * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2615         (xtensa_reorg): Make static.  Remove parameter.
2616
2617         * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
2618         (TARGET_MACHINE_DEPENDENT_REORG): Document.
2619
2620 2003-05-13  Richard Henderson  <rth@redhat.com>
2621
2622         * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
2623         the old decl had instantiated DECL_RTL.
2624
2625 2003-05-13  Mike Stump  <mrs@apple.com>
2626
2627         * doc/invoke.texi (Option Summary): Kill off documentation for -$.
2628
2629 2003-05-13  Janis Johnson  <janis187@us.ibm.com>
2630
2631         * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect
2632         HOST_WIDE_INT argument.
2633
2634 2003-05-13  Jason Merrill  <jason@redhat.com>
2635
2636         * tree.h (STRIP_MAIN_TYPE_NOPS): New macro.
2637
2638         * tree.c (iterative_hash_expr): New fn.
2639
2640         * c-semantics.c (emit_local_var): Don't mess with temp slots if
2641         there's no initializer.
2642
2643 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
2644
2645         * final.c (final_scan_insn): Apply the effects of frame-related
2646         delay slot insns before emitting a delayed branch.
2647
2648 2003-05-13  Nick Clifton  <nickc@redhat.com>
2649
2650         * config/mcore/mcore.md (jump): Use emit_jump_insn.
2651
2652 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2653
2654         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second
2655         parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT.
2656
2657 2003-05-12  DJ Delorie  <dj@redhat.com>
2658
2659         * expr.c (move_by_pieces): Honor the alignment of TO and FROM.
2660         (emit_push_insn): Don't use push when the source alignment is less
2661         than the stack's push rounding.
2662
2663 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
2664
2665         * diagnostic.c (output_format): Add support for %m.
2666         (output_printf, output_verbatim, diagnostic_set_info,
2667         verbatim): Set err_no field of the text_info structure being
2668         initialized.
2669         (fatal_io_error): Delete function.
2670         * diagnostic.h (text_info): Add err_no field.
2671         * toplev.h (fatal_io_error): Delete prototype.
2672
2673         * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c
2674         * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c
2675         * objc/objc-act.c: Replace all calls to fatal_io_error with
2676         calls to fatal_error; add ": %m" to the end of all the affected
2677         error messages.
2678
2679 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
2680
2681         * varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
2682         * rtl.h: Prototype it.
2683         * integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
2684         when appropriate.
2685
2686 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2687
2688         * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
2689         ("*iorsi3_oi"): Likewise.
2690
2691 2003-05-13  Richard Earnshaw  <rearnsha@arm.com>
2692
2693         * arm.md (compare_scc): Use shorter sequence for EQ case.
2694         (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns.
2695         (and_scc_scc): Ensure split only applies when there is a dominance
2696         of the comparisons.
2697         (and_scc_scc_nodom): New insn-and-split pattern.
2698
2699 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
2700
2701         * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly
2702         to _Unwind_SetGRPtr().
2703
2704 2003-05-13  Michael Eager <eager@mvista.com>
2705
2706         * Makefile.in: Initialize program_transform_cross_name from
2707         @program_transform_name@ instead of target_alias.
2708
2709 2003-05-12  Janis Johnson  <janis187@us.ibm.com>
2710             Alan Modra  <amodra@bigpond.net.au>
2711             Jakub Jelinek  <jakub@redhat.com>
2712
2713         * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
2714         * configure: Rebuild.
2715         * config/rs6000/rs6000-protos.h: Update.
2716         * config/rs6000/rs6000.c (rs6000_tls_size): New.
2717         (rs6000_tls_size_string): New.
2718         (rs6000_parse_tls_size_option): New.
2719         (rs6000_legitimize_tls_address): New.
2720         (rs6000_tls_get_addr): New.
2721         (rs6000_got_sym): New.
2722         (rs6000_tls_symbol_ref): New.
2723         (rs6000_tls_symbol_ref_1): New.
2724         (rs6000_get_some_local_dynamic_name): New.
2725         (rs6000_get_some_local_dynamic_name_1): New.
2726         (TARGET_HAVE_TLS): New.
2727         (TARGET_CANNOT_FORCE_CONST_MEM): New.
2728         (rs6000_override_options): Handle -mtls-size option.
2729         (constant_pool_expr_1): Handle TLS symbols.
2730         (rs6000_legitimize_address): Handle TLS symbols.
2731         (rs6000_tls_referenced_p): New.
2732         (rs6000_legitimate_address): Handle TLS symbols.
2733         (rs6000_emit_move): Handle TLS symbols.
2734         (print_operand): Handle TLS symbols.
2735         (uses_TOC): Handle TLS symbols.
2736         (rs6000_emit_prologue): Use symbol for unspec constant.
2737         * config/rs6000/rs6000.h (HAVE_AS_TLS): New.
2738         (some_ld_name): New.
2739         (LEGITIMATE_CONSTANT_P): Handle TLS symbols.
2740         (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
2741         (PREDICATE_CODES): Add rs6000_tls_symbol_ref.
2742         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
2743         Support TLS.
2744         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
2745         tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
2746         tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
2747         tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
2748         tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
2749         tls_tls_64): New.
2750         * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
2751
2752 2003-05-12  Neil Booth  <neil@cat.daikokuya.co.uk>
2753
2754         * Makefile.in (stage2_build, stage3_build, stage4_build):
2755         Set BUILD_CC to the same as CC.
2756
2757 2003-05-12  Neil Booth  <neil@daikokuya.co.uk>
2758
2759         * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards.
2760
2761 2003-05-12  Andreas Schwab  <schwab@suse.de>
2762
2763         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
2764         as unused.
2765         (bundling): Initialize 'pos'.
2766         (ia64_expand_builtin): Initialize 'rmode'.
2767
2768 2003-05-12  David Edelsohn  <edelsohn@gnu.org>
2769
2770         * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
2771         (ASM_OUTPUT_ALIGNED_COMMON): Same.
2772         (ASM_OUTPUT_LOCAL): Same.
2773
2774 Mon May 12 21:53:29 CEST 2003  Jan Hubicka  <jh@suse.cz>
2775
2776         * varasm.c (output_constant):  Fix underflow.
2777
2778 2003-05-12  Mark Mitchell  <mark@codesourcery.com>
2779
2780         PR other/10745
2781         * configure.in: Correct detection of GNU ld version number.
2782         * configure: Regenerated.
2783
2784 2003-05-12  Zack Weinberg  <zack@codesourcery.com>
2785
2786         * diagnostic.c (diagnostic_for_decl): Take a
2787         diagnostic_context argument.  Restructure to be consistent
2788         with diagnostic_report_diagnostic.
2789         (diagnostic_count_diagnostic): Now static.  Take a
2790         diagnostic_info argument, not just a diagnostic_t.  Some code
2791         moved here from internal_error.  Move a case label for
2792         clarity.
2793         (diagnostic_action_after_output): New function.  Code moved
2794         here from internal_error and fatal_error.
2795         (bug_report_request): New #define so that this text appears in
2796         only one place.
2797         (diagnostic_report_diagnostic): Update to match changes to
2798         diagnostic_count_diagnostic.  Call diagnostic_action_after_output.
2799         (diagnostic_set_info): Call gettext here.
2800
2801         (pedwarn): Update comment.  Don't call gettext here.
2802         (sorry): Use report_diagnostic.  Don't call gettext here.
2803         (fatal_error): Remove final fnotice and exit, but call
2804         real_abort to prevent warnings about noreturn function returning.
2805         (internal_error): Likewise.  Don't do ICE suppression here nor
2806         call context->internal_error.
2807         (warning_with_decl): Suppress for decls in system headers.
2808         Adjust call to diagnostic_for_decl.
2809         (pedwarn_with_decl): Likewise.
2810         (error_with_decl): Adjust call to diagnostic_for_decl.
2811         (error_recursion): Use bug_report_request.
2812
2813         * diagnostic.h: Remove prototype of diagnostic_count_diagnostic.
2814         * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call
2815         diagnostic_count_diagnostic.
2816
2817 2003-05-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2818
2819         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch.
2820
2821 Mon May 12 15:57:54 CEST 2003  Jan Hubicka  <jh@suse.cz>
2822
2823         * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT
2824         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning.
2825         * mips/mips.h (ASM_OUTPUT_SKIP):  Fix typo in the previous patch.
2826
2827 2003-05-12  Roger Sayle  <roger@eyesopen.com>
2828
2829         * doc/rtl.texi: Document zero_extract as a valid destination
2830         of a set insn.
2831
2832 2003-05-12  Richard Earnshaw  <rearnsha@arm.com>
2833
2834         * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with
2835         '.'.  Change all local symbol definitions and references to use LSYM.
2836
2837 Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
2838
2839         * expr.h (assemble_static_space): Update prototype.
2840         * output.h (assemble_zeros, output_constant): Likewise.
2841         * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
2842         * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
2843         it 64bit clean.
2844         * elf.h (ASM_OTUPUT_SKIP): Likewise.
2845         * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
2846         * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2847         Expect HOST_WIDE_INT operand.
2848         * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2849         Expect HOST_WIDE_INT operand.
2850         * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2851         Expect HOST_WIDE_INT operand.
2852         * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
2853         HOST_WIDE_INT operand.
2854         * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
2855         ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
2856         * aout.h (ASM_OTUPUT_SKIP): Likewise.
2857         * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2858         * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
2859         * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
2860         * frv.h (ASM_OTUPUT_SKIP): Likewise.
2861         * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
2862         * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2863         Make it 64bit
2864         clean.
2865         * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
2866         * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2867         Make it 64bit clean.
2868         * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
2869         * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
2870         HOST_WIDE_INT operand
2871         * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2872         Expect HOST_WIDE_INT operand
2873         * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
2874         * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
2875         ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
2876         * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2877         Likewise.
2878         * m32r.h (ASM_OUTPUT_COMMON): Likewise.
2879         * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2880         Likewise.
2881         * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2882         * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2883         * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2884         ASM_OUTPUT_SKIP): Likewise.
2885         * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2886         Likewise.
2887         * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2888         ASM_OUTPUT_SKIP): Likewise.
2889         * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2890         ASM_OUTPUT_SKIP): Likewise.
2891         * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
2892         * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
2893         ASM_OUTPUT_SKIP): Likewise.
2894         * sgs.h (ASM_OUTPUT_SKIP): Likewise.
2895         * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
2896         ASM_OUTPUT_SKIP): Likewise.
2897         * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
2898         Likewise.
2899         * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
2900         * iris.h (ASM_OUTPUT_LOCAL): Likewise.
2901         * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
2902         * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2903         ASM_OUTPUT_SKIP): Make it 64bit clean.
2904         * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
2905         Make it 64bit clean.
2906         * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
2907         ASM_OUTPUT_SKIP): Make it 64bit clean.
2908         * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
2909         64bit clean.
2910         * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
2911         HOST_WIDE_INT argument
2912         * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
2913         * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
2914         HOST_WIDE_INT argument
2915         * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
2916         * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
2917         * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
2918         * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2919         HOST_WIDE_INT argument
2920         * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
2921         * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
2922         * varasm.c (asm_output_bss, asm_output_aligned_bss,
2923         asm_emit_uninitialized, assemble_zeros, assemble_static_space):
2924         HOST_WIDE_INT argument
2925
2926 2003-05-10  Steven Bosscher  <steven@gcc.gnu.org>
2927
2928         * cgraphunit.c (cgraph_create_edges): Drop walk_tree in
2929         favor of walk_tree_without_duplicates.  Add comments.
2930
2931 2003-05-12  Josef Zlomek  <zlomekj@suse.cz>
2932
2933         * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type.
2934         (struct alloc_pool_def): New element 'id'.
2935         * alloc-pool.c (fancy_abort): Extern function prototype.
2936         (abort): Macro which uses fancy_abort.
2937         (struct allocation_object_def): New structure.
2938         (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro.
2939         (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro.
2940         (last_id): New variable.
2941         (create_alloc_pool): Add the offset of u.data to size of element,
2942         increase and use last_id.
2943         (free_alloc_pool): Do the checking only when ENABLE_CHECKING.
2944         (pool_alloc): Likewise. Set ID for elements.
2945         (pool_free): Check whether the PTR was allocated from POOL.
2946
2947 2003-05-11  Richard Henderson  <rth@redhat.com>
2948
2949         PR c/10675
2950         * c-decl.c: Include hashtab.h.
2951         (detect_field_duplicates): New.
2952         (finish_struct): Use it.
2953         * Makefile.in (c-decl.o): Update.
2954         * c-parse.in (structsp_attr): Nreverse component_decl_list results.
2955         (component_decl_list, component_decl_list2,
2956         components, components_notype): Build list in reverse order.
2957         (enumlist): Clarify docs.  Use TREE_CHAIN not chainon.
2958
2959         * tree.c (chainon): Special case op2 null as well.
2960         Reorg for clarity.
2961
2962 2003-05-11  Roger Sayle  <roger@eyesopen.com>
2963
2964         * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns
2965         to implement log, logf and logl built-ins as inline x87 intrinsics.
2966         (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction.
2967         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn
2968         patterns for x87's "fyl2x" instruction, used by log?f2 patterns.
2969
2970         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like
2971         UNSPEC_FPATAN, i.e. replaces two stack operands with single result.
2972
2973 2003-05-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2974
2975         * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o.
2976
2977         * sparc.c (print_operand): Fix uninitialized warning.
2978
2979 2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2980
2981         * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
2982         real insns.
2983         * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
2984         condition.
2985
2986 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
2987
2988         * doc/cpp.texi: Fix typos.
2989
2990 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
2991
2992         * config/s390/s390.c (s390_function_arg_float): New function.
2993         (s390_function_arg_pass_by_reference): Use it.
2994         (s390_function_arg_advance): Likewise.
2995         (s390_function_arg): Likewise.
2996         (s390_va_arg): Likewise
2997
2998 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
2999
3000         * coverage.h (coverage_counter_alloc): New function.
3001         * function.h (struct function): Remove arc_profile flag.
3002         * coverage.c (fn_ident): Remove.
3003         (fn_b_ctrs, no_coverage): New.
3004         (get_coverage_counts): Use current_function_funcdef_no.
3005         (coverage_counter_alloc): New.
3006         (coverage_counter_ref): Adjust.
3007         (coverage_begin_output): Check no_coverage. Use
3008         current_function_funcdef_no.
3009         (coverage_end_function): Likewise.
3010         (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
3011         than clearing flag_inline_functions. Do not clear arc_profile
3012         flag.
3013         * function.c (prepare_function_start): Do not set arc_profile
3014         flag.
3015         * profile.c (instrument_edges): Return number of instrumented
3016         edges. Use a for loop.
3017         (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
3018         local to here and simplify. Use profile_arc_flag not arc_profile
3019         flag.
3020         (find_spanning_tree): Reformat.
3021         * toplev.c (rest_of_compilation): Use profile_arc_flags and
3022         flag_test_coverage rather than arc_profile flag.
3023
3024 2003-05-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
3025
3026         * doc/invoke.texi (Wctor-dtor-privacy): Update documentation.
3027
3028 2003-05-11  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3029
3030         * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case.
3031
3032 2003-05-11  Bruno Haible  <bruno@clisp.org>
3033
3034         * cppfiles.c (find_or_create_entry): Preserve errno.
3035
3036 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
3037
3038         * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
3039         cpplib as it's a Standard Predefined Macro.
3040         * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
3041         * cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
3042         __STDC_HOSTED__ appropriately.
3043         * cpplib.h (_cpp_init_builtins): Update.
3044         * fix-header.c (read_scan_file): Update.
3045         * doc/cpp.texi, doc/cppopts.texi: Update documentation.
3046
3047 2003-05-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3048
3049         PR C++/689
3050         PR C++/9257
3051         * c-opts.c (c_common_decode_option): Don't set
3052         warn_ctor_dtor_privacy wen -Wall.
3053         * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
3054
3055 2003-05-10  Alexandre Oliva  <aoliva@redhat.com>
3056
3057         * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's
3058         patch.
3059
3060 2003-05-10  Zack Weinberg  <zack@codesourcery.com>
3061
3062         * diagnostic.c: Reorder functions for clarity, putting all the
3063         functions in the "error" family next to each other, and
3064         likewise all the functions in the "error_with_decl" family.
3065         Some other routines were moved too.  Add comments.
3066         (vbuild_message_string): Fold into sole caller.
3067
3068
3069 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
3070
3071         * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
3072         (EH_RETURN_HANDLER_RTX): Likewise.
3073         (expand_builtin_eh_return): Do not copy stack adjustment
3074         if EH_RETURN_STACKADJ_RTX is not defined.
3075         (expand_eh_return): Likewise.  Also, do not pass stack
3076         adjustment as argument to the eh_return pattern.
3077         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
3078         because EH_RETURN_STACKADJ_RTX is not defined.
3079         * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
3080         is not defined, treat stack pointer like a regular register.
3081         (uw_init_context_1): Set up fake initial stack pointer register.
3082         (uw_install_context_1): Do not compute stack adjustment if
3083         EH_RETURN_STACKADJ_RTX is not defined.
3084
3085         * config/i386/i386.md ("eh_return"): Remove first argument.
3086         * config/mips/mips.md ("eh_return"): Likewise.
3087         * config/rs6000/rs6000.md ("eh_return"): Likewise.
3088         * config/sh/sh.md ("eh_return"): Likewise.
3089
3090         * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
3091
3092 2003-05-10  Alexander Aganichev  <aaganichev@yandex.ru>
3093
3094         * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
3095
3096 2003-05-10  Nathan Sidwell  <nathan@codesourcery.com>
3097
3098         * defaults.h (GCOV_TYPE_SIZE): Remove.
3099         * gcov-io.h (gcov_type): Set to specific mode int on target.
3100         (gcov_unsigned_t, gcov_position_t): New.
3101         (GCOV_TYPE_NODE): New.
3102         (GCOV_TAG_SUMMARY_LENGTH): Adjust.
3103         (GCOV_COUNTERS_SUMMABLE): New.
3104         (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn,
3105         gcov_ctr_info, gcov_info): Adjust types.
3106         (gcov_var): Adjust types.
3107         (gcov_write_unsigned, gcov_write_tag,
3108         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3109         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3110         (gcov_position, gcov_sync, gcov_seek): Adjust gcov types.
3111         * gcov-io.c (gcov_write_unsigned, gcov_write_tag,
3112         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3113         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3114         * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit,
3115         __gcov_init, __gcov_merge_add): Adjust gcov types.
3116         * coverage.c (ctr_merge_functions): Constify.
3117         (ctr_names): New.
3118         (read_counts_file): Adjust gcov types. Only summarize & merge
3119         summable counters.
3120         (coverage_counter_ref): Use GCOV_TYPE_NODE.
3121         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
3122         build_ctr_info_value, build_gcov_info): Adjust types.
3123         * profile.c (branch_prob): Adjust gcov types.
3124         * gcov_dump (dump_file): Adjust gcov types.
3125
3126 2003-05-10  Richard Earnshaw  <rearnsha@arm.com>
3127
3128         * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New
3129         constants.
3130         (ior_scc_scc, and_scc_scc): New insn_and_split patterns.
3131         * arm.c (arm_select_dominance_cc_mode): Renamed from
3132         select_dominance_cc_mode, no-longer static.  Use DOM_CC... constants.
3133         Callers updated.
3134         * arm-protos.h (arm_select_dominance_cc_mode): Add prototype.
3135
3136 2003-05-09  Roger Sayle  <roger@eyesopen.com>
3137
3138         * config/alpha/alpha.c (alpha_start_function): Declare frame_size
3139         as unsigned to avoid signed/unsigned comparison warnings.
3140
3141 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3142
3143         * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
3144         instruction if the Xtensa density option is enabled.
3145
3146 2003-05-09  Matt Kraai <kraai@alumni.cmu.edu>
3147
3148        * mklibgcc.in: Remove extra quotes.
3149
3150 2003-05-09  Mark Mitchell  <mark@codesourcery.com>
3151
3152         * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation
3153         of int_ftype_void.
3154
3155 2003-05-09  Alexandre Oliva  <aoliva@redhat.com>
3156
3157         * reload1.c (reload_cse_move2add): Don't turn an implicit
3158         truncation into a self-set in the narrow mode.
3159
3160 2003-05-09  Richard Earnshaw  <rearnsha@arm.com>
3161
3162         * arm.md (clzsi2): The CLZ instruction is predicable.
3163
3164 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3165
3166         * config/xtensa/xtensa.c: Formatting.
3167
3168 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3169
3170         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
3171         instead of TREE_OPERAND to access the operand of a
3172         CONSTRUCTOR node.
3173
3174 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3175
3176         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
3177         one operand.
3178
3179 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3180
3181         * toplev.h (warning_with_file_and_line): Don't declare.
3182         (error_with_file_and_line): Likewise.
3183         * diagnostic.c (error_with_file_and_line): Remove.
3184         (warning_with_file_and_line): Likewise.
3185
3186 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3187
3188         * c-parse.in (if_stmt_locus): New object.
3189         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
3190         (select_or_iter_stmt rule): Likewise.
3191         (if_stmt_file): Remove.
3192         (if_stmt_line): Likewise.
3193         * jump.c: include "diagnostic.h"
3194         (never_reached_warning): Don't use warning_with_file_and_line.
3195         * Makefile.in (jump.o): Add dependce on diagnostic.h
3196
3197 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
3198
3199         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
3200         Move code handling pieces not larger than a word to..
3201         * function.c (assign_parms): ..here, but use change_address instead
3202         of adjust_address and operand_subword, and expand_binop instead of
3203         expand_shift.  Adjust calls to move_block_from_reg.
3204         * expr.h (move_block_from_reg): Update declaration.
3205         (copy_blkmode_from_reg): Formatting.
3206         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
3207         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
3208         move_block_from_reg calls.
3209         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
3210         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
3211         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
3212         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
3213         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
3214         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3215         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
3216         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3217         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
3218
3219 2003-05-08  DJ Delorie  <dj@redhat.com>
3220
3221         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
3222         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
3223         variable-sized types).
3224         (xstormy16_function_arg): New.  Pass them that way too.
3225         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
3226         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
3227
3228 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
3229
3230         * mklibgcc.in: Use mkinstalldirs when installing multilib
3231         directories.
3232
3233 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
3234
3235         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
3236         instead of CODE_FOR_jump
3237
3238 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
3239
3240         * objc/objc-act.c (error_with_ivar): Don't use
3241         error_with_file_and_line.
3242         (warn_with_method): Don't use warning_with_file_and_line.
3243
3244 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3245
3246         * stmt.c (emit_locus): New macro.
3247         (emit_filename): Remove.
3248         (emit_lineno): Likewise.
3249         (struct stmt_status): Replace members x_emit_filename and
3250         x_emit_lineno with x_emit_locus.
3251         (set_file_and_line_for_stmt): Adjust.
3252         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
3253         (warn_if_unused_value): Likewise.
3254         (check_seenlabel): Likewise.
3255
3256 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3257
3258         * c-decl.c (define_label): Tidy.  Don't use any of
3259         error_with_file_and_line or warning_with_file_and_file.
3260         (pending_xref_error): Likewise.
3261         (store_parm_decls): Likewise.
3262         (current_function_prototype_locus): New object.  Package from
3263         current_function_prototype_file and current_function_prototype_line.
3264         (start_function): Use it.
3265         (current_function_prototype_file): Remove.
3266         (current_function_prototype_line): Remove;
3267
3268 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3269
3270         * builtins.c (readonly_data_expr): New function.
3271         (expand_builtin_memmove): Optimize any rodata source, not just
3272         strings.
3273
3274 2003-05-07  David Mosberger <davidm@hpl.hp.com>
3275
3276         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
3277
3278 2003-05-07  Richard Henderson  <rth@redhat.com>
3279
3280         * config/i386/i386.c (ix86_split_long_move): Fix base register
3281         mode for XFmode splits for TARGET_64BIT.
3282
3283 2003-05-07  Richard Henderson  <rth@redhat.com>
3284
3285         * sched-ebb.c (schedule_ebb): Supply the correct starting
3286         block number to save_line_notes.
3287
3288 2003-05-07  Richard Henderson  <rth@redhat.com>
3289
3290         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
3291         (dump_file): Likewise.
3292
3293 2003-05-07  David Mosberger <davidm@hpl.hp.com>
3294
3295         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
3296         forget to preserve gp.
3297         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
3298
3299         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
3300         .prologue directive.
3301         Use .skip instead of data8 for .bss section to make Intel
3302         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
3303         explicit in the .mib bundles and remove the unnecessary stop
3304         bits.  Replace local labels with normal labels, to make ias
3305         happy.  Don't register __do_global_ctors_aux here, do it in
3306         crtend.asm instead.
3307
3308         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
3309         __do_global_ctors_aux in .init_array section instead of
3310         declaring it as a hidden global.  Replace local labels with
3311         ordinary labels to make ias happy.
3312
3313 2003-05-07  Richard Henderson  <rth@redhat.com>
3314
3315         PR c++/10570
3316         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
3317         * flags.h, toplev.c, doc/invoke.texi: Likewise.
3318
3319         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
3320         * unwind.inc (_Unwind_DeleteException): Check for null
3321         exception_cleanup.
3322
3323         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
3324         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
3325         * unwind.h: Declare them.
3326         * libgcc-std.ver (GCC_3.3): Export them.
3327
3328 2003-05-07  Richard Henderson  <rth@redhat.com>
3329
3330         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
3331         not _Unwind_Word.
3332
3333 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
3334
3335         * stmt.c (force_label_rtx): New function, based on logic
3336         formerly found in expand_expr.
3337         * expr.h: Prototype it.
3338         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
3339         appropriate.
3340         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
3341
3342         * print-tree.c (debug_tree): Free the table after we're done
3343         with it.  Use putc.
3344
3345 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
3346
3347         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
3348         Unreverse arguments for __ev_subw.
3349
3350         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
3351
3352 2003-05-07  Nick Clifton  <nickc@redhat.com>
3353
3354         * config/stormy16/stormy-abi: Update to include
3355         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
3356         R_XSTORMY16_12 relocs.
3357
3358 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
3359
3360         * function.c (assign_parms): Correct reversed reg_parm_stack_space
3361         test.  Add partial in-regs size to stack_args_size.
3362
3363 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3364
3365         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
3366         as a C only option.
3367
3368 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
3369
3370         * gcov-io.h (GCOV_LOCKED): New #define.
3371         (GCOV_LINKAGE): Make sure it is #defined.
3372         (gcov_write_string, gcov_write_tag, gcov_write_length,
3373         gcov_read_string, gcov_time): Poison in libgcov.
3374         (gcov_seek_end): Remove.
3375         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
3376         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
3377         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
3378         GCOV_TAG_SUMMARY_LENGTH): New #defines.
3379         (gcov_write_tag, gcov_write_length): Not in libgcov.
3380         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
3381         (gcov_write_tag, gcov_write_length): Not in libgcov.
3382         (gcov_write_tag_length): New.
3383         (gcov_write_summary): Use gcov_write_tag_length.
3384         * libgcov.c: Always #include gcov-io.h.
3385         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
3386         (GCOV_LINKAGE): Define to nothing for L_gcov.
3387         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
3388         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
3389         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
3390         (read_count_file): Likewise.
3391         * gcov-dump.c (dump_file): Likewise.
3392         * coverag.c (read_counts_file): Likewise.
3393
3394 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
3395
3396         PR other/10658
3397         * gcc.c (process_command): Update copyright date.
3398
3399 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
3400
3401         * doc/install.texi (mips-*-*):  Add note about libstdc++.
3402
3403 2003-05-06  DJ Delorie  <dj@redhat.com>
3404
3405         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
3406         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
3407         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
3408
3409 2003-05-06    <neil@cat.daikokuya.co.uk>
3410
3411         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
3412         and -Wstrict-prototypes if C++.
3413
3414 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
3415
3416         * config/rs6000/linuxspe.h: New file.
3417
3418         * config.gcc: Add powerpc-*-linux-gnuspe* target.
3419
3420 2003-05-06  Richard Henderson  <rth@redhat.com>
3421
3422         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
3423         previous frame didn't save sp.  Clear sp for next frame.
3424         (uw_install_context_1): Honor saved sp from frame.
3425
3426 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
3427
3428         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
3429         (mips_move_1word, mips_move_2words): Remove declaration.
3430         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
3431         (mips_restore_gp): Remove insn argument.
3432         * config/mips/mips.h (FP_REG_RTX_P): New macro.
3433         * config/mips/mips.c (volatile_buffer): Remove.
3434         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
3435         (mips_move_1word, mips_move_2words): Remove, replacing with...
3436         (mips_output_move): ...this new function.
3437         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
3438         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
3439         handling of floating-point constants.  Handle zero CONST_DOUBLE
3440         arguments.
3441         (mips_annotate_frame_insn): Replace with...
3442         (mips_set_frame_expr): ...this, which just takes one argument.
3443         (mips_frame_set): Change the register argument to an rtx.
3444         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
3445         check whether moves should be split.  Use mips_split_64bit_move
3446         to split them.  Use mips_subword to generate the high and low
3447         parts of a paired FPR.  Adjust calls to frame_set and
3448         mips_set_frame_expr.
3449         (mips_expand_prologue): Simplify due to above changes.
3450         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
3451         targets, replacing xisting register-only versions.
3452         (UNSPEC_STORE_DF_HIGH): New unspec.
3453         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
3454         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
3455         (*paradoxical_extendhidi2): Remove.
3456         (movdi_internal, movdi_internal2): Use mips_output_move.
3457         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
3458         (movsf_internal1, movsf_internal2): Likewise.
3459         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
3460         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
3461         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
3462         Add m <- G alternative.
3463         (load_df_low, load_df_high, store_df_low): New patterns.
3464         (movhi_internal): Use @ template instead of calling a function.
3465         Remove unnecessary 'z' alternatives.
3466         (movqi_internal): Likewise.
3467         (exception_receiver): Update call to mips_restore_gp.
3468
3469 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
3470
3471         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
3472         (mips_delegitimize_address): Declare.
3473         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
3474         (FIND_BASE_TERM): Define.
3475         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
3476         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
3477         Handle small-data addresses.
3478
3479 2003-05-05  Roger Sayle  <roger@eyesopen.com>
3480
3481         * real.c (real_powi): New function to calculate the value of
3482         a real raised to an integer power, i.e. pow(x,n) for int n.
3483         (real_sqrt): Convert to using the faster do_add, do_multiply
3484         and do_divide API for consistency with the rest of real.c.
3485         * real.h (real_powi): Prototype here.
3486         * builtins.c (fold_builtin):  Avoid local variable mode when
3487         evaluating sqrt at compile time.  Attempt to evaluate pow at
3488         compile-time, by checking for an integral exponent.
3489
3490 2003-05-05  Richard Henderson  <rth@redhat.com>
3491
3492         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
3493
3494 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
3495
3496         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
3497         other FreeBSD ports.
3498         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
3499         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
3500
3501 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
3502
3503         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
3504         expanded variables.
3505         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
3506
3507 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
3508
3509         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
3510         * varasm.c (struct varasm_status): Add deferred_constants field.
3511         (n_deferred_strings): Delete variable.
3512         (n_deferred_constants): New #define.
3513         (struct constant_descriptor_tree): Kill next and label fields.
3514         (const_hash_table, MAX_HASH_TABLE): Delete.
3515         (const_desc_htab): New static variable.
3516         (const_hash): Rename const_desc_hash, and make it fit the
3517         hashtab.h interface.
3518         (const_desc_eq): New.
3519         (const_hash_1, compare_constant): Const-ify arguments.
3520         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
3521         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
3522         (output_constant_def): Do the lookup/insert using the
3523         hashtab.h interface.  Don't muck with n_deferred_constants or
3524         DEFERRED_CONSTANT_P here.
3525         Always call maybe_output_constant_def_contents.
3526         (maybe_output_constant_def_contents): Take a pointer to the
3527         descriptor, not the EXP and RTL separately.  Return
3528         immediately if this constant is not deferred.  Defer output of
3529         everything, except writable string constants.  Update
3530         n_deferred_constants here.
3531         (output_constant_def_contents): Now takes just one argument,
3532         an rtx.  Clear DEFERRED_CONSTANT_P here.
3533         (mark_constant_pool): Update for rename of n_deferred_strings.
3534         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
3535
3536         (init_varasm_status): Clear p->deferred_constants.
3537         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
3538
3539 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3540
3541         * builtins.c (expand_builtin_stpcpy): Only expand when the length
3542         of the source string can be evaluated at compile-time.
3543
3544 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3545
3546         * testsuite/gcc.c-torture/compile/simd-6.c: New.
3547
3548         * c-typeck.c (digest_init): Handle arrays of vector constants.
3549
3550 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
3551
3552         * builtins.c (expand_builtin_mempcpy): New function.
3553         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
3554         ignored into strcpy no matter what arguments it has.
3555         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
3556         expand_builtin_mempcpy.
3557
3558 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3559
3560         * testsuite/gcc.dg/20030505.c: New.
3561
3562         * c-typeck.c (convert_for_assignment): Opaque pointers can
3563         interconvert.
3564
3565         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
3566         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
3567         (spe_init_builtins): Rename all pv2si_type_node to
3568         opaque_p_V2SI_type_node.
3569         Remove declaration of pv2si_type_node.
3570         (is_ev64_opaque_type): Accept opaque pointers.
3571
3572 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
3573
3574         * config/rs6000/rs6000.c (validate_condition_mode): Use
3575         flag_finite_math_only.
3576         (rs6000_reverse_condition): Never return UNKNOWN; use
3577         flag_finite_math_only.
3578         (rs6000_generate_compare): Use flag_finite_math_only.
3579         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
3580         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
3581         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
3582
3583         * toplev.c (check_global_declarations): Suppress not-used warning
3584         for volatile variables.
3585
3586 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
3587
3588         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
3589         usage of bitfield instructions for mode1 != BLKmode, only ignoring
3590         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
3591         (store_field): Likewise.
3592
3593 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3594
3595         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
3596         evsubifw to builtins accepting 5-bit unsigned constants.
3597         (easy_vector_constant): Return if V1DImode.  Fix typo.
3598
3599 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3600
3601         * config/rs6000/spe.h: Revert licensing change from last patch.
3602
3603 2003-05-05  DJ Delorie  <dj@redhat.com>
3604
3605         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
3606         before reload, but defer the split until after.
3607         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
3608         to match.
3609
3610 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
3611
3612         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
3613         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
3614
3615 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3616
3617         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
3618         is defined.
3619
3620 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3621
3622         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
3623         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
3624         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
3625
3626         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
3627         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
3628         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
3629         New.
3630
3631         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
3632         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
3633
3634         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
3635         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
3636         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
3637         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
3638         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
3639         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
3640         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
3641         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
3642         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
3643         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
3644         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
3645         BUILT_IN_STRDUP): Add "nonnull" attribute.
3646
3647 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3648
3649         * expr.c (store_field): Don't clobber TEMP in shift: it might be
3650         a variable.
3651         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
3652         whose purpose is to step up the alignment.
3653         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
3654
3655         * stor-layout.c (compute_record_mode): Relax restriction
3656         on fields crossing word boundaries forcing BLKmode.
3657
3658 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
3659
3660         * cppinit.c (cpp_create_reader, post_options): Warn about
3661         trigraphs unless explicity set or -trigraphs.
3662         * cpplex.c (warn_in_comment): New.
3663         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
3664         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
3665         * doc/cppopts.texi, doc/cpp.texi: Update.
3666
3667 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3668
3669         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
3670         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
3671         namespace clash.
3672         (GCOV_MERGE_FUNCTIONS): New.
3673         (gcov_merge_fn): Declare.
3674         (struct gcov_ctr_info): New field "merge".
3675         (__gcov_merge_add): Declare.
3676         * coverage.c (ctr_merge_functions): New.
3677         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
3678         of gcov_ctr_info type.
3679         * libgcov.c (__gcov_merge_add): New.
3680         (gcov_exit): Call a hook to merge values of counters.
3681
3682 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
3683
3684         * toplev.h (pedwarn_with_file_and_line): Don't declare.
3685         * diagnostic.c (pedwarn_with_file_and_line): Remove.
3686
3687 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3688
3689         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
3690
3691 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3692
3693         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
3694         expand_builtin_frame_address): Update prototypes.
3695         (expand_builtin_constant_p, expand_builtin_strlen,
3696         expand_builtin_strcpy, expand_builtin_memset,
3697         expand_builtin_bzero, expand_builtin_args_info,
3698         expand_builtin_frame_address): Pass in just the argument(s)
3699         needed, not the entire expression `exp'.
3700         (expand_builtin): Update all calls to these functions.
3701
3702 2003-05-03  Richard Henderson  <rth@redhat.com>
3703
3704         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
3705         <BUILT_IN_DWARF_SP_COLUMN>: New.
3706         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
3707         (BUILT_IN_DWARF_SP_COLUMN): New.
3708         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
3709         (expand_builtin_dwarf_sp_column): New.
3710         * except.h: Update to match.
3711         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
3712         (execute_cfa_program): Record location expression address
3713         before extracting length.
3714         (uw_update_context_1): Install old CFA into stack pointer column.
3715         (uw_init_context_1): Set cfa_reg to stack pointer column.
3716
3717 2003-05-03  Richard Henderson  <rth@redhat.com>
3718
3719         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
3720         return bool.
3721         (toc_relative_expr_p): Likewise.
3722         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
3723         (legitimate_constant_pool_address_p): Move from rs6000.h, change
3724         into a function, downcase all users.
3725         (legitimate_small_data_p): Likewise.
3726         (legitimate_offset_address_p): Likewise.
3727         (legitimate_indexed_address_p): Likewise.
3728         (legitimate_indirect_address_p): Likewise.
3729         (legitimate_lo_sum_address_p): Likewise.
3730         (rs6000_mode_dependent_address): Likewise.
3731         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
3732         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
3733         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
3734         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
3735         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
3736         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
3737         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
3738         * config/rs6000/rs6000-protos.h: Update.
3739
3740 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
3741
3742         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
3743         (REVERSE_CONDITION): Define.
3744
3745         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
3746         to branch_positive_comparison_operator.
3747         (ccr_bit): Check that sCOND conditions are actually a positive bit.
3748         (print_operand): Remove %D substitution.
3749         (rs6000_emit_sCOND): Generate complement operation to ensure that
3750         sCOND input is a positive bit.
3751         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
3752         same order as bCOND, and add the missing ones.  Remove the %D
3753         substitutions from the scc patterns.
3754
3755         * simplify-rtx.c (simplify_relational_operation): Add case for
3756         ! (fabs(x) < 0.0).
3757
3758 2003-05-03  Bruce Korb  <bkorb@gnu.org>
3759
3760         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
3761         in fixincl.x
3762         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
3763
3764 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
3765
3766         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
3767
3768 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
3769
3770         PR c/10604
3771         * c-common.c (warn_sign_compare): Initialize to -1.
3772         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
3773         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
3774         for C++ only.
3775         (c_common_post_options): Set warn_sign_compare from extra_warnings
3776         if it's still -1 at this point.
3777
3778         * toplev.c (maybe_warn_unused_parameter): New static variable.
3779         (set_Wextra): New static function.
3780         (W_options): Remove "extra".
3781         (decode_W_option): Call set_Wextra.
3782         (independent_decode_option): Likewise.
3783         (set_Wunused): Cooperate with set_Wextra in setting
3784         warn_unused_parameter.
3785         (rest_of_compilation): No need to check extra_warnings as
3786         well as warn_uninitialized.
3787
3788         * c-typeck.c (build_binary_op, build_conditional_expr):
3789         No need to check extra_warnings as well as warn_sign_compare.
3790         (internal_build_compound_expr): No need to check extra_warnings
3791         as well as warn_unused_value.
3792         * function.c (expand_function_end): No need to check extra_warnings
3793         as well as warn_unused_parameter.
3794         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
3795         as well as warn_unused_value.
3796
3797         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
3798
3799         * Makefile.in: Disable -Werror for gengtype-lex.o.
3800
3801 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
3802
3803         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
3804         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
3805         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
3806         * calls.c (emit_call_1): Likewise.
3807         (expand_call): For calls initializing constant memory, replace
3808         emission of standalone mem /u clobber with function usage entry.
3809         * expr.c (emit_block_move_via_libcall): Likewise.
3810         * cse.c (count_reg_usage, case EXPR_LIST): New case.
3811         * flow.c (propagate_one_insn): Pass entire operand of
3812         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
3813         * integrate.c (try_constants): For CALL_INSNs, substitute constants
3814         within the FUNCTION_USAGE also.
3815         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
3816         FUNCTION_USAGE lists.
3817         * reload1.c (replace_pseudos_in): Renamed.
3818         (reload): Use it for clobbers surviving until the end of the reload.
3819
3820 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3821
3822         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
3823         gen_lowpart on non-integer modes.
3824
3825         * stor-layout.c (place_field): When adjusting offset_align, use
3826         desired_align, not DECL_ALIGN.
3827
3828 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3829
3830         * c-decl.c (pending_invalid_xref_file): Remove.
3831         (pending_invalid_xref_line): Remove.
3832         (pending_invalid_xref_location): New.
3833         (lookup_label): Use location_t and input_location directly.
3834         (lookup_tag): Likewise.
3835         (pending_xref_error): Likewise.
3836         (c_expand_body_1): Likewise.
3837         * c-common.c (x_expand_start_cond): Likewise.
3838         * c-semantics.c (genrtl_for_stmt): Likewise.
3839         (find_reachable_label): Likewise.
3840         * expr.c (expand_expr): Likewise.
3841         * integrate.c (output_inline_function): Likewise.
3842         * tree-inline.c (find_alloca_call): Likewise.
3843         (find_builtin_longjmp_call): Likewise.
3844         * gcc.c (input_filename): Make static.
3845
3846 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
3847
3848         * config/mips/mips.md: Fix comment typo.
3849
3850         * config/mips/mips.c (mips_integer_op): New structure.
3851         (MIPS_MAX_INTEGER_OPS): Define.
3852         (mips_const_insns): Use mips_build_integer to determine the number
3853         of instructions needed to load a CONST_INT.
3854         (move_operand): Reject compound CONST_INTs.
3855         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
3856         (mips_move_integer): New fn.
3857         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
3858         (mips_legitimize_move): Only legitimize constants when moving
3859         word or subword values.
3860
3861 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
3862
3863         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
3864
3865 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3866
3867         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
3868         modifying it.
3869
3870 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
3871             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3872
3873         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
3874         Hernandez, and Kazu Hirata.  Update Richard Henderson.
3875
3876 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
3877
3878         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
3879         to tentative declaration.
3880
3881         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
3882         (SYMBOL_FLAG_SMALL_V4): Delete.
3883         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
3884         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
3885         (rs6000_elf_in_small_data_p): Add extra section names.  Add
3886         comment about TREE_PUBLIC test.
3887
3888         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
3889         expand_stmt on result of expand_unreachable_stmt.
3890
3891 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3892
3893         * doc/contrib.texi (Contributors): Add Daniel Berlin.
3894
3895 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
3896
3897         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
3898         number of automata.
3899
3900         * config/rs6000/rs6000.c (symbol_ref_operand): Check
3901         SYMBOL_REF_FUNCTION_P on AIX.
3902         (current_file_function_operand): Same.
3903         * config/rs6000/rs6000.md (call,call_value): Force non-function
3904         symbol_ref into register on AIX.
3905
3906 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
3907
3908         * calls.c (struct arg_data): Move offset, slot_offset, size and
3909         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
3910         (initialize_argument_information): Adjust call to locate_and_pad_parm.
3911         Delete alignment_pad var.  Don't calculate slot_offset here.
3912         (emit_library_call_value_1): Delete alignment_pad, offset and size
3913         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
3914         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
3915         partial in-regs here.  Formatting fixes.
3916         * expr.h (struct locate_and_pad_arg_data): New struct.
3917         (locate_and_pad_parm): Adjust declaration.
3918         * function.c (assign_parms): Localize vars.  Use "locate" instead of
3919         other arg location vars.  Don't invoke FUNCTION_ARG or
3920         FUNCTION_INCOMING_ARG unless pretend_named is different from
3921         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
3922         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
3923         Use slot_offset for stack home of reg parms.  Correct test for
3924         parm passed in memory.  Formatting fixes.
3925         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
3926         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
3927         Correct initial_offset_ptr handling.  Localize vars.  Always pad
3928         locate->offset even when in_regs.
3929
3930 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3931
3932         * Makefile.in (TREE_H): Replace location.h with input.h.
3933         (GTFILES) Remove location.h
3934         (gt-lists.h): Replace gt-location.h with gt-input.h
3935         * input.h (input_filename, input_line): Remove variables.
3936         (location_s, location_t): Move from location.h.
3937         (input_location): New.
3938         (input_filename, input_line): New #defines.
3939         * location.h: Remove.
3940         * tree.h: Replace location.h with input.h.
3941         (input_filename, input_line): Remove.
3942         * diagnostic.h: Replace location.h with input.h.
3943         * gcc.h (input_filename, input_filename_length): Remove declarations.
3944         * toplev.c (input_filename, input_line): Remove.
3945         (input_location): Define.
3946         (push_srcloc, pop_srcloc): Adjust.
3947         * diagnostic.c (diagnostic_report_current_module): Adjust.
3948
3949 2003-05-02  Nick Clifton  <nickc@redhat.com>
3950
3951         * configure.in: Add xstormy16 to list of targets that has a nop
3952         instruction and hence which can be tested to see if the
3953         assembler supports the --gdwarf2 switch.
3954         * configure: Regenerate.
3955
3956 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
3957
3958         PR target/8257
3959         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3960         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
3961         Avoid undefined shifts by making the shift operand unsigned.
3962
3963 2003-05-01  DJ Delorie  <dj@redhat.com>
3964
3965         * reload.c (find_reloads): Also check that all of a multi-reg
3966         value is in the class.
3967
3968 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3969
3970         * scan.h (lineno): Revert the rename here.
3971
3972 2003-05-01  Stan Shebs  <shebs@apple.com>
3973
3974         * config/darwin.c (darwin_encode_section_info): Call
3975         default_encode_section_info.
3976
3977 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
3978
3979         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
3980         (movsi_internal1): Use new mfjmpr attribute.
3981         (movhi_internal): Same.
3982         (movqi_internal): Same.
3983         (movcc_internal1): Same.
3984         (movdi_internal64): Same.
3985         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
3986         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
3987         * config/rs6000/40x.md: Add fpu_405.
3988         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
3989         into power4misc automata.  Remove extraneous parentheses.
3990         * config/rs6000/440.md: New file.
3991         * config/rs6000/rs6000.c (processor_target_table): Add 440,
3992         440fp.  Rename 405f to 405fp.
3993         (function_arg_padding): Correct formatting.
3994         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
3995
3996 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3997
3998         * input.h (lineno): Rename to ...
3999         (input_line): ... here.
4000         * tree.h (lineno): Rename to ...
4001         (input_line): ... here.
4002         * scan.h (lineno): Rename to ...
4003         (input_line): ... here.
4004         * toplev.c (lineno): Rename to ...
4005         (input_line): ... here.
4006         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
4007         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
4008         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
4009         store_parm_decls, c_expand_body_1): Likewise.
4010         * c-errors.c (pedwarn_c99): Likewise.
4011         * c-format.c (status_warning): Likewise.
4012         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
4013         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
4014         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
4015         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
4016         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
4017         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
4018         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
4019         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
4020         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
4021         * coverage.c (create_coverage): Likewise.
4022         * diagnostic.c (pedwarn, sorry, error, fatal_error,
4023         internal_error, warning, diagnostic_report_current_module,
4024         inform): Likewise.
4025         * expr.c (expand_expr): Likewise.
4026         * integrate.c (expand_inline_function,
4027         output_inline_function): Likewise.
4028         * rtl-error.c (file_and_line_for_asm): Likewise.
4029         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
4030         walk_tree): Likewise.
4031         * tree.c (make_node): Likewise.
4032         * ada, cp, f, java, objc, treelang: Likewise.
4033         * objc/objc-act.c (objc_init): Rename lineno to input_line.
4034         (build_module_descriptor, build_selector_translation_table,
4035         build_protocol_template, build_method_prototype_list_template,
4036         build_category_template, build_selector_table,
4037         build_class_template, build_super_template, build_ivar_template,
4038         build_ivar_list_template, build_method_list_template,
4039         build_method_template, add_instance_variable): Likewise.
4040
4041         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
4042         name from input_filename.
4043
4044 2003-04-30  Eric Christopher  <echristo@redhat.com>
4045             Richard Sandiford <rsandifo@redhat.com>
4046
4047         * configure: Regenerate from patches below.
4048         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
4049         for all symbolic operands.
4050         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
4051         to function.
4052         * config/mips/linux.h: Fix typo.
4053         * Merge from mips-3_4-rewrite branch:
4054
4055         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
4056
4057                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
4058                 handling local labels when TARGET_ABICALLS.
4059
4060         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
4061
4062                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
4063                 integer argument.
4064                 (mips_expand_call): Likewise.
4065                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
4066                 (FIXED_REGISTERS): Clear $31 entry.
4067                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
4068                 (EPILOGUE_USES): Define.
4069                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
4070                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
4071                 (override_options): Add a 'j' register class.
4072                 (mips_expand_call): Handle sibcalls
4073                 (mips_expand_epilogue): Handle epilogues for sibcalls.
4074                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
4075                 (sibcall_epilogue): New pattern.
4076                 (call, call_value): Adjust calls to mips_expand_call.
4077                 (sibcall, sibcall_value): New expanders.
4078                 (sibcall_internal, sibcall_value_internal): New patterns.
4079                 (sibcall_value_multiple_internal): New pattern.
4080
4081         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
4082
4083                 * config/mips/mips.md (extended_mips16): New attribute.
4084                 (define_attr length): Default to 8 if extended_mips16 == yes.
4085                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
4086                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
4087                 (call_internal): Set extended_mips16 to yes for direct jumps.
4088                 Remove redundant mode attribute.
4089                 (call_value_internal, call_value_multiple_internal): Likewise.
4090                 (call_split): Remove redundant mode attribute.
4091                 (call_value_split, call_value_multiple_split): Likewise.
4092
4093                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
4094                 of unaligned offsets.
4095
4096                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
4097                 of SYMBOL_GENERAL.
4098
4099         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
4100
4101                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
4102                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
4103                 for mips16 code.
4104
4105         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
4106
4107                 * config/mips/mips.h (ADDRESS_COST): Define.
4108
4109         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
4110
4111                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
4112                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
4113                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
4114
4115         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
4116
4117                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
4118                 of a two-instruction sequence.  Add register->memory alternative.
4119                 (truncdihi2, truncdiqi2): Likewise.
4120                 Rework shift/truncate instructions so that they only handle right
4121                 shifts of 32 (or more, in the case of arithmetic shifts).
4122                 Add patterns for truncate/sign-extend.
4123
4124         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4125
4126                 * configure.in (mips*-*-*): Check for explicit relocation support.
4127                 * configure: Regenerate.
4128
4129         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4130
4131                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
4132                 and -mno-explicit-relocs.
4133                 (MASK_EXPLICIT_RELOCS): Define.
4134                 (TARGET_EXPLICIT_RELOCS): Use it.
4135                 (mips_split_addresses): Remove declaration.
4136                 * config/mips/mips.c (override_options): Update comment for
4137                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
4138
4139         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4140
4141                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
4142                 a CONST as identity.  Check the return value of gen_lowpart_common.
4143
4144         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4145
4146                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
4147                 references for TARGET_EXPLICIT_RELOCS.
4148                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
4149                 !TARGET_MIPS16.
4150
4151         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4152
4153                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
4154                 (addsi3): Remove redundant constraints.
4155                 (addsi3_internal): Use separate register & constant alternatives.
4156                 Use a 'Q' constraint and "addiu" insn for the latter.
4157                 (adddi3_internal_3, addsi3_internal_2): Likewise.
4158
4159         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4160
4161                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
4162                 (mips_expand_unaligned_store): Declare.
4163                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
4164                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
4165                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
4166                 (UNSPEC_ULD, UNSPEC_USD): Remove.
4167                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
4168                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
4169                 (extv, extzv): Use mips_expand_unaligned_load.
4170                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
4171                 predicate for operand 3.
4172                 (movsi_ulw, movsi_usw): Replace with...
4173                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
4174                 (movdi_uld, movdi_usd): Likewise replace with...
4175                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
4176
4177         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
4178
4179                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
4180                 * config/mips/mips.h (LEA_REGS): New register class.
4181                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
4182                 (GR_REG_CLASS_P): Include LEA_REGS.
4183                 (DANGEROUS_FOR_LA25_P): New macro.
4184                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
4185                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
4186                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
4187                 entries to LEA_REGS.
4188                 (mips_global_pic_constant_p): New function.
4189                 (override_options): Add 'e' register constraint.
4190                 (mips_secondary_reload_class): Return LEA_REGS when reloading
4191                 a dangerous constant into a class containing $25.
4192                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
4193                 (movsi_internal): Likewise.
4194
4195         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
4196
4197                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
4198                 * config/mips/mips.md (call_split): New insn.
4199                 (call_value_split, call_value_multiple_split): New insns.
4200                 (call_internal): Turn into a define_insn_and_split.  Split the
4201                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
4202                 (call_value_internal, call_value_multiple_internal): Likewise.
4203
4204         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
4205
4206                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
4207                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
4208                 (mips_encode_section_info): Don't take symbol visibility into
4209                 account if TARGET_ABICALLS.  Add more commentary.
4210                 * config/mips/mips.md: Add commentary above reloc constants.
4211
4212         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
4213
4214                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
4215                 from mips_legitimize_move.  Legitimize constant pool references.
4216                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
4217                 a REG_EQUAL note to the last instruction.
4218
4219         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
4220
4221                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
4222                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
4223                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
4224                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
4225                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
4226                 (UNSPEC_RELOC_GPREL16): Rename to...
4227                 (RELOC_GPREL16): ...this.
4228                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
4229                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
4230                 (macro_calls): New attribute.
4231                 (length): Use it to set the default length of calls.  Don't allow
4232                 calls to have delay slots if macro_calls is "yes".
4233                 (luisi, luidi): New patterns.
4234                 (lowsi, lowdi): Use '%R' to print the relocation.
4235                 (lowdi_extend): Remove.
4236                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
4237                 (call_internal): Merge alternatives.  Always use "jal".
4238                 (call_value_internal, call_value_multiple_internal): Likewise.
4239                 (reloc_gprel16): Remove.
4240                 * config/mips/mips.c (mips_got_alias_set): New variable.
4241                 (mips_classify_constant): Handle the new relocation constants.
4242                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
4243                 (mips_symbolic_address_p): Return false if generating explicit relocs.
4244                 Otherwise allow local PIC symbols to have an offset.
4245                 (mips_splittable_symbol_p): New function.
4246                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
4247                 (mips_const_insns): Always accept HIGH.
4248                 (call_insn_operand): Don't accept global symbols if using explicit
4249                 relocs.
4250                 (move_operand): Don't accept HIGH when generating PIC.
4251                 (mips_reloc, mips_lui_reloc): New functions.
4252                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
4253                 be a valid right-hand-side for a SET pattern.
4254                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
4255                 (mips_emit_high): New function.
4256                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
4257                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
4258                 address should be used.  Use mips_emit_high to generate the
4259                 high part of such an address.  Adjust the global symbol + offset
4260                 case to match the change to mips_force_temprorary.
4261                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
4262                 If generating explicit-reloc PIC, load the address of global
4263                 symbols from the GOT.  Use mips_emit_high to emit the high part
4264                 of an address.
4265                 (mips_simplify_dwarf_addr): New function.
4266                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
4267                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
4268                 (mips_expand_call): Load the addresses of global functions using
4269                 %call* relocs if generating explicit-reloc PIC.  Don't generate
4270                 an exception_receiver pattern.
4271                 (override_options): Initialize mips_got_alias_set.
4272                 (print_relocation): Remove in favour of...
4273                 (mips_reloc_string): ...this new function.
4274                 (print_operand): Handle '%R'.  Use mips_reloc_string.
4275                 (print_operand_address): Use print_operand to print the symbolic
4276                 part of a LO_SUM address.
4277                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
4278                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
4279                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
4280                 for local symbols.
4281
4282         2003-02-02  Eric Christopher  <echristo@redhat.com>
4283
4284                 * config/mips/mips.c (mips_sign_extend): Remove.
4285                 * config/mips/mips-protos.h: Ditto.
4286                 * config/mips/mips.md (movdi_internal2_extend): Remove.
4287                 (extendsidi2): Fix mode of convert_memory_address.
4288
4289         2003-01-24  Eric Christopher  <echristo@redhat.com>
4290
4291                 * config/mips/mips.md: Rewrite zero_extend* and extend*
4292                 patterns. Use explicit instructions and split after reload
4293                 for register extensions.
4294                 (ashlsi3_internal1_extend): New combiner pattern for
4295                 shift and extend combinations.
4296                 * config/mips/mips.h: Change Pmode back to ptr_mode
4297                 for performance enhancement.
4298                 * combine.c (expand_compound_operation): Make sure
4299                 that zero_extend operation is profitable.
4300
4301         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
4302
4303                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
4304                 addresses depend on ptr_mode rather than Pmode.
4305                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
4306                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
4307                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
4308                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
4309                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
4310                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
4311                 (tablejump_internal1): Remove condition.
4312                 (tablejump_internal2): Change condition to TARGET_64BIT.
4313                 (cpaddsi): Rename to...
4314                 (cpadd): ...this.
4315                 (cpadddi): Remove.
4316
4317         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
4318
4319                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
4320                 mips_address_cost, mips_check_split, double_memory_operand,
4321                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
4322                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
4323                 (mips_legitimate_address_p): Return bool.
4324                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
4325                 mips_legitimize_address, mips_legitimize_move,
4326                 mips_expand_call): Declare.
4327                 (mips_return_addr): Move outside #ifdef RTX_CODE.
4328
4329                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
4330                 (PIC_FN_ADDR_REG): New reg_class.
4331                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
4332                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
4333                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
4334                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
4335                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
4336                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
4337                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
4338                 (LEGITIMATE_PIC_OPERAND): Undefine.
4339                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
4340                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
4341                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
4342                 (FUNCTION_MODE): Change to SImode.
4343                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
4344                 most constants.  Treat const_artih_operands specially if they
4345                 occur in a PLUS or MINUS.
4346                 (CONSTANT_POOL_COST): New macro.
4347                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
4348                 Add LO_SUM handling.
4349                 (ADDRESS_COST): Undefine.
4350                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
4351                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
4352                 to call_insn_operand and remove CONST_INT.
4353
4354                 * config/mips/mips.c: Include integrate.h.
4355                 (SINGLE_WORD_MODE_P): New macro.
4356                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
4357                 (mips_constant_info, mips_address_info): New structs.
4358                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
4359                 (mips_classify_constant, mips_classify_symbol,
4360                 mips_valid_base_register_p, mips_symbolic_address_p,
4361                 mips_classify_address, mips_symbol_insns,
4362                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
4363                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
4364                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
4365                 mips_print_relocation): New functions.
4366                 (const_arith_operand): New operand predicate.
4367                 (arith_operand): Use it.
4368                 (mips_const_double_ok, mips16_simple_memory_operand,
4369                 simple_memory_operand, double_memory_operand, mips_check_split,
4370                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
4371                 mips16_gp_offset_p, mips16_output_gp_offset,
4372                 mips16_constant_after_function_p, mips16_constant): Remove.
4373                 (call_insn_operand): Be more fussy about symbolic constants.
4374                 Use register_operand.
4375                 (move_operand): Use mips_symbolic_address_p to check symbolic
4376                 operands and general_operand to check the rest.
4377                 (symbolic_operand): Use mips_classify_constant.
4378                 (mips_legitimate_address_p): Use mips_classify_address.
4379                 (mips_move_1word): Combine handling of symbolic addresses.
4380                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
4381                 (move_move_2words): Likewise.  Assume addresses are offsettable
4382                 if they need to refer to more than one word.  Add HIGH handling.
4383                 (mips_restore_gp): Use ptr_mode for the GP save slot.
4384                 (mips_expand_call): New function, combining the old mips.md
4385                 call and call_internal define_expands.  If the address isn't
4386                 a call_insn_operand, force it into a register.  For SVR4 PIC,
4387                 emit an exception_receiver instruction after the call.
4388                 (override_options): Only override flag_pic for TARGET_ABICALLS
4389                 if it is currently zero.  Allow mips_split_addresses when
4390                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
4391                 Add new register class letter, 'c'.
4392                 (print_operand): Use mips_classify_constant for constant operands.
4393                 (print_operand_address): Use mips_classify_address.
4394                 (mips_output_function_prologue): Don't use .cprestore.
4395                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
4396                 via the frame pointer if current_function_calls_eh_return.
4397                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
4398                 to mark whether a symbol is local or global.
4399                 (build_mips16_call_stub): Expect the address of the function rather
4400                 than a MEM reference to it.  Update call generation sequences.
4401                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
4402                 small-data adjustments.
4403
4404                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
4405                 length for loads and stores.
4406                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
4407                 (define_attr type): Add const and prefetch.
4408                 (define_attr length): Use mips_const_insns for const instructions.
4409                 Use mips_fetch_insns for load and store instructions.
4410                 (define_attr single_insn): New.
4411                 (define_attr can_delay): Use it.
4412                 (define_attr abicalls): Remove.
4413                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
4414                 (addsi3_internal_2): Add 'Q' constraint.
4415                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
4416                 (high): Remove.
4417                 (lowsi): Renamed from low.
4418                 (lowdi): New pattern.
4419                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
4420                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
4421                 (loadgp): Change operand 0 to an immediate_operand.
4422                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
4423                 beforehand.
4424                 (cpaddsi, cpadddi): New patterns.
4425                 (tablejump_internal3, tablejump_internal4): Remove define_expands
4426                 and associated define_splits.
4427                 (call, call_value): Use mips_expand_call.
4428                 (call_internal): New, replacing all existing call_internal* insns.
4429                 (call_value_internal): Likewise call_value_internal*.
4430                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
4431                 (untyped_call): Remove if (operands[0]) magic.
4432                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
4433                 (prefetch_di_address, prefetch_di): Likewise.
4434                 (leasi, leadi): Remove.
4435                 (reloc_gprel16): New.
4436
4437                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
4438                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
4439                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
4440
4441         2003-01-08  Eric Christopher  <echristo@redhat.com>
4442
4443                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
4444                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
4445                 configure check for libgloss.
4446                 * config/mips/elf64.h: Ditto.
4447                 * config/mips/mips.c: Remove ABI_MEABI.
4448                 * config/mips/mips.h: Ditto.
4449
4450         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
4451
4452                 Fix merge fallout.
4453                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
4454                 (muldi3_internal): Remove outdated comment.
4455                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
4456                 (*smsac_di, *umsac_di): Likewise.  Reformat.
4457                 (umulsi3_highpart): Minor formatting tweaks.
4458                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
4459                 redundant scratch operand.  Minor formatting tweak.
4460                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
4461                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
4462                 (smulsi3_highpart): As for the unsigned version.
4463                 (smulsi3_highpart_internal): Likewise.
4464                 (smulsi3_highpart_mulhi_internal): Likewise.
4465                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
4466                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
4467                 (*smul_acc_di): Remove duplicated pattern.
4468                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
4469                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
4470                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
4471
4472         2002-10-22  Eric Christopher  <echristo@redhat.com>
4473
4474                 * config/mips/mips-protos.h (mips_return_addr): New.
4475                 * config/mips/mips.c (mips_return_addr): New.
4476                 (movdi_operand): Remove.
4477                 (se_register_operand): Ditto.
4478                 (se_reg_or_0_operand): Ditto.
4479                 (se_uns_arith_operand): Ditto.
4480                 (se_arith_operand): Ditto.
4481                 (se_nonmemory_operand): Ditto.
4482                 (extend_operator): Ditto.
4483                 (highpart_shift_operator): Ditto.
4484                 (mips_initial_elimination_offset): Remove return address pointer
4485                 elimination.
4486                 (mips_reg_names): Remove $ra.
4487                 (mips_regno_to_class): Ditto.
4488                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
4489                 and TARGET_64BIT.
4490                 (POINTER_BOUNDARY): Remove.
4491                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
4492                 (PROMOTE_MODE): Promote to Pmode.
4493                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
4494                 (Pmode): Define to TARGET_64BIT.
4495                 (FUNCTION_MODE): Define as Pmode.
4496                 (mips_args): Remove deleted functions.
4497                 (SIZE_TYPE): Depend on POINTER_SIZE.
4498                 (PTRDIFF_TYPE): Ditto.
4499                 (FIXED_REGISTERS): Fix extra registers.
4500                 (CALL_USED_REGISTERS): Ditto.
4501                 (CALL_REALLY_USED_REGISTERS): Ditto.
4502                 (RAP_REG_NUM): Remove.
4503                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
4504                 (RETURN_ADDR_RTX): Define to mips_return_addr.
4505                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
4506                 (CAN_ELIMINATE): Ditto.
4507                 * config/mips/mips.md: For DImode patterns, take into account
4508                 deletions above. Split mulsidi patterns into sign_extend and
4509                 zero_extend.
4510
4511         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
4512                     Michael Meissner  <meissner@redhat.com>
4513
4514                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
4515                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
4516                 mop up unnecessarly moves through LO.
4517                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
4518                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
4519                 change mtlo/macc sequences into mul/add sequences when a three-
4520                 address mul is available.
4521                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
4522                 (*mul_sub_si): Fix contraint for operand 5.
4523                 (*muls): Use in 32-bit code as well.
4524                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
4525                 if the destination is LO.  Remove duplicate define_split.
4526                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
4527                 (*msac_di): Likewise.  Fix formatting.
4528                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
4529                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
4530                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
4531                 (*xmulsi3_neg_highpart_mulhi): Likewise.
4532                 (*mul_acc_64bit_di): Remove.
4533                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
4534
4535         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
4536
4537                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
4538                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
4539                 (MULTILIB_DIRNAMES): Remove long32.
4540                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
4541                 (MULTILIB_REDUNDANT_DIRS): Remove.
4542
4543         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
4544
4545                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
4546                 * gcc.c (driver_self_specs): New variable.
4547                 (do_self_spec): New function.
4548                 (main): Use it to process driver_self_specs.
4549
4550         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
4551
4552                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
4553                 Remove DImode define_split for !TARGET_64BIT.
4554                 (anddi3): Remove !TARGET_64BIT support from here as well.
4555                 Change operand 2's predicate to se_uns_arith_operand.
4556                 Add constant alternatives to define_insn.
4557                 (iordi3, xordi3, *nordi3): Likewise.
4558                 (anddi3_internal1, xordi3_immed): Remove.
4559
4560         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4561
4562                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
4563                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
4564                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
4565                 * config/mips/mips.md: Apply same renaming here.
4566
4567         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4568
4569                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
4570                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
4571                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
4572                 * config/mips/mips.md (define_attr cpu): Remove r4320.
4573                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
4574
4575         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4576
4577                 * config/mips/mips.c (mips16_strings): New variable.
4578                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
4579                 symbol in mips16_strings.  Free the list.
4580                 (mips_encode_section_info): Keep track of local strings.
4581
4582         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4583
4584                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
4585                 (sordered_df, sordered_sf): Remove.
4586                 * config/mips/mips.c (get_float_compare_codes): New fn.
4587                 (gen_int_relational, gen_conditional_move): Use it.
4588
4589         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4590
4591                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
4592                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
4593                 * config/mips/mips.c (fcc_register_operand): New function.
4594                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
4595                 (override_options): Allow TFmode values in float registers
4596                 if ISA_HAS_8CC.
4597                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
4598                 to fcc_register_operand.  Remove misleading source constraint.
4599                 Use mips_emit_fcc_reload.
4600                 (reload_outcc): Duplicate reload_incc.
4601
4602
4603 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
4604
4605         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
4606
4607 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
4608
4609         * tree-inline.c (inlinable_function_p): Back out last change, it's
4610         unnecessary.
4611
4612 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4613
4614         * ggc-page.c (TREE_EXP_SIZE): Define.
4615         (extra_order_size_table): New entry for expr trees with
4616         two operands.
4617
4618 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4619
4620         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
4621         (c_expand_start_cond): Adjust.
4622         (c_expand_end_cond): Don't use warning_with_file_and_file.
4623         (shadow_warning): Likewise.
4624
4625 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
4626
4627         * tree.h (DECL_POINTER_DEPTH): Remove.
4628         (struct tree_decl): Remove pointer_depth.
4629
4630 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
4631
4632         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
4633         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
4634         (rs6000_xcoff_encode_section_info): Remove.
4635         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
4636         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
4637         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
4638         Use SYMBOL_REF_FLAGS.
4639         (rs6000_elf_encode_section_info): Call default_encode_section_info for
4640         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
4641         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
4642         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
4643         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
4644         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
4645
4646 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4647
4648         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
4649
4650 2003-04-30  Andreas Schwab  <schwab@suse.de>
4651
4652         * doc/extend.texi (Other Builtins): Enclose multiple word data
4653         type in braces for @deftypefn.
4654
4655 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4656
4657         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
4658
4659         * doc/install.texi (--enable-threads): Document "gnat" option.
4660
4661 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4662
4663         * diagnostic.h (output_formatted_scalar): Tweak.
4664         * diagnostic.c (output_long_decimal): Likewise.
4665         (output_unsigned_decimal): Likewise.
4666         (output_long_unsigned_decimal): Likewise.
4667         (output_octal): Likewise.
4668         (output_long_octal): Likewise.
4669         (output_hexadecimal): Likewise.
4670         (output_long_hexadecimal): Likewise.
4671         (output_pointer): New function.
4672         (output_format): Use it.  Recognize "%p" format specifier.
4673
4674 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4675
4676         * function.c (purge_addressof_1): Postpone insn in fewer cases.
4677
4678 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
4679
4680         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
4681         call abort() after running out of stack space.
4682
4683         * c-typeck.c (function_types_compatible_p): Ignore incompatible
4684         'volatile' qualifiers on a function's return type in GNU mode.
4685
4686 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
4687
4688         * expr.c (emit_group_load): Dump parallels of simd types to
4689         memory.
4690
4691 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4692
4693         * genautomata.c (add_vect): Check undefined value for range type
4694         too.
4695
4696 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
4697
4698         * configure.in:  More general test for cmp --ignore-initial.
4699         * configure:  Regenerate.
4700
4701 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4702
4703         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
4704         (layout_decl, place_field): Likewise.
4705         Also make minor type and whitespace changes.
4706
4707         * tree.c (save_expr): Don't fold a COMPONENT_REF.
4708
4709 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
4710
4711         * calls.c (expand_call): When modes of target and valreg match, force
4712         sibcall failure when target is a MEM.
4713
4714 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
4715
4716         * tree-inline.c (inlinable_function_p): Don't support inlining
4717         functions using varargs.
4718
4719         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
4720
4721         * dwarf2out.c (output_call_frame_info): No need to output EH
4722         unwind information if all_throwers_are_sibcalls.
4723
4724         * c-semantics.c (expand_unreachable_stmt): Return a tree.
4725         (expand_stmt): Update for change to expand_unreachable_stmt.
4726         (expand_unreachable_if_stmt): Likewise.
4727
4728         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
4729
4730 2003-04-29  Jason Merrill  <jason@redhat.com>
4731
4732         PR middle-end/10336
4733         * jump.c (never_reached_warning): Really stop looking if we reach
4734         the beginning of the function.
4735
4736 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
4737
4738         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
4739         Remove redundant macros.
4740         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
4741         (LOCAL_LABEL_PREFIX): Define unconditionally.
4742         (NO_DOT_IN_LABEL): Clarify comment.
4743         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
4744         definition to "long int".
4745
4746 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
4747
4748         bootstrap/10452
4749         * gengtype-yacc.y: Improve portability.
4750
4751 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
4752
4753         * config.gcc: Install obsolete target list for GCC 3.3.
4754         * doc/install.texi: Mention in specific-target instructions
4755         that certain configurations are deprecated.
4756
4757 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
4758
4759         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
4760
4761 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4762
4763         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
4764         * gcc.c (display_help): Likewise.
4765         * toplev.c (f_options): Likewise.
4766         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
4767         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
4768         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
4769         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
4770         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
4771
4772 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
4773
4774         * varasm.c (default_assemble_visibility): Use assemble_name.
4775
4776 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
4777
4778         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
4779         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
4780         (SIZE_TYPE): New macro.
4781         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
4782         (SET_ASM_OP): New macro.
4783         (HANDLE_SYSV_PRAGMA): New macro.
4784         (ASM_WEAKEN_LABEL): New macro.
4785
4786 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
4787
4788         PR c++/10180
4789         * tree-inline.c (expand_call_inline): Call push_srcloc when
4790         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
4791
4792 2003-04-28  Mike Stump  <mrs@apple.com>
4793
4794         * gdbinit.in: Update to reflect new identifier structure.
4795
4796 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
4797
4798         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
4799         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
4800         struct tree_complex, struct tree_vector): Remove RTL field.
4801         (CONSTRUCTOR_ELTS): Use elt 0.
4802         * tree.def (CONSTRUCTOR): Delete first of its two operands.
4803         * varasm.c (output_constant_def): Remove early exit if
4804         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
4805         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
4806         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
4807         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
4808
4809 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
4810
4811         * c-decl.c (finish_decl): When prototype with asmspec is found
4812         for built-in, adjust built_in_decls as well as expr.c decls.
4813         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
4814         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
4815         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
4816
4817 2003-04-28  Richard Henderson  <rth@redhat.com>
4818
4819         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
4820         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
4821         integral constant mult operand.
4822         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
4823         (const_smulsi3_highpart_v8plus): Likewise.
4824         (const_smulsi3_highpart): Likewise.
4825         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
4826         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
4827         (const_umulsi3_highpart_v8plus): Likewise.
4828         (const_umulsi3_highpart): Likewise.
4829
4830 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
4831
4832         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
4833         Define as 1.
4834
4835 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
4836
4837         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
4838
4839 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
4840
4841         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
4842         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
4843         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
4844         functions.
4845         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
4846
4847 2003-04-28  Nick Clifton  <nickc@redhat.com>
4848
4849         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
4850
4851 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
4852
4853         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
4854         output_constant_def, use its result instead of TREE_CST_RTL (exp).
4855         Can assume it has the form (mem (symbol_ref ".LCxxx")).
4856         (expand_expr <COMPONENT_REF>): Can always just extract the
4857         relevant field of a CONSTRUCTOR.
4858         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
4859         ARRAY_RANGE_REF>): Make control flow explicit.
4860         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
4861         an INTEGER_CST.
4862
4863 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
4864
4865         * reload1.c (reg_set_luid): Fix a comment typo.
4866
4867 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
4868
4869         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
4870         struct deferred_string, const_str_htab): Kill.
4871         (n_deferred_strings): New static variable.
4872         (build_constant_desc): Set SYMBOL_REF_DECL of the new
4873         symbol_ref to point to the constant.
4874         (output_constant_def): When a deferred string is forced out,
4875         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
4876         (mark_constant): Likewise.
4877         (maybe_output_constant_def_contents): When deferring a string
4878         constant, just set STRING_POOL_ADDRESS_P and increment
4879         n_deferred_strings.
4880         (mark_constant_pool): Check n_deferred_strings, not the size
4881         of const_str_htab.
4882         (init_varasm_once): No need to create const_str_htab.
4883
4884         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
4885         SYMBOL_REF_DECL points to a constant.
4886
4887 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
4888
4889         * varasm.c (output_constant_def): Split out two new static
4890         functions, build_constant_desc and maybe_output_constant_def_contents.
4891         Restructure for comprehensibility.  Don't call
4892         output_addressed_constants.  Treat defstr being non-NULL for
4893         STRING_POOL_ADDRESS_P constants as an invariant.
4894         (struct deferred_string): Remove labelno field.
4895         (output_constant_def_contents): Kill labelno argument. Call
4896         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
4897         asm_out.internal_label.
4898         (mark_constant): Update call to output_constant_def_contents.
4899         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
4900         constants as an invariant.
4901
4902 2003-04-26  Richard Henderson  <rth@redhat.com>
4903
4904         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
4905         (ix86_expand_call, ix86_rtx_consts): Likewise.
4906
4907 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4908
4909         * doc/md.texi (cmpstr): Document additional restrictions.
4910
4911 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
4912
4913         * flags.h (time_report): Remove.
4914         * timevar.c (timevar_enable): New.
4915         (TIMEVAR_ENABLE): Remove, use timevar_enable.
4916         (timevar_init): Rename from init_timevar.
4917         * timevar.h (timevar_init): Rename from init_timevar.
4918         * toplev.c (time_report): Make static.
4919         (do_compile): Conditionally call init_timevar first.
4920         (preprocess_options): Move some code to do_compile.
4921
4922 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
4923
4924         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
4925
4926 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
4927
4928         * _cpp_lex_direct: Remove pointless code.
4929
4930 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
4931
4932         * doc/extend.texi (Function Attributes): Document "near" and "far"
4933         for 68HC11 and 68HC12.
4934
4935 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4936
4937         * expr.c (store_field): When making temporary for store, don't
4938         make it TYPE_QUAL_CONST.
4939
4940 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
4941
4942         * toplev.c (read_integral_parameter):  Use "argument" in error
4943         message to distinguish it from actual invalid options.
4944
4945 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
4946
4947         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
4948         addition of __PIC__ and __pic__ macros.
4949         * config/xtensa/xtensa.h: Clean up indentation.
4950
4951 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
4952
4953         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
4954         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
4955         (SUBTARGET_CPP_SPEC): Define.
4956         (LIB_SPEC): Delete.
4957         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
4958         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
4959         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
4960         Define.
4961         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4962         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
4963
4964 2003-04-25  H.J. Lu <hjl@gnu.org>
4965
4966         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
4967         for return mode.
4968         (ia64_expand_builtin): Set rmode to SImode for
4969         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
4970         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
4971         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
4972         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
4973
4974 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
4975
4976         * configure.in (make_compare_target):  Test for GNU cmp and set this
4977         variable appropriately.
4978         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
4979         compare4-lean): Rename actual targets to slowcompare*.  New compare*
4980         targets depend on names based on make_compare_target.
4981         * configure:  Regenerated.
4982
4983 2003-04-25  Richard Henderson  <rth@redhat.com>
4984
4985         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
4986         to clobber ar.pfs and ar.unat.
4987         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
4988         fix test for spilling ar.pfs to the stack.
4989
4990 2003-04-25  Richard Henderson  <rth@redhat.com>
4991
4992         PR opt/10315
4993         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
4994         checks during reload; use validize_mem instead of adjust_address.
4995
4996 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
4997
4998         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
4999         return values from recog_memoized().
5000
5001 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5002
5003         PR opt/8705
5004         * gcse.c (try_replace_reg): On a successful substitution of a constant
5005         into a single set, try to simplify the source of the set.
5006         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
5007         constant source.
5008
5009 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
5010
5011         * cpplex.c (cpp_token_len): Tighten up.
5012         (cpp_token_as_text): Need extra byte now.
5013         * cpplib.c (glue_header_name): Need extra 2 bytes.
5014         * cppmacro.c (cpp_macro_definition): Need extra byte.
5015
5016 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
5017
5018         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
5019         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
5020         where they might be not present. Use their _sp64 equivalent
5021         instead.
5022
5023 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
5024
5025         * i386.md (cvtsi2sdq): Fix typo in previous patch.
5026
5027 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
5028
5029         * configure.in: Check whether mbstowcs works.
5030         * configure, config.in: Regenerate.
5031         * intl.c: Use HAVE_WORKING_MBSTOWCS.
5032
5033 2003-04-24  H.J. Lu <hjl@gnu.org>
5034
5035         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
5036         for __sync_bool_compare_and_swap_di for int return type.
5037
5038         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
5039         Change return type to int.
5040         (__sync_bool_compare_and_swap): Likewise.
5041
5042 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
5043
5044         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
5045         looking for fallthru edge.
5046
5047         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
5048         Fix.
5049         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
5050         athlon-fvector): New.
5051         (athlon_*): Revisit to match new optimization guide.
5052         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
5053         * i386.md (cvt??2?? patterns): Fix modes.
5054         (fistp patterns): Set modes.
5055
5056         Accidentaly commited with my earlier reload patch:
5057         PR c/10308
5058         * reload.c (find_reloads_address_1): Reload plus at the place of
5059         index register.
5060
5061 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
5062
5063         New GCOV_TAG_FUNCTION layout
5064         * coverage.c (struct function_list): Replace name with ident.
5065         (struct counts_entry): Likewise.
5066         (fn_ident): New.
5067         (htab_counts_entry_hash, htab_counts_entry_eq,
5068         htab_counts_entry_del): Adjust.
5069         (reads_count_file, get_coverage_counts,
5070         coverage_begin_output, coverage_end_function): Adjust.
5071         (build_fn_info_type, build_fn_info_value): Likewise.
5072         * gcov-dump.c (tag_function): Adjust.
5073         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
5074         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
5075         * gcov.c (struct function_info): Add ident.
5076         (read_graph_file, read_count_file): Adjust.
5077         * libgcov.c (gcov_exit): Adjust.
5078
5079 2003-04-23  Richard Henderson  <rth@redhat.com>
5080
5081         PR opt/8300
5082         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
5083         after initialize_uninitialized_subregs; update reg info assuming
5084         new pseudos were created.
5085
5086 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
5087
5088         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
5089         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
5090         (lex_string): Take cpp_string with full spelling.
5091         (cb_ident): Update.
5092         (c_lex): Update diagnostics.
5093         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
5094         (create_literal): New.
5095         (lex_string): Unterminated literals have type CPP_OTHER.
5096         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
5097         for CPP_OTHER.
5098         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
5099         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
5100         * cpplib.c (parse_include, do_line, do_linemarker,
5101         destringize_and_run): Update for token storing full spelling.
5102         * cpplib.h: Update token spelling types.
5103         * cppmacro.c (stringify_arg, check_trad_stringification):
5104         Update for token storing full spelling.
5105
5106 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
5107
5108         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
5109
5110 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
5111
5112         * arm.h (TARGET_OPTIONS): Add value field.
5113
5114 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
5115
5116         * doc/extend.texi: Remove duplicate 2003 copyright date.
5117
5118 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
5119
5120         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
5121         (libgcov.a): Depends on LIBGCC_DEPS.
5122         * basic-block.h (profile_info): Moved here from coverage.h. Made
5123         a pointer.
5124         * coverage.c (struct function_list): Fixed array of counter types.
5125         (struct counts_entry): Keyed by counter type, contains summary.
5126         (profile_info): Moved to profile.c.
5127         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
5128         vars.
5129         (profiler_label): Remove.
5130         (ctr_labels): New.
5131         (set_purpose, label_for_tag, build_counter_section_fields,
5132         build_counter_section_value, build_counter_section_data_fields,
5133         build_counter_section_data_values, build_function_info_fields,
5134         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
5135         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
5136         build_ctr_info_value, build_gcov_info): New.
5137         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
5138         (reads_counts_file): Adjust.
5139         (get_coverage_counts): Takes counter number. Add summary
5140         parameter. Adjust.
5141         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
5142         create counter array labels.
5143         (coverage_end_function): Adjust.
5144         (create_coverage): Adjust.
5145         (find_counters_section): Remove.
5146         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
5147         (struct section_info, struct profile_info): Remove.
5148         (profile_info): Moved to basic-block.h.
5149         (coverage_counter_ref): Takes a counter number.
5150         (get_coverage_counts): Takes a counter number. Added summary
5151         parameter.
5152         (find_counters_section): Remove.
5153         * gcov-dump.c (tag_arc_counts): Rename to ...
5154         (tag_counters): ... here. Adjust.
5155         (tag_table): Move tag_counters to 3rd entry. Remove
5156         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
5157         (dump_file): Check for counter tag values here.
5158         (tag_summary): Adjust.
5159         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
5160         * gcov-io.h (GCOV_LOCKED): New.
5161         (GCOV_TAG_ARC_COUNTS): Rename to ...
5162         (GCOV_TAG_COUNTS_BASE): ... here.
5163         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
5164         Remove.
5165         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
5166         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
5167         GCOV_TAG_IS_COUNTER): New.
5168         (struct gcov_ctr_summary): New.
5169         (struct gcov_summary): Adjust.
5170         (struct gcov_counter_section): Remove.
5171         struct gcov_counter_section_data): Remove.
5172         (struct gcov_function_info): Rename to ...
5173         (struct gcov_fn_info): ... here. Adjust.
5174         (struct gcov_ctr_info): New.
5175         (struct gcov_info): Adjust.
5176         * gcov.c (read_count_file): Adjust.
5177         (output_lines): Adjust.
5178         * libgcov.c (gcov_exit): Adjust.
5179         (__gcov_flush): Adjust.
5180         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
5181         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
5182         probably_never_executed_bb_p, compute_frequency_function): Adjust
5183         profile_info use.
5184         * profile.c (struct counts_entry): Remove.
5185         (profile_info): Define here.
5186         (get_exec_counts): Adjust get_coverage_counts call.
5187         (compute_branch_probablilities): Remove find_counters_section
5188         call.
5189         (gen_edge_profiler): Adjust coverage_counter_ref call.
5190         * tracer.c (tail_duplicate): Adjust profile_info use.
5191
5192 2003-04-23  Roger Sayle  <roger@eyesopen.com>
5193
5194         PR optimization/10339
5195         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
5196         directly instead of unsafely transforming call into a memcmp.
5197         (expand_builtin_strncmp): Likewise.
5198
5199 2003-04-22  Roger Sayle  <roger@eyesopen.com>
5200
5201         * alias.c (mark_constant_function):  Check for constancy and
5202         purity even of void functions.  Update both the function decl
5203         and the cgraph RTL info with the results.
5204
5205 2003-04-22  Roger Sayle  <roger@eyesopen.com>
5206
5207         * real.c (do_add): Change to return a bool indicating that the
5208         result of the operation may be inexact due to loss of precision.
5209         (do_multiply): Likewise.
5210         (do_divide): Likewise.
5211
5212 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
5213             Loren James Rittle  <ljrittle@acm.org>
5214
5215         * dwarf2out.c (fde_table_allocated): Mark with GTY.
5216         (decl_die_table_allocated): Likewise.
5217         (abbrev_die_table_allocated): Likewise.
5218         (line_info_table_allocated): Likewise.
5219         (separate_line_info_table_allocated): Likewise.
5220         (pubname_table_allocated): Likewise.
5221         (arange_table_allocated): Likewise.
5222         (ranges_table_allocated): Likewise.
5223         (decl_die_table_in_use): Unconditionalize; mark with GTY.
5224         (abbrev_die_table_in_use): Likewise.
5225         (line_info_table_in_use): Likewise.
5226         (separate_line_info_table_in_use): Likewise.
5227         (pubname_table_in_use): Likewise.
5228         (arange_table_in_use): Likewise.
5229         (ranges_table_in_use): Likewise.
5230         (have_location_lists): Likewise.
5231         (emitcount): New GTY-marked static, moved...
5232         (maybe_emit_file): ...from here.
5233         (label_num): New GTY-marked static, moved...
5234         (gen_internal_sym): ...from here.
5235
5236 2003-04-22  Richard Henderson  <rth@redhat.com>
5237
5238         PR 8866
5239         * rtl.h (MEM_NOTRAP_P): New.
5240         (MEM_COPY_ATTRIBUTES): Copy it.
5241         * rtlanal.c (may_trap_p): Check it.
5242         * expr.c (do_tablejump): Set it.
5243         * doc/rtl.texi (Flags): Document it.
5244
5245         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
5246
5247 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
5248
5249         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
5250         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
5251
5252 2003-04-22  Vincent Celier <celier@gnat.com>
5253
5254         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
5255         --enable-threads=gnat.
5256         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
5257         * configure.in: Add gnat to the list of thread packages
5258         * configure: Rebuild.
5259         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
5260
5261 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
5262
5263         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
5264
5265 2003-04-22  Devang Patel  <dpatel@apple.com>
5266
5267         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
5268         parameter count.
5269         (_cpp_copy_replacement_text): Same.
5270
5271 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
5272
5273         * c-lex.c (c_lex): Handle CPP_OTHER differently.
5274         * cppexp.c (_cpp_parse_expr): Similarly.
5275         * cpplex.c (SPELL_CHAR): Remove.
5276         (_cpp_lex_direct): Stray chars are saved as byte strings.
5277         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
5278         handle SPELL_CHAR.
5279         (cpp_avoid_paste): Update handling of CPP_OTHER.
5280         * cpplib.h: Spell CPP_OTHER like a number.
5281         (struct cpp_token): Remove member c.
5282         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
5283
5284 2003-04-22  David Turner <novalis@gnu.org>
5285
5286         * gbl-ctors.h: Add special license exception.
5287         * libgcc2.h: Likewise.
5288         * tsystem.h: Likewise.
5289         * gcov-io.h: Likewise.
5290
5291 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
5292
5293         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
5294         macro defaulting to original BRANCH_COST heuristic.
5295         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
5296
5297         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
5298
5299 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
5300
5301         * config/rs6000/t-spe: Merge in t-fprules into file.
5302
5303         * config.gcc: Add t-spe to powerpc-eabispe.
5304
5305 2003-04-22  Kean Johnston  <jkj@sco.com>
5306
5307         * tlink.c (recompile_files): Add missing '=' to putenv calls
5308
5309 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
5310
5311         * ginclude/stddef.h: Provide C++ safe offsetof.
5312
5313 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
5314
5315         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
5316         for reg notes, if there are no substitutions, just use a SUBREG.
5317
5318 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
5319
5320         * Makefile.in (calls.o): Depend on except.h.
5321         * calls.c: Include except.h.
5322         (emit_call_1): Call note_eh_region_may_contain_throw if
5323         appropriate.
5324         * except.c (eh_region): Add may_contain_throw.
5325         (expand_eh_region_end_cleanup): Do not include handler code when
5326         it cannot be reached.
5327         (note_eh_region_may_contain_throw): New function.
5328         * except.h (note_eh_region_may_contain_throw): New function.
5329
5330 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
5331
5332         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
5333         changes.
5334
5335 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
5336
5337         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
5338         64-bit long doubles.
5339
5340 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
5341
5342         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
5343         a number of conversions required for type consistency and previously
5344         stripped off by STRIP_NOPS.
5345
5346         * calls.c (expand_call): Prevent sibcall optimization for calls to
5347         nested subprograms.
5348
5349         * expmed.c (extract_bit_field): Reverse operands of && condition to
5350         prevent a potential division by zero in the previously first branch.
5351         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
5352
5353 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
5354
5355         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
5356         (subrange_type_die): Likewise.
5357         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
5358         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
5359
5360 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5361
5362         Break out coverage routines to new file.
5363         * Makefile.in (COVERAGE_H): New variable
5364         (C_OBJS): Add coverage.o
5365         (coverage.o): New target.
5366         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
5367         dependencies.
5368         (GTFILES): Adjust.
5369         (gt-coverage.h): New target.
5370         (gt-profile.h): Remove.
5371         * profile.h: Remove. Move to ...
5372         * coverage.h: ... here. New. #include gcov-io.h.
5373         * gcov-io.h: Move function definitions to ...
5374         * gcov-io.c: ... here. New.
5375         * profile.c: Move coverage routines to coverage.c.
5376         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
5377         end_branch_prob): Adjust.
5378         * coverage.c: New. Coverage routines from profile.c
5379         (coverage_counter_ref, coverage_init, coverage_finish,
5380         coverage_end_function, coverage_begin_output,
5381         coverage_counter_ref, get_coverage_counts): Define.
5382         * gcov-dump.c, gcov.c: #include gcov-io.c.
5383         * libgcov.c: Likewise. Adjust.
5384         * loop-init.c: Don't #include profile.h
5385         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
5386         * rtl.h: Add coverage prototypes.
5387         * toplev.c (compile_file): Init coverage, not branch_prob.
5388         Always call coverage_finish.
5389         (rest_of_compilation): Call coverage_end_function.
5390
5391 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
5392
5393         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
5394
5395 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
5396
5397         * c-ppoutput.c (cb_include): Don't take a cpp_token.
5398         * cppfiles.c: Don't undef strcmp.
5399         (find_include_file): Don't take a cpp_token.  Check for empty
5400         file names.
5401         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
5402         (cpp_push_include): Simplify.
5403         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
5404         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
5405         (parse_include): Similary.  Don't check for zero-length filenames.
5406         (do_include_common, do_pragma_dependency): Update accordingly.
5407         * cpplib.h (struct cpp_callbacks): Change prototype of include.
5408
5409 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5410
5411         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
5412         details of conflict handling.
5413
5414         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
5415         when conversion overflows.
5416
5417         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
5418
5419         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
5420         before clearing.
5421
5422 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
5423
5424         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
5425         have the same form as the old RTL.
5426
5427 2003-04-21  Andreas Jaeger  <aj@suse.de>
5428
5429         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
5430
5431 2003-04-20  Chris Lattner  <sabre@nondot.org>
5432             Zack Weinberg  <zack@codesourcery.com>
5433
5434         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
5435         genrtl_cleanup_stmt.  Correct comment at head of
5436         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
5437
5438         * stmt.c (struct nesting): Kill n_function_calls.
5439         (expand_start_bindings): Don't set
5440         thisblock->data.block.n_function_calls.
5441         (expand_end_bindings): Compare function_call_count against 0.
5442         (expand_cleanups): Kill DONT_DO argument; all callers passed
5443         NULL_TREE. All callers updated to match.
5444
5445 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
5446
5447         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
5448         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
5449         (output_constant_def): Remove code predicated on
5450         defer_addressed_constants_flag.
5451
5452         * output.h: Remove prototypes of deleted functions.
5453         * c-typeck.c (constructor_subconstants_deferred): Kill.
5454         (struct initializer_stack): Remove 'deferred' field.
5455         (start_init): Remove all references to the above.
5456         (finish_init): Likewise. Also remove never-executed call to
5457         output_deferred_addressed_constants.  Pull assignment to
5458         defstr out of if expression.
5459
5460 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
5461
5462         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
5463         NOTE_NEWLINE): Remove.
5464         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
5465         to handle new form of line note type.
5466
5467 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
5468
5469         * target.h (encode_section_info): Add new argument carrying
5470         the RTL to be modified by the hook.
5471
5472         * varasm.c (make_decl_rtl, output_constant_def): Update calls
5473         to encode_section_info.
5474         (default_encode_section_info): Take and use RTL argument,
5475         don't use TREE_CST_RTL or DECL_RTL.
5476         * output.h: Update prototype of default_encode_section_info.
5477         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
5478         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
5479         Update calls to encode_section_info.
5480
5481         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
5482         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
5483         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
5484         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
5485         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
5486         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
5487         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
5488         except for PE dllimport/dllexport.  Update calls to
5489         default_encode_section_info.
5490
5491         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
5492         Update prototypes.
5493
5494         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
5495
5496 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5497
5498         PR/8705
5499         * pa.md (movccfp): New expander.
5500         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
5501         Reverse fcmp conditions.
5502
5503 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5504
5505         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
5506         of operand 1 correctly.
5507
5508 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
5509
5510         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
5511         * gcov.c (output_lines): Don't be so fussy about going past EOF.
5512
5513 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
5514
5515         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
5516         (cppcharset.o): New target.
5517         * c-lex.c (is_extended_char): Move to cppcharset.c.
5518         (utf8_extend_token): Delete.
5519         * cppcharset.c: New file.
5520         * cpphash.h (_cpp_valid_ucn): New.
5521         * cpplex.c (lex_identifier): Update prototype.
5522         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
5523         escapes.
5524         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
5525         in cppcharset.c.
5526         (lex_number, lex_identifier, cpp_parse_escape): Update.
5527         (_cpp_lex_direct): Update to handle UCNs.
5528         (cpp_avoid_paste): Don't paste to form a UCN.
5529
5530 2003-04-19  Roger Sayle  <roger@eyesopen.com>
5531
5532         * builtins.c (expand_builtin):  Don't expand a pure or const
5533         built-in function if the result will be ignored and none of
5534         its arguments are volatile.
5535
5536 2003-04-19  Kean Johnston  <jkj@sco.com>
5537
5538         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
5539         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
5540         target fragment now: t-sco5; dont compile crti.o.
5541         * config/i386/sco5.h: major overhaul to remove all COFF remnants
5542         and to use elfos.h for most definitions.
5543         (BSS_SECTION_ASM_OP): set correct segment attributes.
5544         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
5545         (DWARF2_UNWIND_INFO): Always set to 1.
5546         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
5547         (MD_STARTFILE_PREFIX_1): Define.
5548         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
5549         (DEFAULT_LINKER): Define if not specified to configure.
5550         (CTORS_SECTION_ASM_OP): Remove COFF crud.
5551         (DTORS_SECTION_ASM_OP): Remove COFF crud.
5552         (WINT_TYPE): Define.
5553         (SDB_DEBUGGING_INFO): Remove.
5554         (EXTRA_SECTIONS): Likewise.
5555         (EXTRA_SECTION_FUNCTIONS): Likewise.
5556         (CTOR_LIST_BEGIN): Likewise.
5557         (CTOR_LIST_END): Likewise.
5558         (INIT_SECTION_FUNCTION): Likewise.
5559         (FINI_SECTION_FUNCTION): Likewise.
5560         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
5561         (LOCAL_LABEL_PREFIX): Likewise.
5562         (NON_SAVING_SETJMP): Likewise.
5563         (RETURN_POPS_ARGS): Likewise.
5564         (ASM_OUTPUT_SKIP): Likewise.
5565         (TARGET_ASM_NAMED_SECTION): Likewise.
5566         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
5567         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
5568         (ASM_OUTPUT_IDENT): Likewise.
5569         (ASM_OUTPUT_CASE_LABEL): Likewise.
5570         (ASM_OUTPUT_ASCII): Likewise.
5571         (ASM_OUTPUT_LIMITED_STRING): Likewise.
5572         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
5573         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5574         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
5575         (ASM_FINISH_DECLARE_OBJECT): Likewise.
5576         (ASM_DECLARE_OBJECT_NAME): Likewise.
5577         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
5578         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5579         (ASM_DECLARE_RESULT): Likewise.
5580         (ASM_WEAKEN_LABEL): Likewise.
5581         (SUPPORTS_WEAK): Likewise.
5582         (APPLY_RESULT_SIZE): Likewise.
5583         (LPREFIX): Likewise.
5584         (ALIGN_ASM_OP): Likewise.
5585         (ASCII_DATA_ASM_OP): Likewise.
5586         (IDENT_ASM_OP): Likewise.
5587         (ASM_SHORT): Likewise.
5588         (ASM_LONG): Likewise.
5589         (TYPE_ASM_OP): Likewise.
5590         (SIZE_ASM_OP): Likewise.
5591         (STRING_ASM_OP): Likewise.
5592         (SKIP_ASM_OP): Likewise.
5593         (EH_FRAME_SECTION_ASM_OP): Likewise.
5594         (READONLY_DATA_SECTION_ASM_OP): Likewise.
5595         (INIT_SECTION_ASM_OP): Likewise.
5596         (FINI_SECTION_ASM_OP): Likewise.
5597         (TEXT_SECTION_ASM_OP): Likewise.
5598         (DATA_SECTION_ASM_OP): Likewise.
5599         (TYPE_OPERANT_FORMAT): Likewise.
5600         (ASM_SPEC): Remove COFF code.
5601         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
5602         cause -pg to emit an error; use pcrt1elf.o with -pp
5603         (ENDFILE_SPEC): Likewise.
5604         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
5605         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
5606         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
5607         add -z alt_resolve to support weak symbols the way GCC wants them.
5608         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
5609         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
5610         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
5611         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
5612         (CRTSTUFF_T_CFLAGS_S): Define.
5613         (MULTILIB_OPTIONS): Likewise.
5614         (MULTILIB_DIRNAMES): Likewise.
5615         (MULTILIB_MATCHES): Likewise.
5616         (MULTILIB_EXTRA_OPTS): Likewise.
5617         (LIBGCC): Likewise.
5618         (INSTALL_LIBGCC): Likewise.
5619         (crti.o): Remove.
5620         * config/i386/t-sco5gas: Remove.
5621         * doc/install.texi: Updated for new OpenServer instructions.
5622         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
5623
5624 2003-04-19  Kean Johnston  <jkj@sco.com>
5625
5626         * fixinc/check.tpl: Allow user to over-ride diff program.
5627         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
5628         (sco_math): Added test for SCO math header files.
5629         (sco_regset): Added check for conflicts with ieeefp.h.
5630         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
5631         * fixinc/fixincl.x: Regenerated
5632         * fixinc/tests/base/math.h: Added sco_math tests.
5633         * fixinc/tests/base/string.h: New file.
5634         * fixinc/tests/base/sys/regset.h: New file.
5635
5636 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5637
5638         * cpphash.h (struct cpp_buffer): Remove backup_to.
5639         * cpplex.c (BACKUP, get_effective_char): Die.
5640         (_cpp_skip_block_comment): Assume '*' is location on entry.
5641         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
5642         (IF_NEXT_IS): Update.
5643         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
5644
5645 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
5646
5647         * README.Portability: Move to a new section and obsolete K+R
5648         portability issues.
5649
5650 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
5651
5652         * rtlanal.c (subreg_offset_representable_p):  Fix call of
5653         subreg_lowpart.
5654
5655 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5656
5657         * cpphash.h (struct cpp_reader): New member warned_dollar.
5658         * cpplex.c (continues_identifier_p): New function.
5659         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
5660         lex_number and lex_string, and simplify.
5661         (parse_slow, unescaped_terminator_p): Die.
5662         (_cpp_lex_direct): Update.
5663
5664 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5665
5666         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
5667
5668 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
5669
5670         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
5671         fork behaviour.
5672
5673 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5674
5675         * cppexp.c (eval_token): Permit true and false even if pedantic.
5676
5677 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5678
5679         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
5680
5681 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5682
5683         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
5684         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
5685         (struct include_file): Remove fefcnt, mapped members.
5686         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
5687         (read_include_file): Don't use mmap, terminate buffers in '\r'.
5688         (purge_cache): Don't use munmap.
5689         * cpphash.h (CPP_BUF_COLUMN): Update.
5690         (lexer_state): Remove lexing_comment.
5691         (struct _cpp_line_note): New.
5692         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
5693         next_line and need_line.  Remove col_adjust and saved_flags.
5694         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
5695         _cpp_skip_block_comment, scan_out_logical_line): New.
5696         (_cpp_init_mbchar): Remove.
5697         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
5698         (cpp_read_main_file): Set line to 1 earlier.
5699         (post_options): -traditional-cpp doesn't want trigraphs.
5700         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
5701         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
5702         _cpp_get_fresh_line): New.
5703         (handle_newline, skip_escaped_newlines, trigraph_p,
5704         continue_after_nul, _cpp_init_mbchar): Remove.
5705         (get_effective_char): Update.
5706         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
5707         (skip_line_comment): Simplify.
5708         (skip_whitespace, parse_identifier, parse_slow, parse_number,
5709         parse_string): Update.
5710         (cpp_lex_direct): Use clean lines and process line notes.  Update.
5711         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
5712         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
5713         directly.
5714         (_cpp_handle_directive): Don't set saved_flags.
5715         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
5716         cpp_undef, handle_assertion, cpp_push_buffer): Update.
5717         (_cpp_pop_buffer): Free notes.
5718         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
5719         * cpppch.c (cpp_read_state): \n terminate buffer.
5720         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
5721         (copy_comment): Use _cpp_skip_block_comment.
5722         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
5723         Simplify.
5724         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
5725         save_replacement_text): Update.
5726         (scan_out_logical_line): Update to use clean lines and process
5727         line notes.
5728         * fix-header.c (read_scan_file): Update.
5729
5730 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
5731
5732         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
5733         null begin parameter (as well as pointer to null).
5734         (__deregister_frame_info_bases): Likewise.
5735
5736 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5737
5738         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
5739         hard or virtual register and copy into pseudo if replacement fails.
5740
5741         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
5742
5743         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
5744
5745 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
5746
5747         * calls.c (expand_call): Move special case for constructor calls
5748         to right place. Ensures constructor calls used to initialize
5749         arguments get a clean outgoing argument block for themselves.
5750         Move check for stack deallocation completeness until after last
5751         deallocation.  Add stack_pointer_delta to set of state
5752         variables saved and restored along with current stack_level.
5753
5754         * integrate.c (expand_inline_function): Ensure non-const actuals
5755         don't end up const in the caller's flow after conversion to possibly
5756         const formal type.
5757
5758 2003-04-18  Vincent Celier  <celier@gnat.com>
5759
5760         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
5761         and *_DIV_EXPR as TRUNC_*_EXPR.
5762
5763 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
5764
5765         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
5766         for orphaned jump tables.
5767
5768 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
5769
5770         * reload1.c: Revert my previous patch on 2002-04-17.
5771
5772 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5773
5774         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
5775         Add Segher Boessenkool.
5776
5777 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
5778
5779         PR c/9177
5780         * c-decl.c (c_expand_body): Don't garbage collect the function
5781         body if we are going to dump it later.
5782
5783 2003-04-18  Richard Henderson  <rth@redhat.com>
5784
5785         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
5786         (alpha_end_function): Don't set them.
5787         (decl_in_text_section): Remove.
5788         (alpha_encode_section_info): Remove.
5789         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
5790         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
5791         sections, rather than decl_in_text_section results.
5792
5793 2003-04-18  Roger Sayle  <roger@eyesopen.com>
5794
5795         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
5796         and SIGN_EXTRACT.
5797
5798 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5799
5800         PR optimization/7675
5801         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
5802         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
5803         nested functions if they refer to declarations from parent functions.
5804         * stmt.c (expand_decl): Don't put automatic variables in registers
5805         if the DECL_NONLOCAL flag is set.
5806
5807 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
5808
5809         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
5810         consider those to be movable where the source matches
5811         want_to_gcse_p.
5812         (update_ld_motion_stores): In comment, refer to
5813         compute_ld_motion_mems for validity of replacement.
5814
5815 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
5816
5817         * gcov-dump.c (tag_summary): Remove max_sum
5818         * gcov-io.h (gcov_summary, gcov_write_summary,
5819         gcov_read_summary): Kill max_sum.
5820         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
5821         message more verbose.
5822
5823         * emit-rtl.c (subreg_hard_regno):  Check that register is
5824         representable.
5825
5826         * reload.c (reload_inner_reg_of_subreg):  When register is not
5827         representable, reload the whole thing.
5828         (find_reloads): Likewsie.
5829         * rtlanal.c (subreg_representable_p):  New function.
5830
5831         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
5832         allow negative probabilities for edges from the call to exit.
5833         (branch_prob): Do not add fake edges for functions that may return
5834         twice.
5835
5836 2003-04-17  DJ Delorie  <dj@redhat.com>
5837
5838         * toplev.c (target_options): Add value field.
5839         (set_target_switch): Handle target options with values.
5840         * doc/tm.texi: Document how fixed vs variable target
5841         options work.
5842         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
5843         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
5844         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
5845         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
5846         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
5847         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
5848         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
5849         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
5850         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
5851         Add value initializer to target options.
5852
5853 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
5854
5855         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
5856
5857 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
5858
5859         * reload1.c (move2add_last_cc0): New.
5860         (reload_cse_move2add): Detect implicit sets.
5861         (move2add_note_store): Notice a store into cc0.
5862
5863 2003-04-17  Roger Sayle  <roger@eyesopen.com>
5864
5865         PR c/10375
5866         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
5867         function attributes.
5868
5869 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
5870
5871         * doc/sourcebuild.texi (Test Suites): Document support for testing
5872         binary compatibility (moved from testsuite/README.compat).
5873
5874 2003-04-17  Richard Henderson  <rth@redhat.com>
5875
5876         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
5877
5878 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
5879
5880         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
5881         the one provided by the FSF.
5882
5883 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5884
5885         * doc/install.texi (Binaries): Update URL and list of platforms
5886         provided by ftp.thewrittenword.com.
5887
5888 2003-04-17  Richard Henderson  <rth@redhat.com>
5889
5890         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
5891         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
5892         * config/xtensa/xtensa.md (call, call_value): Likewise.
5893
5894 2003-04-17  Richard Henderson  <rth@redhat.com>
5895
5896         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
5897         (print_operand_address): Likewise.
5898         (ep_memory_operand): Likewise.
5899         (special_symbolref_operand): Likewise.
5900         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
5901         (v850_encode_section_info): Call default_encode_section_info.
5902         (v850_strip_name_encoding): Remove.
5903         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
5904         (ASM_OUTPUT_LABELREF): Remove.
5905         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
5906         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
5907         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
5908         (ENCODED_NAME_P): Remove.
5909         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
5910         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
5911         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
5912
5913 2003-04-17  Richard Henderson  <rth@redhat.com>
5914
5915         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
5916         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
5917         SYMBOL_REF_FUNCTION_P.
5918
5919 2003-04-17  Richard Henderson  <rth@redhat.com>
5920
5921         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
5922         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
5923         (text_segment_operand): Likewise.
5924
5925 2003-04-17  Richard Henderson  <rth@redhat.com>
5926
5927         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
5928         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
5929         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
5930         (sh_encode_section_info): Remove.
5931         (sh_strip_name_encoding): Remove.
5932         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
5933         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
5934         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
5935         (ASM_OUTPUT_LABELREF): Remove.
5936         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
5937         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
5938
5939 2003-04-17  Richard Henderson  <rth@redhat.com>
5940
5941         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
5942         (tls_model_chars): Remove.
5943         (larl_operand): Use SYMBOL_REF_FLAGS.
5944         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
5945         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
5946         (s390_output_mi_thunk): Likewise.
5947         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
5948         (s390_function_profiler): Likewise.
5949         (s390_encode_section_info): Use default_encode_section_info
5950         and SYMBOL_FLAG_ALIGN1.
5951         (s390_strip_name_encoding): Remove.
5952         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
5953         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
5954         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
5955
5956 2003-04-17  Richard Henderson  <rth@redhat.com>
5957
5958         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
5959         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
5960         (print_operand_address): Likewise.
5961
5962         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
5963         * config/ns32k/ns32k.c (expand_block_move): Don't check
5964         flag_unroll_loops.
5965
5966 2003-04-17  Richard Henderson  <rth@redhat.com>
5967
5968         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
5969         SYMBOL_REF_FLAG.
5970
5971 2003-04-17  Richard Henderson  <rth@redhat.com>
5972
5973         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
5974
5975         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
5976         (SYMBOL_REF_MODEL): New.
5977         (LIT_NAME_P): Move from m32r.h.
5978         (m32r_select_section): Remove.
5979         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
5980         (m32r_strip_name_encoding): Remove.
5981         (m32r_in_small_data_p): New.
5982         (small_data_operand): Use SYMBOL_REF_SMALL_P.
5983         (addr24_operand): Use SYMBOL_REF_MODEL.
5984         (call26_operand): Likewise.
5985         (addr32_operand): Tidy.
5986         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
5987         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
5988         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
5989         (READONLY_DATA_SECTION_ASM_OP): Remove.
5990         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
5991         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
5992         (TARGET_ASM_SELECT_SECTION): Remove.
5993         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
5994         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
5995         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
5996         (ASM_OUTPUT_LABELREF): Remove.
5997
5998 2003-04-17  Richard Henderson  <rth@redhat.com>
5999
6000         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
6001         (encode_section_info): Remove.
6002         * config/ip2k/ip2k-protos.h: Update.
6003
6004 2003-04-17  Richard Henderson  <rth@redhat.com>
6005
6006         * varasm.c (default_encode_section_info): Don't set
6007         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
6008         * config/i370/i370.c (i370_encode_section_info): Remove.
6009         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
6010         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
6011         * config/i370/i370.md (movsi): Likewise.
6012
6013         * config/i370/t-i370: Add missing backslash.
6014
6015 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
6016
6017         * doc/invoke.texi (inline-limit): Fix pasto.
6018
6019 2003-04-17  Richard Henderson  <rth@redhat.com>
6020
6021         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
6022         (small_call_insn_operand): Use it.
6023         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
6024         (h8300_eightbit_constant_address_p): Use it.
6025         (SYMBOL_FLAG_TINY_DATA): New.
6026         (h8300_tiny_constant_address_p): Use it.
6027         (h8300_encode_label, h8300_strip_name_encoding): Remove.
6028         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
6029         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
6030         (ASM_OUTPUT_LABELREF): Remove.
6031
6032 2003-04-16  Richard Henderson  <rth@redhat.com>
6033
6034         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
6035         all users with SYMBOL_REF_SMALL_P.
6036         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
6037         (frv_encode_section_info): Remove.
6038         (frv_strip_name_encoding): Remove.
6039         (frv_in_small_data_p): Merge tests from encode_section_info.
6040         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
6041         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
6042         (SDATA_NAME_P): Remove.
6043         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
6044         (ASM_OUTPUT_LABELREF): Remove.
6045         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
6046
6047         * config/frv/frv.c (frv_asm_out_constructor): New.
6048         (frv_asm_out_destructor): New.
6049         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
6050         (DTORS_SECTION_ASM_OP): New.
6051         (ASM_OUTPUT_CONSTRUCTOR): Remove.
6052         (ASM_OUTPUT_DESTRUCTOR): Remove.
6053
6054 2003-04-16  Richard Henderson  <rth@redhat.com>
6055
6056         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
6057         SYMBOL_REF_LOCAL_P; abort if not pic.
6058         (cris_encode_section_info): Remove.
6059
6060 2003-04-16  Richard Henderson  <rth@redhat.com>
6061
6062         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
6063         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
6064
6065         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
6066         flag_inline_trees.
6067
6068 2003-04-16  Richard Henderson  <rth@redhat.com>
6069
6070         * config/avr/avr.c (avr_encode_section_info): Remove.
6071         (avr_insert_attributes): New.
6072         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
6073         (avr_assemble_integer): Likewise.
6074
6075 2003-04-16  Richard Henderson  <rth@redhat.com>
6076
6077         * arc.c (arc_encode_section_info): Remove.
6078         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
6079         (arc_print_operand, arc_print_operand_address): Likewise.
6080         * arc.h (EXTRA_CONSTRAINT): Likewise.
6081
6082 2003-04-16  Roger Sayle  <roger@eyesopen.com>
6083
6084         * c-semantics.c (find_reachable_label): New function to find a
6085         potentially reachable label in an expression.
6086         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
6087         assumes the start of the IF_STMT is unreachable (dead) code.
6088         (expand_unreachable_stmt): Similar to expand_stmt but assumes
6089         the start of the statement list is unreachable (dead) code.
6090         (genrtl_if_stmt):  If the controlling expression of the IF
6091         is constant, use expand_unreachable_stmt for the THEN or ELSE
6092         clause as appropriate.
6093         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
6094         the body of a SWITCH statement.
6095         (expand_stmt): The code immediately following a "return",
6096         "break", "continue" or "goto" is unreachable.
6097         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
6098
6099 2003-04-16  Richard Henderson  <rth@redhat.com>
6100
6101         * rtl.h (MEM_ALIAS_SET): Update documentation.
6102         * doc/rtl.texi (Special Accessors): New node.
6103         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
6104
6105 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
6106
6107         * reload1.c (reload_cse_noop_set_p): Return false if mode of
6108         SET_DEST is not the same as that returned by...
6109         * cselib.h (cselib_reg_set_mode): ... new function.
6110         * cselib.c (cselib_reg_set_mode): Define it.
6111         (REG_VALUES): Document semantics of first element as set mode.
6112         (cselib_subst_to_values): Skip first element if ELT is NULL.
6113         (cselib_lookup): Likewise.  Insert past the first element.
6114         (cselib_invalidate_regno): NULLify first element.
6115         (cselib_record_set): Set first element.
6116
6117 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
6118
6119         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
6120         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
6121         * tree.h: Add prototypes for the two new functions.
6122         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
6123         updates introduced in the previous revision by call to saved_expr_p.
6124         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
6125
6126         * expr.c (store_field): Force usage of bitfield instructions when
6127         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
6128         (expand_expr, case BIT_FIELD_REF): likewise.
6129
6130 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
6131
6132         PR middle-end/8866
6133         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
6134         jumptables.
6135
6136 2003-04-16  Richard Henderson  <rth@redhat.com>
6137
6138         * config/ia64/ia64.c (sdata_symbolic_operand): Use
6139         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
6140         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6141         (function_operand): Use SYMBOL_REF_FUNCTION_P.
6142         (ia64_expand_load_address): Likewise.
6143         (ia64_assemble_integer): Likewise.
6144         (ia64_encode_section_info): Remove.
6145         (ia64_strip_name_encoding): Remove.
6146         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
6147         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
6148
6149 2003-04-16  Richard Henderson  <rth@redhat.com>
6150
6151         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
6152         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
6153         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
6154         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
6155         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
6156         (global_symbolic_operand): Similarly.
6157         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
6158         (tls_symbolic_operand_type): Likewise.
6159         (alpha_encode_section_info): Use default_encode_section_info.
6160         (alpha_strip_name_encoding): Remove.
6161         (get_tls_get_addr): Split out from ...
6162         (alpha_legitimize_address): ... here.
6163         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
6164         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
6165         (alpha_initialize_trampoline): Use init_one_libfunc.
6166         (alpha_setup_incoming_varargs): Mark unused parameters.
6167         (alpha_initial_elimination_offset): Likewise.
6168         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
6169         (unicosmk_unique_section): Use default_strip_name_encoding.
6170         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
6171
6172 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
6173
6174         * config.gcc: Add t-spe for eabispe.
6175
6176         * config/rs6000/t-spe: New.
6177
6178 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
6179
6180         Re-apply this patch:
6181
6182         2002-05-16  Dale Johannesen  <dalej@apple.com>
6183           * combine.c (cant_combine_insn_p):  Reenable combinations
6184           involving hard regs unless CLASS_LIKELY_SPILLED_P.
6185
6186 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6187
6188         PR/10271
6189         * pa-protos.h (function_arg): Remove last argument.
6190         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
6191         * pa.h (struct hppa_args): Add member incoming.
6192         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
6193         member incoming.
6194         (FUNCTION_ARG): Revise call to function_arg.
6195         (FUNCTION_INCOMING_ARG): Delete.
6196
6197 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
6198
6199         * configure.in: Unify the code which creates symlinks to a
6200         just-built as, ld, objdump, and nm with the code that detects
6201         their presence for purposes of feature tests.
6202         * configure: Regenerate.
6203
6204 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
6205
6206         * varasm.c (output_constant_def): Do not consult
6207         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
6208         (after_function_constants, output_after_function_constants): Delete.
6209         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
6210         * config/mips/mips-protos.h, config/mips/mips.c
6211         (mips16_constant_after_function_p): Delete.
6212         * config/mips/mips.h: Delete #if-0-ed definition of
6213         CONSTANT_AFTER_FUNCTION_P.
6214         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
6215         mention of CONSTANT_AFTER_FUNCTION_P in comment.
6216
6217 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
6218
6219         * tree.c (next_decl_uid): Mark with GTY.
6220         (next_type_uid): Likewise.
6221
6222 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
6223
6224         PR target/9594:
6225         * sh.c (barrier_align): Also recognize stuff_delay_slot as
6226         an indicator that a barrier was created by branch splitting.
6227
6228 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
6229
6230         * c-decl.c (implicitly_declare): Copy declarations that are going
6231         to be placed in a local scope.
6232
6233 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
6234
6235         * invoke.texi (Spec Files): Wrap if-exists-else example.
6236         (MCore): Remove duplicate @itemx entries and @opindex entries.
6237
6238 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
6239
6240         * unwind.inc (_Unwind_Backtrace): New function.
6241         * unwind.h (_Unwind_Backtrace): Declare it.
6242         * libgcc-std.ver (_Unwind_Backtrace): Export it.
6243
6244 2003-04-14  Jason Merrill  <jason@redhat.com>
6245
6246         PR middle-end/10336, c++/10401
6247         * jump.c (never_reached_warning): Also stop looking if we reach the
6248         beginning of the function.
6249
6250 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6251
6252         PR target/10338
6253         PR bootstrap/10198
6254         PR bootstrap/10140
6255         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
6256
6257 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
6258
6259         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
6260
6261 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6262
6263         * optabs.c (expand_binop): In multi-word add cases, ensure
6264         XTARGET is copied to TARGET if they are different.
6265
6266 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
6267
6268         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
6269         to region, possible after integration of function with unreachable
6270         regions that were optimized away.
6271
6272 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
6273
6274         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
6275         instead of TOC_REGISTER in epilogue in
6276         current_function_calls_eh_return functions.
6277
6278 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
6279
6280         * doc/extend.texi (Empty Structures): Correct description of G++'s
6281         handling of these structures.
6282
6283         * c-decl.c (grokdeclarator): Reject extern redeclarations of
6284         static variables.
6285
6286 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
6287
6288         * config/rs6000/rs6000.md (define_constants): Define constants for
6289         all UNSPEC usage, including new values for TLS support.
6290         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
6291         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
6292         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
6293         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
6294         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
6295         eh_set_lr_di): Use them.
6296         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
6297         rs6000_emit_epilogue) Use them.
6298
6299         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
6300
6301 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
6302
6303         * Makefile.in (c-opts.o): Use custom action.
6304
6305 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
6306
6307         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
6308
6309 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6310
6311         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
6312         handle "superflat arrays" in Ada.
6313
6314         * integrate.c (expand_inline_function): Don't inline if would
6315         lose /u on a BLKmode TARGET.
6316
6317 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
6318
6319         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
6320         extracted from dbxout_type.
6321         (dbxout_range_type): print large bounds in octal format.
6322         (dbxout_type): Replace extracted code by call to
6323         print_int_cst_bounds_in_octal_p.
6324
6325         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
6326         of DW_LANG_Ada83 for Ada units.
6327
6328 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
6329
6330         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
6331         temporary used to round CONST_INT sizes.
6332
6333         * tree.c (int_fits_type_p): Extract generic checks from the case
6334         of constant type bounds. Refine the checks against constant type
6335         bounds to allow for possible decisions against each of these bounds
6336         without requiring both bounds to be constant.
6337         (tree_int_cst_msb): Put back.
6338         * tree.h (tree_int_cst_msb): Likewise.
6339
6340         * global.c (global_conflicts): Prevent allocation of call clobbered
6341         hard regs to pseudos live across abnormal edges, as later passes are
6342         not ready to handle them.
6343
6344         * fold-const.c (fold): Reorder tests for conditional expressions.
6345
6346         * expr.c (highest_pow2_factor): Return unsigned.
6347         * expr.h (offset_address): Likewise.
6348         * emit-rtl.c (offset_address): POW2 argument now unsigned.
6349
6350 2003-04-14  Roger Sayle  <roger@eyesopen.com>
6351
6352         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
6353         string literals at compile-time.
6354
6355 2003-04-14  Roger Sayle  <roger@eyesopen.com>
6356
6357         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
6358         comparison operation and c1/c2 are floating point constants into
6359         x swap(cmp) (c1 - c2).
6360
6361 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
6362
6363         * genautomata.c (output_translate_vect): Fix a typo in loop
6364         condition.
6365
6366 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
6367
6368         PR target/10377
6369         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
6370         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
6371         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
6372         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
6373         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
6374         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
6375         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
6376         ("*extopqihi_swap_side", "*extopqisi_swap_side")
6377         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
6378         When next to constraint R, replace constraint i with n.
6379
6380 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
6381
6382         PR opt/10024
6383         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
6384
6385 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6386
6387         * doc/contrib.texi (Contributors): Correct my entry.
6388
6389 2003-04-13  Roger Sayle  <roger@eyesopen.com>
6390
6391         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
6392         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
6393         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
6394         implies DECL_BUILT_IN to simplify logic.
6395         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
6396
6397 2003-04-13  Roger Sayle  <roger@eyesopen.com>
6398
6399         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
6400         (BT_FN_PTR_SIZE_SIZE): Likewise.
6401         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
6402         New built-in functions for malloc, calloc and strdup respectively.
6403         * calls.c (special_function_p): No need to handle malloc-like
6404         functions any longer.  ECF_MALLOC is set via built-in attributes.
6405
6406         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
6407
6408         * doc/extend.texi: Document these new built-in functions.
6409
6410 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6411
6412         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
6413         (expand_builtin_stpcpy): New.
6414         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
6415         * builtins.def: Add mempcpy & stpcpy support.
6416         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
6417
6418 2003-04-13  Nick Clifton  <nickc@redhat.com>
6419
6420         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
6421         "GCC".
6422         * config/rs6000/40x.md, config/rs6000/603.md,
6423         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
6424         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
6425         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
6426         config/rs6000/aix43.h, config/rs6000/aix51.h,
6427         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
6428         config/rs6000/altivec.h, config/rs6000/altivec.md,
6429         config/rs6000/beos.h, config/rs6000/darwin.h,
6430         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
6431         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
6432         config/rs6000/freebsd.h, config/rs6000/gnu.h,
6433         config/rs6000/host-darwin.c, config/rs6000/linux.h,
6434         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
6435         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
6436         config/rs6000/netbsd.h, config/rs6000/power4.md,
6437         config/rs6000/rios1.md, config/rs6000/rios2.md,
6438         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
6439         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6440         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
6441         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
6442         config/rs6000/spe.md, config/rs6000/sysv4.h,
6443         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
6444         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
6445
6446 2003-04-13  Nick Clifton  <nickc@redhat.com>
6447
6448         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
6449         support for -mcall-aix switch.
6450         * config/rs6000/eabiaix.h: Delete.
6451         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
6452         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
6453         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
6454         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
6455         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
6456         debug_stack_info, output_function_profiler,
6457         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
6458         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
6459         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
6460         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
6461         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
6462         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
6463         multilibs.
6464         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
6465         (MULTILIB_EXCEPTIONS): Delete.
6466         (MULTILIB_MATCHES): Remove mcall-aix matches.
6467
6468         * doc/fragments.texi: Replace -mcall-aix example with an ARM
6469         one.
6470         * doc/install.texi: Delete powerpc-*-eabiaix target.
6471         * doc/invoke.texi: Remove documentation of mcall-aix switch.
6472         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
6473         * config.gcc: Delete powerpc-*-eabiaix target.
6474
6475 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
6476
6477         * doc/invoke.texi: Fix typos.
6478         * doc/tm.texi: Likewise.
6479
6480 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6481
6482         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
6483
6484 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6485
6486         * tree.c (build_constructor): New function.
6487         * tree.h: Prototype it.
6488
6489         * c-typeck.c (build_c_cast, pop_init_level)
6490         * profile.c (build_function_info_value, build_gcov_info_value)
6491         (create_profiler):
6492         Use build_constructor.
6493
6494         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
6495
6496         * objc/objc-act.c (build_constructor):
6497         Rename objc_build_constructor. Use build_constructor.
6498         (build_objc_string_object, objc_add_static_instance)
6499         (init_def_list, init_objc_symtab, init_module_descriptor)
6500         (generate_static_references, build_selector_translation_table)
6501         (build_descriptor_table_initializer, generate_descriptor_table)
6502         (build_protocol_initializer, build_ivar_list_initializer)
6503         (generate_ivars_list, build_dispatch_table_initializer)
6504         (generate_dispatch_table, generate_protocol_list)
6505         (build_category_initializer, build_shared_structure_initializer):
6506         Update to match.
6507
6508 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6509
6510         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
6511
6512 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6513
6514         * config/m68hc11/m68hc11-protos.h
6515         (m68hc11_eq_compare_operator): Declare
6516         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
6517         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
6518         (d_register_operand): Check the operand mode.
6519         (hard_addr_reg_operand): Likewise.
6520
6521 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6522
6523         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
6524         pattern for dbcc/ibcc generation for 68HC12.
6525         ("doloop_end"): New pattern.
6526         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
6527         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
6528         ("m68hc12_dbcc_dec_qi"): New pattern.
6529         ("m68hc12_dbcc_inc_qi"): New pattern.
6530         (split): Add split for the above when we can't use dbcc/ibcc due to
6531         reloading.
6532         (peephole2): Add peephole2 to generate the above when possible.
6533
6534 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6535
6536         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
6537         mode of operand 0.
6538         (peephole2 optimize const load): Likewise for operand 2.
6539         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
6540         clobbers CC_REGNUM.
6541         ("*rotrhi3_with_carry"): Likewise.
6542         (ashift:DI 1 split): Update pattern to create the above rotate.
6543         (lshiftrt:DI 1 split): Likewise.
6544
6545 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6546
6547         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
6548         ("tstqi_z_used" split): Use it.
6549         ("cmphi_z_used"): Likewise.
6550         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
6551         ("cmpqi_z_used"): Likewise.
6552
6553 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
6554
6555         PR c++/7910
6556         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
6557
6558 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6559
6560         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
6561         * configure, config.in: Regenerate.
6562         * intl.c (gcc_gettext_width): New function.
6563         * intl.h: Prototype it.
6564
6565 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6566
6567         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
6568         recognize -mnorelax.
6569         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
6570         (REG_CLASS_NAMES): Add its name.
6571         (REG_CLASS_CONTENTS): Define its content.
6572
6573 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6574
6575         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
6576         parameters so that offsets are valid for far definition.
6577         (__mulsi3): Likewise and use ret to return.
6578         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
6579
6580 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
6581
6582         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
6583
6584 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
6585
6586         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
6587         containing a libgcc.a, move lib* to the corresponding stage dir.
6588
6589         * Makefile.in (stage1-start, stage2-start, stage3-start,
6590         stage4-start): Move $(SPECS) to specs in stage dir.
6591         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
6592         back as $(SPECS).
6593
6594         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
6595         object files from the non-libgcc/ multilib directories as well.
6596
6597 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
6598
6599         * profile.c (read_counts_file): Initialise 'checksum'.
6600
6601         * emit-rtl.c (gen_rtx): Really correct typo.
6602
6603         PR c++/9393
6604         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
6605         * configure.in: Check for gettimeofday.
6606         * tree.c (flag_random_seed): Define.
6607         (default_flag_random_seed): New.
6608         (append_random_chars): Use flag_random_seed rather than trying
6609         to acquire randomness here.
6610         * tree.h (default_flag_random_seed): Declare.
6611         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
6612         descriptions.
6613         (decode_f_option): Handle -frandom-seed.
6614         (print_switch_values): Call default_flag_random_seed.
6615         * flags.h (flag_random_seed): Declare.
6616         * configure: Regenerate.
6617         * config.in: Regenerate.
6618         * config/alpha/t-crtfm: Use -frandom-seed.
6619
6620         * doc/extend.texi (Empty Structures): New.
6621
6622         * c-pch.c: Include flags.h.  Add comments to routines.
6623         (struct c_pch_validity): New.
6624         (get_ident): Update PCH file version number.
6625         (pch_init): Output current debugging type.
6626         (c_common_valid_pch): Check debugging type.
6627         * Makefile.in (c-pch.o): Update dependencies.
6628         * flags.h (debug_type_names): Declare.
6629         * toplev.c (debug_type_names): Move out of decode_g_option.
6630
6631 2003-04-11  Eric Christopher  <echristo@redhat.com>
6632
6633         * emit-rtl.c (gen_rtx): Fix typos.
6634
6635 2003-04-11  Richard Henderson  <rth@redhat.com>
6636
6637         * emit-rtl.c (gen_rtx): Zero '0' fields.
6638
6639 2003-04-11  Richard Henderson  <rth@redhat.com>
6640
6641         PR c++/10202
6642         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
6643         not COMPLETE_TYPE_P for re-invoking layout_decl.
6644
6645 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
6646
6647         * doc/bugreport.texi: Fix paragraph breaking between sections
6648         in preparation for TeXinfo's paragraph indentation fixes.
6649         * doc/extend.texi: Ditto.
6650         * doc/invoke.texi: Ditto.
6651         * doc/objc.texi: Ditto.
6652         * doc/gcov.texi: Wrap 'gcov' in @command{}.
6653         * doc/invoke.texi (Darwin Options): Add a preamble.
6654
6655 2003-04-11  Richard Henderson  <rth@redhat.com>
6656
6657         * config/i386/i386.c (tls_model_chars): Remove.
6658         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
6659         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
6660         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6661         (tls_symbolic_operand_1): Likewise.
6662         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
6663         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
6664         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
6665         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
6666         bits "copied from i386.h" with default_encode_section_info.
6667
6668 2003-04-11  Richard Henderson  <rth@redhat.com>
6669
6670         * rtl.def (SYMBOL_REF): Add two 0 fields.
6671         * gengtype.c (adjust_field_rtx_def): Handle them.
6672         * print-rtl.c (print_rtx): Print them.
6673         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
6674         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
6675         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
6676         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
6677         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
6678         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
6679         (SYMBOL_FLAG_MACH_DEP): New.
6680         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
6681         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
6682         (assemble_static_space): Set SYMBOL_REF_FLAGS.
6683         (assemble_trampoline_template): Likewise.
6684         (output_constant_def, force_const_mem): Likewise.
6685         (default_encode_section_info): New.
6686         * output.h: Declare it.
6687         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
6688
6689 2003-04-11  Richard Henderson  <rth@redhat.com>
6690
6691         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
6692         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
6693         * optabs.c (init_optabs): Initialize them.
6694         (init_libfuncs): Use init_one_libfunc.
6695         * calls.c (expand_call): Use gcov_flush_libfunc.
6696         * expr.c (store_constructor): Use setbits_libfunc.
6697         * function.c (expand_main_function): Use init_one_libfunc.
6698         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
6699
6700 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
6701
6702         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
6703         documentation; add DECL_FRIEND_CONTEXT.
6704
6705 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6706
6707         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
6708         notes on linker selection and configuration for 64-bit HP-UX port.
6709         * doc/invoke.texi (hppa): Remove hppa text from description for
6710         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
6711         and -threads options.
6712
6713         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
6714         libc.a on libdld.sl when -static is specified and -nolibdld is not
6715         specified.
6716         * pa64-hpux.h (LIB_SPEC): Likewise.
6717         * pa-hpux11.h (LIB_SPEC): Likewise.
6718         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
6719         is not specified.
6720
6721 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
6722
6723         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
6724         not IDENTIFIER_LOCAL_VALUE.
6725
6726 2003-04-11  Richard Henderson  <rth@redhat.com>
6727
6728         PR c/10201
6729         * expr.c (expand_expr): Move DECL_RTL frobbing ...
6730         * stor-layout.c (layout_decl): ... here.
6731
6732 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
6733
6734         * doc/invoke.texi: Eliminate extra white-space caused by
6735         @gccoptlist{ on its own line.
6736         * doc/invoke.texi: Ensured there are two spaces between each option.
6737         * doc/invoke.texi: Re-wrapped option lines that were too wide.
6738         Added @gol to options that didn't have them.
6739
6740 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
6741
6742         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
6743         gcov-iov.h.
6744
6745         Simplify interface to gcov reading and writing.
6746         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
6747         gcov_alloc, gcov_modified, gcov_errored): Move into ...
6748         (struct gcov_var gcov_var): ... this static structure.
6749         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
6750         Return void.
6751         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
6752         read object.
6753         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
6754         (gcov_reserve_length): Remove.
6755         (gcov_write_tag): New.
6756         (gcov_write_length): Adjust.
6757         (gcov_read_summary, gcov_write_summary): Adjust.
6758         (gcov_eof, gcov_ok): Rename to ...
6759         (gcov_is_eof, gcov_is_error): ... here. Return error code.
6760         (gcov_save_position, gcov_resync): Rename to ...
6761         (gcov_position, gcov_seek): ... here.
6762         (gcov_skip, gcov_skip_string): Remove.
6763         (gcov_error): Remove.
6764         (gcov_open, gcov_close): Adjust.
6765         * gcov.c (find_source): Take const char *, copy it on allocation.
6766         (read_graph_file): Adjust.
6767         (read_count_file): Adjust.
6768         * libgcov.c (gcov_exit): Adjust.
6769         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
6770         tag_arc_counts, tag_summary): Return void. Adjust.
6771         (struct tag_format): Adjust proc member.
6772         (dump_file): Adjust gcov calls.
6773
6774 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
6775
6776         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
6777         mkfixinc.sh.
6778         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
6779         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
6780         build != host sysrooted builds.
6781         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
6782         TARGET_SYSTEM_ROOT even on sysrooted natives.
6783         * configure: Rebuilt.
6784
6785 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
6786
6787         * c-decl.c (struct binding_level): Add shadowed_tags and
6788         function_body; remove this_block, tag_transparent, and
6789         subblocks_tag_transparent; update comments.
6790         (clear_binding_level, lookup_tag_reverse): Kill.
6791         (make_binding_level): Use ggc_alloc_cleared or memset.
6792         (lookup_tag): Remove struct binding_level* parameter.  All
6793         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
6794         current_binding_level->tags if asked for thislevel_only or if
6795         we might have to diagnose "struct foo; union foo;"
6796         (pushlevel): Ignore argument.  Do not push another binding
6797         level on the transition from the parameters to the top level
6798         of the function body; just tweak the flags and proceed.
6799         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
6800         a function body, separate the parameter list from the
6801         top-level local variables.
6802         (set_block): Do nothing.
6803         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
6804         shadowed_tags if necessary.
6805         (warn_if_shadowing): Nuke the special case for local shadowing
6806         parameter.
6807         (pushdecl): Do not create a shadow entry if we are replacing
6808         an older decl in the same binding level.
6809         (pushdecl_function_level): Tweak for new way of indicating
6810         function scope.
6811         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
6812         (start_function): Don't set subblocks_tag_transparent.
6813         (finish_function): Fix up the binding_level stack for totally
6814         empty functions.  Otherwise, don't call poplevel.
6815
6816         * c-common.c (shadow_warning): MANDATORY argument is no longer
6817         necessary.  Always use plain warning.
6818         * c-common.h: Update to match.
6819
6820         * cfglayout.c (scope_to_insns_initialize): Clear block when we
6821         hit the FUNCTION_DECL.
6822         * function.c: Do not create cyclic tree structure.
6823
6824 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
6825
6826         * c-tree.h (struct lang_identifier): Replace global_value,
6827         local_value members with symbol_value, tag_value.  Kill
6828         implicit_decl and limbo_value.
6829         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
6830         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
6831         C_MISSING_PROTOTYPE_WARNED): Kill.
6832         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
6833         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
6834         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
6835         (implicit_decl_warning, lookup_name_current_level,
6836         record_function_scope_shadow): Don't prototype.
6837         (pushdecl_function_level): Prototype.
6838
6839         * c-decl.c (truly_local_externals): New variable.
6840         (struct binding_level): Adjust commentary.
6841         (get_function_binding_level, clear_limbo_values,
6842         record_function_scope_shadow): Kill.
6843         (lookup_name_current_level, implicit_decl_warning): Are now static.
6844         (any_external_decl, record_external_decl): New static functions.
6845         (clone_underlying type): Split out of pushdecl.
6846         (c_print_identifier): Update to match changes to struct
6847         lang_identifier.
6848         (poplevel): Delete #if 0 block.  Make externals invisible
6849         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
6850         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
6851         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
6852         (duplicate-decls): For real parm decl after a forward decl,
6853         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
6854         foo(...) { } with only a warning.  Say whether a previous
6855         declaration was implicit.
6856         (warn_if_shadowing): Now handles all shadowing, not just
6857         local-over-local.  Clarify comments.
6858         (pushdecl): Rewritten.  There is no longer a distinction
6859         between global and local symbol values; they're all
6860         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
6861         DECL_EXTERNAL decls, and use any_external_decl to check
6862         against previous externals.  Kill #if 0 blocks.  Don't
6863         tolerate error_mark_node being NULL.
6864         (pushdecl_top_level): Handle only those cases which
6865         Objective C (the only user) needs.
6866         (pushdecl_function_level): New function.
6867         (implicitly_declare): Create ordinary decls with
6868         C_DECL_IMPLICIT set.  Recycle old decls, however they got
6869         created.
6870         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
6871         for C_DECL_INVISIBLE symbols.
6872         (lookup_name_current_level): Likewise.  Use chain_member.
6873         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
6874         Use pushdecl_function_level.
6875         (builtin_function): Use C_DECL_INVISIBLE.
6876         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
6877         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
6878         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
6879         (identifier_global_value): Same.  Must scan
6880         global_binding_level in extremis.
6881
6882         * c-typeck.c (undeclared_variable): New static function, split
6883         from build_external_ref.
6884         (build_external_ref): Use DECL_CONTEXT, not
6885         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
6886         an instance variable.  Restructure for clarity.
6887         * objc/objc-act.c: Use identifier_global_value, not
6888         IDENTIFIER_GLOBAL_VALUE.
6889
6890 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
6891
6892         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
6893         not Working Paper.
6894         * doc/invoke.texi (C++ Dialect Options): Same.
6895
6896 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
6897
6898         * tree.c (tree_operand_check_failed): New function.
6899         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
6900         TREE_RTL_OPERAND_CHECK): New checking macros.
6901         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
6902         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
6903         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
6904         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
6905         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
6906         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
6907         checking macros.
6908
6909 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
6910
6911         PR inline-asm/8803
6912         * function.c (instantate_virtual_regs):  Verify that all ASM statements
6913         match after the virutal regs instantiation.
6914
6915 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
6916
6917         * ia64-protos.h (addp4_optimize_ok): New.
6918         * ia64.c (addp4_optimize_ok): New.
6919         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
6920         (*ptr_extend_plus_2): Ditto.
6921
6922 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
6923
6924         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
6925         not with convert_memory_address.
6926         (store_constructor): Ditto, and same for copy_size_rtx.
6927         (expand_expr): Ditto.
6928
6929 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
6930
6931         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
6932
6933 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
6934
6935         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
6936         even if it is configured to be write-through.
6937
6938 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
6939
6940         * config/s390/s390.c (larl_operand): Do not allow symbols
6941         marked with '@'.
6942         (s390_encode_section_info): Mark symbols with forced 1-byte
6943         alignment with '@'.
6944         (s390_strip_name_encoding): Strip '@'.
6945         (legitimize_pic_address): Handle symbols that are not valid
6946         LARL operands in 64-bit mode.
6947
6948 2003-04-10  Andrew Haley  <aph@redhat.com>
6949
6950         * tree-inline.c (inlinable_function_p): Disable inlining for
6951         synchronized methods.
6952
6953 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
6954
6955         * c-common.h (lang_statement_code_p): Remove declaration.
6956         (statement_code_p): Ditto.
6957         (c_common_stmt_codes): Define; list of c-common statement codes.
6958         (statement_code_p): New extern declaration.
6959         (STATEMENT_CODE_P): Define.
6960         (INIT_STATEMENT_CODES): Define.
6961         * c-common.c (statement_code_p): Kill the function, declare
6962         as an array of bools instead.
6963         (lang_statement_code_p): Remove.
6964         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
6965         (c_safe_from_p): Ditto.
6966         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
6967         to initialize the statement_code_p array.
6968         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
6969         statement_code_p.
6970         (copy_tree_r): Ditto.
6971         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
6972         statement tree codes.
6973         * cp/lex.c (cxx_init): Add missing print line break.  Use
6974         INIT_STATEMENT_CODES to initialize the statement_code_p array.
6975         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
6976         instead of statement_code_p.
6977         * cp/pt.c (tsubst_expr): Ditto.
6978         * cp/tree.c (verify_stmt_tree_r): Ditto.
6979         (cp_statement_code_p): Remove.
6980         (init_tree): Don't set lang_statement_code_p, it's gone.
6981
6982 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
6983             Zack Weinberg  <zack@codesourcery.com>
6984
6985         * regrename.c (struct du_chain): Use a bitfield for reg_class.
6986         * cse.c (struct qty_table_elem, struct table_elt, struct set):
6987         Use bitfields for fields holding enum rtx_code or
6988         enum machine_mode values.  Add comments explaining size choices.
6989
6990 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
6991
6992         * config/fp-bit.c (unpack_d): Handle pair of doubles with
6993         different signs correctly.
6994
6995 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
6996
6997         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
6998         (reg_pending_barrier): Make it of the enumeration type.
6999         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
7000         TRUE_BARRIER.
7001         (sched_analyze): Ditto.
7002         (sched_analyze_insn): Ditto.  Use anti-dependencies for
7003         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
7004         (init_deps_global): Initialize the barrier as NO_BARRIER.
7005
7006 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
7007
7008         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
7009         Check that asm insn starts on a new cycle.  Add nops after asm
7010         insn to end bundle.
7011         (bundling): Move insn type evaluation from the loop.  Call
7012         issue_nops_and_insn with the new parameter.  Ignore changing
7013         position for nops after asm insn.
7014
7015 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
7016
7017         * optabs.c: Comment that gen_add2_insn and others may actually
7018         return emitted insns, if the gen functions turn out to return
7019         emitted insns.
7020         * reload1.c (reload_cse_move2add): Cope with emitted insns from
7021         gen_add2_insn.
7022
7023 2003-04-09  Richard Henderson  <rth@redhat.com>
7024
7025         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
7026         but not tls_symbolic_operand.
7027         (ia64_expand_load_address): Remove scratch operand.
7028         (ia64_expand_tls_address): Split out from ia64_expand_move.
7029         (ia64_expand_move): Split symbolics only after reload.
7030         (ia64_emit_cond_move): New.
7031         * config/ia64/ia64-protos.h: Update.
7032         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
7033         (symbolic splitter): Accept SImode operands too.
7034         (cmove splitter): Use ia64_emit_cond_move.
7035
7036 2003-04-09  Nick Clifton  <nickc@redhat.com>
7037
7038         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
7039         newer.
7040         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
7041         instead of -mno-fpu.
7042         * config/arm/semi.h (ASM_SPEC): Likewise.
7043         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
7044         but only if -msoft-float is specified pass.  Otherwise pass
7045         -mfpu=softvfp.
7046
7047 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7048
7049         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
7050         free_EXPR_LIST_node.
7051
7052 2003-04-08  Roger Sayle  <roger@eyesopen.com>
7053
7054         * fold-const.c (fold):  Use "fold" following build in more places.
7055         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
7056         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
7057
7058 2003-04-08  Roger Sayle  <roger@eyesopen.com>
7059
7060         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
7061         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
7062         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
7063         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
7064         Delete function scope "fcode" variable to avoid shadowing.
7065
7066 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
7067
7068         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
7069         Take into account DWARF_INITIAL_LENGTH_SIZE.
7070
7071 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
7072
7073         * reorg.c (fill_slots_from_thread): When considering changing the
7074         insn following a reg-to-reg copy insn to use the source reg of the
7075         copy, bail out if there's overlap between the registers.
7076
7077 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7078
7079         * function.c (postponed_insns): New.
7080         (purge_addressof_1): Postpone processing of insns if addressofs
7081         are not put into stack.
7082         (purge_addressof): Process postponed insns.
7083
7084 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
7085
7086         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
7087         this is FP_MODE_DOUBLE .
7088         * sh.c (ra.h): #include.
7089         (push_regs): Add second parameter.  Changed all callers.
7090         If necessary, set fpscr before saving floating point registers.
7091         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
7092         do saves / restores with SZ == 1.
7093         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
7094         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
7095         registers are being restored, restore FPSCR only after restoring them.
7096
7097 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
7098
7099         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
7100         regardless of architecture.
7101         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
7102
7103 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
7104
7105         * sh.c (push_regs, calc_live_regs): Return int.  Take single
7106         HARD_REG_SET * parameter.  Changed all callers.
7107
7108 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
7109
7110         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
7111         GOTOFF operand.
7112         (legitimize_pic_address): Move plus outside the unspec.
7113         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
7114         for validity.
7115
7116 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
7117
7118         * gcov-io.h (gcov_save_position): Remove __inline__ from
7119         declaration.
7120
7121 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
7122
7123         * doc/install.texi: Use @command and @samp for single- and
7124         multi-word commands respectively.
7125         * doc/makefile.texi: Likewise.
7126         * doc/sourcebuild.texi: Likewise.
7127
7128 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
7129             Richard Henderson  <rth@redhat.com>
7130
7131         PR c/9516
7132         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
7133         favour of looping and tail recursion for TREE_LIST and binops.
7134
7135 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7136
7137         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
7138         for insns without luid.
7139
7140 2003-04-07  Glen Nakamura  <glen@imodulo.com>
7141
7142         PR opt/8634
7143         * explow.c (maybe_set_unchanging): Don't flag non-static const
7144         aggregate type initializers with RTX_UNCHANGING_P.
7145
7146 2003-04-07  Richard Henderson  <rth@redhat.com>
7147
7148         PR opt/8634
7149         * function.c (purge_addressof_1): Don't try arithmetics for
7150         unchanging memories.
7151
7152 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
7153
7154         * doc/sourcebuild.texi (Test Suites): Document testing support for
7155         gcov and profile-directed optimizations; describe gcc.misc-tests.
7156
7157 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
7158
7159         PR target/10077
7160         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
7161
7162 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7163
7164         * doc/rtl.texi (Comparison operations): Update to
7165         record the allowed comparison modes.
7166
7167 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
7168
7169         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
7170         V2SI_type_node to opaque_V2SI_type_node.  Rename all
7171         V2SF_type_node to opaque_V2SF_type_node.
7172         (rs6000_init_builtins): Define opaque_V2SI_type_node and
7173         opaque_V2SF_type_node.
7174         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
7175         opaque_V2SF_type_node are opaque types.
7176
7177 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
7178
7179         * gcse.c (replace_store_insn): Use single_set.
7180
7181 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
7182
7183         Change gcov file interface to single file at a time.
7184         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
7185         Convert to C89 prototypes.
7186         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
7187         gcov_error, gcov_modified): New static variables.
7188         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
7189         functions.
7190         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
7191         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
7192         (gcov_read_summary, gcov_write_summary): Adjust.
7193         (gcov_save_position, gcov_reserve_length, gcov_write_length):
7194         Adjust.
7195         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
7196         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
7197         (da_file_position, da_file_seek, da_file_write, da_file_read):
7198         Remove.
7199         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
7200         * gcov.c (gcov_type): Don't typedef here.
7201         (IN_GCOV): #define
7202         (read_graph_file, read_count_file): Adjust.
7203         * gcov-dump.c (gcov_type): Don't typedef here.
7204         (IN_GCOV): #define.
7205         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
7206         Remove FILE parameter, adjust.
7207         (struct tag_format): Adjust proc member.
7208         (dump_file): Adjust.
7209         * libgcov.c (IN_LIBGCOV): #define.
7210         (gcov_exit): Adjust.
7211         * loop-init.c: Don't #include gcov-io.h
7212         * profile.c (struct counts_entry): New structure to hold counter
7213         values.
7214         (struct section_reference, struct da_index_entry): Remove.
7215         (bbg_file, da_file): Remove.
7216         (htab_counts_index_hash, htab_counts_index_eq,
7217         htab_counts_index_del): Replace with ...
7218         (htab_counts_entry_hash, htab_counts_entry_eq,
7219         htab_counts_entry_del): ... these.
7220         (cleanup_counts_index, index_counts_file): Remove.
7221         (read_counts_file): New function.
7222         (get_exec_counts): Adjust.
7223         (compute_branch_probabilities): Don't free the exec counts here.
7224         (branch_prob): Adjust.
7225         (init_branch_prob): Adjust.
7226         (end_branch_prob): Adjust.
7227
7228 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
7229
7230         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7231         -mfloat-gprs.
7232
7233         * config/rs6000/rs6000.c: Delete rs6000_fprs.
7234         Declare rs6000_float_gprs.
7235         Declare rs6000_float_gprs_string.
7236         (rs6000_parse_float_gprs_option): New.
7237         (rs6000_override_options): Genericize rs6000_parse_* calls to use
7238         rs6000_parse_yes_no_option.
7239         Change check for cpu=8540, to use TARGET_E500.
7240         (rs6000_parse_isel_option): Delete.
7241         (rs6000_parse_spe_option): Delete.
7242         (rs6000_parse_vrsave_option): Delete.
7243
7244         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
7245         Define rs6000_float_gprs_string.
7246         (TARGET_OPTIONS): Add rs6000_float_gprs option.
7247
7248         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
7249
7250         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
7251
7252 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
7253
7254         PR opt/10024
7255         * cfglayout.c (cfg_layout_redirect_edge):
7256         Redirect any branch edges unified with the fallthru one.
7257         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
7258         case fallthru edges when called via cfglayout.c
7259
7260 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
7261
7262         * c-typeck.c (output_init_element): Check for type == error_mark_node.
7263
7264 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
7265
7266         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
7267         split.
7268         (a splitter): Do zero-extension via HImode.
7269
7270 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
7271
7272         * doc/invoke.texi: Eliminate extra white-space caused by
7273         @gccoptlist{ on its own line.
7274         * doc/invoke.texi: Ensured there are two spaces between each option.
7275         * doc/invoke.texi: Re-wrapped option lines that were too wide.
7276         Added @gol to options that didn't have them.
7277
7278 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
7279
7280         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
7281
7282 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
7283
7284         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
7285         at the sizes of the relevant structures, rather than relying
7286         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
7287         sizes of any such we don't know about.  Use
7288         lang_hooks.identifier_size for IDENTIFIER_NODE.
7289
7290         (initializer_zerop): Use CONSTRUCTOR_ELTS.
7291         * tree.def: Update commentary.  Make fourth element of
7292         the definition for all 'c' and 'x' nodes zero.
7293
7294         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
7295         * langhooks-def.h: Update to match.
7296         * langhooks.c: New default, lhd_tree_size.
7297
7298         * c-common.def (SRCLOC): Kill.
7299         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
7300         Remove entirely - was already #if-ed out.
7301
7302
7303 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
7304
7305         * mklibgcc.in: Use a here document to avoid running afoul of
7306         shells that generate control-A from "echo \1".
7307
7308 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
7309
7310         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
7311         option.
7312
7313         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7314         rs6000_spe.
7315
7316         * config/rs6000/eabi.h (TARGET_E500): Define.
7317
7318         * config/rs6000/rs6000.h (TARGET_E500): Define.
7319         (TARGET_OPTIONS): Add spe= option.
7320         Declare rs6000_spe and rs6000_spe_string extern.
7321
7322         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
7323         Change TARGET_SPE to TARGET_E500.
7324         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
7325         !TARGET_FPRS.
7326         (print_operand): Same.
7327         (rs6000_generate_compare): Same.
7328         (output_cbranch): Same.
7329         (rs6000_spe): Declare.
7330         (rs6000_spe_string): Declare.
7331         (rs6000_override_options): Call rs6000_parse_spe_option.
7332         (rs6000_parse_spe_option): New.
7333
7334 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
7335
7336         * hashtable.c (gcc_obstack_init): Delete this function
7337         and everything related to it.
7338         * hashtable.h: Remove prototype.
7339         * bitmap.c (bitmap_element_allocate): Cleanup redundant
7340         defines.  Cleanup some unnecessary whitespace.
7341         * defaults.h (obstack_chunk_alloc): Redefine with
7342         appropriate casts for libiberty obstacks.
7343         (obstack_chunk_free): Ditto.
7344         (OBSTACK_CHUNK_SIZE): Define, default to 0.
7345         (gcc_obstack_init): Define as a call to _obstack_begin.
7346         * tree.c (print_obstack_statistics): Delete this unused
7347         function.
7348         * tree.h (obstack): Don't forward-declare.
7349         (print_obstack_statistics): Delete prototype.
7350         (print_obstack_name): Ditto.
7351         (gcc_obstack_init): Ditto.
7352         * rtl.h (gcc_obstack_init): Ditto.
7353         * java/jv-scan.c (gcc_obstack_init): Delete this
7354         function, its prototype and related defines.
7355         * java/jvgenmain.c (gcc_obstack_init): Delete this
7356         function, and related defines.
7357         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
7358         (obstack_chunk_free): Ditto
7359
7360 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
7361
7362         * dbxout.c (dbxout_handle_pch): Move prototype out from
7363         #if defined DBX_DEBUGGING_INFO.
7364
7365 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
7366
7367         * gcov.c (struct arc_info): Replace local_span with cycle.
7368         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
7369         (solve_flow_graph): Set is_call_return.
7370         (add_line_counts): Adjust. In block mode, blocks attach to last line.
7371         (accumulate_line_counts): Find graph cycles, not spanning tree.
7372         (output_branch_count): Adjust.
7373         (output_lines): Adjust.
7374         * doc/gcov.texi: Update.
7375
7376 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
7377
7378         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
7379         the second alternative to "#".
7380
7381 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
7382
7383         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
7384         (single_zero_operand): Likewise.
7385
7386 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
7387
7388         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
7389         * df.c: Include alloc-pool.h, not obstack.h.
7390         (df_ref_obstack): Remove.
7391         (df_ref_pool, df_link_pool): Add pools.
7392         (df_alloc): Init the new pools.
7393         (df_free): And free them.
7394         (df_link_create): Use the pools.
7395         (df_ref_create): Ditto.
7396
7397 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
7398
7399         * simplify-rtx.c: Fix formatting.
7400
7401 2003-04-05  Andrew Pinski  <apinski@apple.com>
7402
7403         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
7404         reg with reg1 == reg2 and offset1 = -8.
7405
7406 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
7407
7408         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
7409         multiply costs.  Correct Power4 divide costs.
7410         * config/rs6000/power4.md: Restore multiply and FP latency.
7411
7412 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7413
7414         * alias.c (find_base_term): Export.
7415         * rtl.h (find_base_term): Declare.
7416         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
7417         instead of flag_exceptions.  Move test for parameter passing ...
7418         (store_killed_in_insn): ... here.
7419
7420 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7421
7422         PR bootstrap/10267
7423         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
7424         for configuring.
7425
7426 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
7427
7428         * dbxout.c (scope_labelno): Add GTY.
7429         (have_used_extensions): Add GTY.
7430         (source_label_number): Add GTY.
7431         (lastfile): Add GTY.
7432         (lastfile_is_base): New.
7433         (base_input_file): New.
7434         (dbxout_handle_pch): New.
7435         (dbx_debug_hooks): Add handle_pch.
7436         (xcoff_debug_hooks): Likewise.
7437         (dbxout_function_end): Remove scope_labelno.
7438         (dbxout_init): Set base_input_file.
7439         (dbxout_handle_pch): New.
7440         (dbxout_source_file): Honour lastfile_is_base.
7441         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
7442         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
7443         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
7444         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
7445         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
7446         * debug.h (struct gcc_debug_hooks): Add handle_pch.
7447         * c-pch.c (pch_init): Don't call start_source_file, but do call
7448         handle_pch.
7449         (c_common_write_pch): Call handle_pch.
7450         (c_common_read_pch): Don't call start_source_file,
7451         or end_source_file.
7452
7453 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
7454
7455         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
7456         use of default attributes to agree MEM_ALIGN macro.
7457
7458 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
7459
7460         * dbxout.c (dbxout_type): When printing type index of range type
7461         whose bounds are printed in octal format, print type of parent type if
7462         it exists so enumerated type descriptions are not transformed
7463         into unsigned types.
7464
7465 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
7466
7467         * config/h8300/h8300-protos.h: Add a prototype for
7468         compute_a_shift_cc.
7469         * config/h8300/h8300.c (shift_one): Update the CC status.
7470         (shift_two): Likewise.
7471         (output_a_shift_cc): Set cc_inline and cc_special.
7472         (compute_a_shift_cc): New.
7473         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
7474
7475 2003-04-04  Richard Henderson  <rth@redhat.com>
7476
7477         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
7478
7479 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
7480
7481         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
7482         * fixinc/fixincl.x: Rebuilt.
7483         * fixinc/tests/base/stdio.h: Regenerated.
7484
7485 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
7486
7487         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
7488
7489 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
7490
7491         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
7492         (NORMAL_MODE).
7493         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
7494
7495 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7496
7497         * doc/contrib.texi (Contributors): Add entries for Wolfgang
7498         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
7499         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
7500         Danny Smith, and Ulrich Weigand.
7501         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
7502         entry.
7503
7504 2003-04-04  Nick Clifton  <nickc@redhat.com>
7505
7506         * config/sparc/sol2-bi.h: Revert previous delta.
7507         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
7508
7509 2003-04-04  Nick Clifton  <nickc@redhat.com>
7510
7511         * config/v850/v850.c (expand_prologue): Only use register save
7512         helper functions if long calls are not being used.
7513         Add a clobber of r11 id using long calls.
7514         (pattern_is_ok_for_prologue): Account for the extra clobber.
7515         (construct_save_jarl): Likewise.
7516         * config/v850/v850.md (prolog pattern): Do not use this pattern
7517         for v850e's.
7518
7519 2003-04-04  Andreas Schwab  <schwab@suse.de>
7520
7521         * stor-layout.c (layout_decl): Avoid syntax error in last change
7522         when PCC_BITFIELD_TYPE_MATTERS is defined but not
7523         EMPTY_FIELD_BOUNDARY.
7524
7525 2003-04-03  Jason Merrill  <jason@redhat.com>
7526
7527         PR c/10175
7528         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
7529         Look backwards for a line note.
7530
7531 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
7532
7533         * fix-header.c (read_scan_file): Defer switch processing.
7534
7535 2003-04-03  Matt Austern  <austern@apple.com>
7536
7537         * cpppch.c (reset_ht): Remove.
7538         (cpp_read_state): Remove loop to reset hashtable identifiers.
7539         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
7540         after pch file is written.
7541         * ggc.h (gt_pch_fixup_stringpool): Declare.
7542         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
7543         hashnode's value to another hashtable, then clear the original.
7544         (saved_ident_hash): Define.
7545         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
7546         store definitions in ident_hash, and clear ident_hash.
7547         (gt_pch_fixup_stringpool): Define.  Restore definitions from
7548         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
7549
7550 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
7551
7552         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
7553
7554 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7555
7556         PR optimization/10157
7557         * gcse.c (can_copy_p): Rename it to can_copy.
7558         (can_copy_init_p): Remove.
7559         (compute_can_copy): Use can_copy instead of can_copy_p.
7560         (can_copy_p): New exported function. Call compute_can_copy.
7561         (hash_scan_set): Use it.
7562         (gcse_main): Don't call compute_can_copy.
7563         (bypass_jumps): Don't call compute_can_copy.
7564         * rtl.h (can_copy_p): Declare.
7565         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
7566         copy if the mode doesn't support copy operations.
7567
7568 2003-04-03  Jason Merrill  <jason@redhat.com>
7569
7570         * Makefile.in (unstrap): Also remove stage_last.
7571
7572         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
7573         (dwarf2out_source_line): Don't do anything if line==0.
7574
7575         * stor-layout.c (do_type_align): New fn, split out from...
7576         (layout_decl): ...here.  Do all alignment calculations for
7577         FIELD_DECLs here.
7578         (update_alignment_for_field): Not here.
7579         (start_record_layout, debug_rli): Remove unpadded_align.
7580         * tree.h (struct record_layout_info_s): Remove unpadded_align.
7581         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
7582         or DECL_MODE on the CONST_DECLs.
7583         (finish_struct): Don't mess with DECL_ALIGN.
7584
7585 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
7586
7587         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
7588
7589 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
7590
7591         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
7592         function is an interrupt handler.
7593
7594         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
7595         restoring target registers with EH_RETURN_STACKADJ_RTX; use
7596         multiple registers in round-robin fashion.
7597
7598 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7599
7600         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
7601         * system.h (CHAR_BITFIELD): New.
7602
7603 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
7604
7605         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
7606         and LE.
7607         (another peephole2): Likewise.
7608
7609 2003-04-03  Nick Clifton  <nickc@redhat.com>
7610
7611         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
7612         (DEF_ARCH64_SPEC): Likewise.
7613
7614 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
7615
7616         * i386.c (constant_address_p): Use legitimate_constant_p.
7617         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
7618
7619 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7620
7621         * config/h8300/h8300-protos.h: Add a prototype for
7622         gtle_operator.
7623         * config/h8300/h8300.c (gtle_operator): New.
7624         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
7625         gtle_operator.
7626         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
7627         and LE.
7628
7629 2003-04-02  Richard Henderson  <rth@redhat.com>
7630
7631         * libgcc-std.ver (_Unwind_GetCFA): New.
7632         * unwind-dw2.c (_Unwind_GetCFA): New.
7633         * unwind-libunwind.c (_Unwind_GetCFA): New.
7634         * unwind-sjlj.c (_Unwind_GetCFA): New.
7635         * unwind.h: Declare it.
7636
7637 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
7638
7639         PR inline-asm/8088
7640         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
7641         when MMX/SSE is not available.
7642
7643 2003-04-02  Mike Stump  <mrs@apple.com>
7644
7645         * doc/install.texi (Specific): Update pointers to apple.com.
7646
7647 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
7648
7649         * i386.c (override_options):  Disable red zone by default on i386.
7650         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
7651         Do not test TARGET_64BIT together with TARGET_RED_ZONE
7652
7653 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7654
7655         * config/h8300/h8300.md (a peephole2): Tighten the condition.
7656
7657 2003-04-02  Richard Henderson  <rth@redhat.com>
7658
7659         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
7660
7661 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7662
7663         * config/h8300/h8300.md (a peephole2): New.
7664
7665 2003-04-02  Richard Henderson  <rth@redhat.com>
7666
7667         * except.c (sjlj_find_directly_reachable_regions): Recognize when
7668         must-not-throw region has been deleted.
7669
7670 2003-04-02  Richard Henderson  <rth@redhat.com>
7671
7672         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
7673         optimization when flag_exceptions not enabled.
7674
7675 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7676
7677         * config/rs6000/rs6000.c
7678         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
7679         macros.
7680         (rs6000_issue_rate): Add case for 8540.
7681         (rs6000_use_sched_lookahead): New function.
7682
7683         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
7684         units into MU ones.
7685         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
7686         reservation before retirement.
7687         (ppc8540_multiply, ppc8540_load, ppc8540_store,
7688         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
7689         Remove additional cycle in the reservation before retirement.
7690         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
7691         reservation of ppc8540_issue.
7692
7693 2003-04-02  Andreas Schwab  <schwab@suse.de>
7694
7695         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
7696
7697 2003-04-01  Richard Henderson  <rth@redhat.com>
7698
7699         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
7700         notes for nothrow calls if flag_forced_unwind_exceptions.
7701         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
7702         (sjlj_find_directly_reachable_regions): Likewise.
7703         (reachable_handlers): Likewise.
7704         (can_throw_external): Likewise.
7705         (collect_one_action_chain): Record cleanups after catch-all and
7706         must-not-throw if flag_forced_unwind_exceptions.
7707         * flags.h (flag_forced_unwind_exceptions): Declare.
7708         * toplev.c (flag_forced_unwind_exceptions): New.
7709         (lang_independent_options): Add it.
7710         * doc/invoke.text: Add it.
7711
7712 2003-04-01  David Mosberger <davidm@hpl.hp.com>
7713
7714         * config/ia64/crti.asm: Clean up trailing whitespace.
7715         Remove trailing hashes (#) from identifiers.
7716
7717         * config/ia64/crtn.asm: Ditto.
7718
7719         * config/ia64/crtend.asm: Remove trailing hashes (#) from
7720         identifiers.
7721         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
7722         directives.  Drop explicit bundling---it just makes the code
7723         harder to read.  Don't save/restore gp needlessly.
7724
7725         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
7726         identifiers (they're only needed if the identifier would clash
7727         with a register name otherwise).
7728         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
7729         directives.  Drop explicit bundling---it just makes the code
7730         harder to read.
7731         (__do_jv_register_classes): Ditto.
7732         (.fini_array): Remove "progbits" (newer
7733         assemblers don't like wrong section-types).
7734         (.init_array): Ditto.
7735
7736 2003-04-01  Roger Sayle  <roger@eyesopen.com>
7737
7738         PR fortran/9974
7739         * gcse.c (reg_killed_on_edge): New function to test whether the
7740         given reg is overwritten by any instruction queued on an edge.
7741         (bypass_block): Ignore substitutions killed on incoming edges.
7742         Don't bypass outgoing edges that have queued instructions.
7743
7744 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
7745
7746         * real.h (EXP_BITS): Make room for...
7747         (struct real_value): ... added canonical bit.
7748         (struct real_format): Added pnan.
7749         (mips_single_format, mips_double_format, mips_extended_format,
7750         mips_quad_format): New.
7751         * real.c: Copy p to pnan in all formats.
7752         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
7753         (real_nan): Use pnan to compute significand's shift.
7754         (real_identical): Disregard significand in canonical
7755         NaNs.
7756         (real_hash): Likewise.  Take signalling into account.
7757         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
7758         Disregard significand bits in canonical NaNs.  Set all bits of
7759         canonical NaN if !qnan_msb_set.
7760         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
7761         qnan_msb_set to tell the base double format.
7762         (ibm_extended_format): Use 53 as pnan.
7763         (mips_single_format, mips_double_format, mips_extended_format,
7764         mips_quad_format): Copied from the corresponding ieee/ibm
7765         formats, with qnan_msb_set false.
7766         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
7767         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
7768         * config/mips/mips.c (override_options): Use mips_single_format
7769         and mips_double_format.  Default TFmode to mips_quad_format.
7770         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
7771         * config/mips/t-irix6: Likewise.
7772         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
7773         * config/fp-bit.c (pack_d, unpack_d): Obey it.
7774
7775 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
7776
7777         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
7778         (live_image_destructor): Reset image to initial state.
7779         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
7780
7781 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
7782
7783         * config/sparc/sparc.c (input_operand): Accept bare
7784         CONSTANT_P_RTX operands.
7785
7786 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7787
7788         * gcse.c (struct ls_expr): Added pattern_regs field.
7789         (ldst_entry): Initialize it.
7790         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
7791         (store_ops_ok): Use regs precomputed by them.
7792         (find_loads, store_killed_in_insn, load_kills_store): Change return
7793         type to bool.
7794         (store_killed_before, store_killed_after): Take position of register
7795         set in account.
7796         (reg_set_info): Store position of the setter.
7797         (gcse_main): Enable store motion.
7798         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
7799         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
7800         sharing.
7801         (simple_mem): Enable store motion of non-symbol mems.
7802         (regvec): Type changed.
7803         (LAST_AVAIL_CHECK_FAILURE): New.
7804         (compute_store_table_current_insn): New.
7805         (build_store_vectors): Computation of availability and anticipatability
7806         moved ...
7807         (compute_store_table, find_moveable_store): ... here.
7808         (delete_store): Remove senseless comment.
7809         (store_motion): Reorganize.
7810
7811 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
7812
7813         * config/mips/mips.c (override_options): Provide mappings for
7814         HI_REGNUM and LO_REGNUM.
7815         * config/mips/mips.h (MD_DBX_FIRST): Define.
7816
7817 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7818
7819         * combine.c (merge_outer_ops): Fix typo.
7820
7821         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
7822
7823 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
7824
7825         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
7826         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
7827         imul_compare.  Add lmul_compare.
7828         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
7829         in second pair of dispatch slots.  Model stores more accurately.
7830         Tweak multiply model.  Add bypasses for CR instructions dependent
7831         on complicated compares.
7832         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
7833         (muldi3): Add lmul_compare patterns.
7834         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
7835         and FPSTORE_UX to split instructions and add COMPARE,
7836         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
7837         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
7838         (rs6000_rtx_costs): Separate POWER4 multiply case.
7839
7840 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
7841
7842         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
7843         Do nothing if __builtin_return_address was not used.
7844
7845 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
7846
7847         * i386.md (test patterns):  Allow memory operand in operand1.
7848
7849 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
7850
7851         * testsuite/gcc.c-torture/execute/simd-3.c: New.
7852
7853         * expr.c (expand_expr): Handle VECTOR_CST.
7854         (const_vector_from_tree): New.
7855
7856         * varasm.c (output_constant): Handle VECTOR_CST.
7857
7858         * c-typeck.c (digest_init): Build a vector constant from a
7859         VECTOR_TYPE.
7860
7861         * config/rs6000/rs6000.c: Remove prototype for
7862         easy_vector_constant.
7863         (easy_vector_constant): Add mode parameter.  Rewrite to handle
7864         more easy constants.
7865         (rs6000_emit_move): Pass mode to easy_vector_constant.
7866         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
7867         (emit_easy_vector_insn): New.
7868         (easy_vector_same): New.
7869         (EASY_VECTOR_15): New macro.
7870         (EASY_VECTOR_15_ADD_SELF): New macro.
7871         (bdesc_2arg): Rename to xorv2si3.
7872         (easy_vector_constant_add_self): New.
7873         (input_operand): Allow vector constants.
7874
7875         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7876         easy_vector_constant, easy_vector_constant_add_self.
7877         (EXTRA_CONSTRAINT): Add 'W'.
7878
7879         * config/rs6000/rs6000-protos.h: Add prototype for
7880         easy_vector_constant, emit_easy_vector_insn.
7881
7882         * config/rs6000/altivec.md (xorv8hi3): New.
7883         (xorv16qi3): New.
7884         Remove all _const0 patterns.
7885         (movv4si_internal): Rewrite to use code.  Add vector constant to
7886         vector alternative.  Add splitter.
7887         (movv8hi_internal): Same.
7888         (movv16qi_internal): Same.
7889         (movv4sf_internal): Same.
7890         Change the unspecs for vspltis* to use constants.
7891
7892         * config/rs6000/spe.md ("xorv4hi3"): New.
7893         ("spe_evxor"): Rename to xorv2si3.
7894         ("xorv1di3"): New.
7895         Remove all _const0 patterns.
7896         (movv2si_internal): Rewrite to use code.  Add vector constant to
7897         alternatives.  Add splitter.
7898         (movv4hi_internal): Add vector constant to alternatives.
7899         (movv1di_internal): Same.
7900         (movv2sf_internal): Same.
7901
7902 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
7903
7904         PR c/9936
7905         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
7906         variably-sized arrays in parameters.
7907         (set_save_expr_context): New function.
7908         (c_expand_body): Use it, via walk_tree.
7909
7910 2003-03-31  Eric Christopher  <echristo@redhat.com>
7911
7912         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
7913         (combinable_i3pat): Remove call to expand_field_assignment and
7914         #if 0'd code.
7915
7916 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
7917
7918         PR c++/10278
7919         * c-common.c (finish_label_address_expr): Handle the
7920         error_mark_node.
7921
7922 2003-03-31  Richard Henderson  <rth@redhat.com>
7923
7924         * real.c (real_identical): Reorg so as to not compare
7925         signalling for normals.
7926
7927 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
7928
7929         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
7930
7931 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
7932
7933         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
7934         notes as they are boggus.
7935         (m68hc11_gen_movqi): Likewise.
7936
7937 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
7938
7939         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
7940         save the soft registers after the frame pointer so that gdb can unwind
7941         the frame more easily.
7942         (expand_epilogue): Likewise in opposite order; allow to use X register
7943         as scratch if the return value is by reference.
7944
7945 2003-03-31  Jason Merrill  <jason@redhat.com>
7946
7947         PR java/10145
7948         * stor-layout.c (update_alignment_for_field): Respect
7949         DECL_USER_ALIGN for zero-length bitfields, too.
7950         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
7951         fields.
7952
7953 2003-03-31  Matt Austern  <austern@apple.com>
7954
7955         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
7956         (count_defs): Keep track of number of defs as well as total size.
7957         (write_defs): Put every definition in cpp_savedstate's defs array.
7958         (comp_hashnode): Define.  Comparison function for qsort.
7959         (cpp_write_pch_deps): Sort definitions before writing them.
7960         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
7961         (collect_ht_nodes): Define.
7962         (cpp_valid_state): When verifying that undefined identifiers in
7963         the pch file are still undefined, read a sorted list of undefined
7964         identifiers, collect all defined identifiers into a sorted list,
7965         and walk through both lists to make sure there's no match.
7966
7967 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7968
7969         * config/h8300/h8300.md (a peephole2): New.
7970
7971 2003-03-31  Michael Matz  <matz@suse.de>
7972
7973         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
7974
7975 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
7976
7977         PR target/10177
7978         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
7979         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
7980         all call-clobbered registers as used.
7981
7982 2003-03-31  Michael Matz  <matz@suse.de>
7983
7984         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
7985         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
7986
7987 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
7988
7989         * gcov.c: Add -a & -u options.
7990         (struct arc_info): Add local_span, is_call_non_return,
7991         is_nonlocal_return, is_unconditional flags, remove is_call flag.
7992         (struct block_info): Add flags, is_call_site, is_nonlocal_return
7993         members. Make encodings a union with span member.
7994         (struct function_info): Add blocks_executed, line, src, line_next
7995         members.
7996         (struct coverage_info): Make branches a union with blocks member.
7997         (struct source_info): Add functions member.
7998         (object_summary, program_count): New global variables.
7999         (flag_all_blocks, flag_unconditional): New flags.
8000         (find_source, output_branch_count): New functions.
8001         (print_usage): Adjust.
8002         (options): Adjust.
8003         (process_args): Adjust.
8004         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
8005         <GCOV_TAG_BLOCKS>: Read flags.
8006         <GCOV_TAG_LINES>: Adjust.
8007         (read_count_file): Process SUMMARY tags.
8008         (solve_flow_graph): Set is_unconditional and clear is_call_site
8009         appropriately.
8010         (add_branch_counts): Adjust. Don't count unconditional branches.
8011         (add_line_counts): Deal with all-blocks mode, accumulate block
8012         coverage.
8013         (accumulate_line_counts): Adjust, generate local spanning tree for
8014         all-blocks mode.
8015         (output_lines): Adjust.
8016         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
8017         * doc/gcov.texi: Document.
8018
8019 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8020
8021         * config/h8300/h8300.md: Organize peephole2's that transform
8022         (compare (reg:HI) (const_int)).
8023
8024 2003-03-31  Roger Sayle  <roger@eyesopen.com>
8025
8026         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
8027         (init_emit_once): Initialize dconstm2 and dconsthalf here.
8028         * real.h (dconstm2, dconsthalf): Add prototypes here.
8029         * real.c (real_sqrt): Use dconsthalf rather than local copy.
8030         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
8031         exp(x/2.0) remember to fold the division if possible.
8032         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
8033         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
8034         1.0/(x*x) and pow(x,0.5) as sqrt(x).
8035
8036 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8037
8038         * config/h8300/h8300.md (a new peephole2): New.
8039
8040 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
8041
8042         * gcse.c (simple_mem): Return false for floating-point accesses
8043         if flag_float_store is true.
8044
8045 2003-03-30  Roger Sayle  <roger@eyesopen.com>
8046
8047         * gcse.c (gcse_constant_p): New function to identify constants
8048         suitable for constant propagation, including COMPARE with two
8049         integer constant arguments.
8050         (hash_scan_set): Use gcse_constant_p.
8051         (find_avail_set): Likewise.
8052         (cprop_insn): Likewise.
8053         (do_local_cprop): Likewise.
8054         (find_implicit_sets): Likewise.
8055         (find_bypass_set): Likewise.
8056
8057 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
8058
8059         * except.h: Remove definition of varray_type.
8060
8061 2003-03-30  Richard Henderson  <rth@redhat.com>
8062
8063         PR opt/10011, opt/10252:
8064         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
8065         before post-gcse cse pass.
8066
8067 2003-03-30  Roger Sayle  <roger@eyesopen.com>
8068
8069         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
8070
8071 2003-03-30  DJ Delorie  <dj@redhat.com>
8072
8073         * profile.c (instrument_edges): Make sure any newly created
8074         jump insns have correct jump label info.
8075
8076 2003-03-30  Richard Henderson  <rth@redhat.com>
8077
8078         * cfgbuild.c (make_edges): Use tablejump_p.
8079         * cfgcleanup.c (label_is_jump_target_p): Likewise.
8080         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
8081         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
8082         (try_redirect_by_replacing_jump): Likewise.
8083         (redirect_edge_and_branch): Likewise.
8084         * cse.c (fold_rtx): Likewise.
8085         * jump.c (delete_related_insns): Likewise.
8086         * rtlanal.c (get_jump_table_offset): Likewise.
8087         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
8088
8089 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8090
8091         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
8092         (STRICT2_WARN): Likewise.
8093
8094 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8095
8096         PR other/6955
8097         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
8098         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
8099
8100 2003-03-30  Richard Henderson  <rth@redhat.com>
8101
8102         PR c/10083
8103         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
8104         don't zero_extend const inputs.
8105
8106 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8107
8108         * reload1.c (reload_cse_move2add): Fix a comment typo.
8109
8110 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8111
8112         * config/h8300/h8300.md (a peephole2): Remove useless code.
8113
8114 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8115
8116         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
8117         (*iorsi3_and_lshiftrt): Likewise.
8118         (*iorsi3_zero_extract): Likewise.
8119
8120 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8121
8122         * config/h8300/h8300.md (*insv_si_8_8): New.
8123         (*insv_si_8_8_lshiftrt_8): Likewise.
8124         (a peephole2): Likewise.
8125
8126 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8127
8128         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
8129         Uniformly use bugfix instead of bug fix.
8130
8131 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8132
8133         PR doc/895
8134         * ONEWS: Remove those items that already appear in the EGCS
8135         release notes on our web pages.
8136
8137 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
8138
8139         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
8140         TARGET_HARD_FLOAT.  Reformat.
8141         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
8142
8143 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
8144
8145         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
8146         work on Solaris 2.5.1.
8147
8148 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
8149
8150         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
8151         section of h8300.md
8152         (*addsi3_and_nor_r_1): Likewise.
8153
8154 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
8155
8156         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
8157         set up before any trapping memory access if flag_non_call_exceptions.
8158
8159 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
8160
8161         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
8162
8163         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
8164
8165 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
8166
8167         * configure.in: Clarify comments.
8168         * configure: Regenerate.
8169
8170 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
8171
8172         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
8173         label even if pool empty when generating PIC.
8174         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
8175
8176 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
8177             Dhananjay Deshpande  <dhananjayd@kpit.com>
8178
8179         PR target/10205
8180         * config/h8300/h8300.c (h8300_initial_elimination_offset):
8181         Correct the offset computation when TARGET_NORMAL.
8182
8183 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8184
8185         PR target/10067
8186         * config/sparc/sparc.md (jump pattern): Correct order
8187         when issuing the annuling marker.
8188
8189 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8190
8191         PR c/8281
8192         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
8193         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
8194
8195 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
8196
8197         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
8198         globalize_label.
8199         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8200         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8201         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8202         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8203         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8204         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8205         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
8206
8207 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
8208
8209         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
8210         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
8211         notes after hoisting.
8212         (load_mems): Adjust replace_loop_mems call.
8213
8214 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8215             Richard Henderson  <rth@redhat.com>
8216
8217         PR target/10114 and PR target/10084
8218         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
8219
8220 2003-03-27  Richard Henderson  <rth@redhat.com>
8221
8222         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
8223
8224 2003-03-27  Roger Sayle  <roger@eyesopen.com>
8225
8226         * fold-const.c (fold_inf_compare):  New function to simplify FP
8227         comparisons against +Infinity or -Infinity.
8228         (fold):  Optimize floating point comparisons against Infs and NaNs.
8229
8230 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
8231
8232         * libgcov.c: Provide only dummy functions if libc is not available.
8233
8234 2003-03-27  Richard Henderson  <rth@redhat.com>
8235
8236         * real.h (struct real_value): Add signalling.
8237         (EXP_BITS): Decrement.
8238         * real.c (get_canonical_qnan): Don't set MSB-1.
8239         (get_canonical_snan): Likewise.  Set signalling.
8240         (real_identical): Compare signalling.
8241         (round_for_format): Remove force-one-bit on code.
8242         (real_nan): Likewise.  Set signalling.
8243         (encode_ieee_single): Add force-one-bit code; honor signalling.
8244         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
8245         (decode_ieee_single): Set signalling.
8246         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
8247
8248 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
8249
8250         PR ada/9953
8251         * ada/Makefile.in (gnatlib configuration for HPUX): Split
8252         the general section for HPUX into specific sections for
8253         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
8254         11 case.
8255
8256 2003-03-27  Glen Nakamura  <glen@imodulo.com>
8257
8258         PR opt/10087
8259         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
8260         while incrementing giv.
8261         (record_biv): Check for duplicate biv locations and
8262         set (struct induction *) v->same if found.
8263
8264 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
8265
8266         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
8267         v0.9 API change: replace read of UNW_REG_HANDLER with
8268         unw_get_proc_info().
8269         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
8270         with unw_get_proc_info().
8271         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
8272         unw_get_proc_info().
8273
8274 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8275
8276         * config/rs6000/8540.md: Use presence_set instead of absence_set.
8277
8278 2003-03-26  Richard Henderson  <rth@redhat.com>
8279
8280         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
8281
8282 2003-03-26  Roger Sayle  <roger@eyesopen.com>
8283
8284         PR bootstrap/10051, PR bootstrap/10169.
8285         * mips-tfile.c (init_file): Don't provide a static initializer.
8286         (initialize_init_file): Initialize the contents of init_file.
8287         (add_file): Call initialize_init_file if not already initialized.
8288
8289 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
8290
8291         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
8292         registers used for global asm variables.
8293         (s390_frame_info, s390_arg_frame_offset): Likewise.
8294         (s390_emit_prologue, s390_emit_epilogue): Likewise.
8295
8296 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8297
8298         * config/rs6000/8540.md: New file.
8299
8300         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
8301         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
8302         reservations for imul.
8303
8304         * config/rs6000/rs6000.md: Include 8540.md.  Change
8305         delayed_compare onto mult_compare for insns generating
8306         multiplication.
8307         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
8308         New type attribute values.
8309
8310         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
8311         fpsimple instead of fp.
8312         (*divsf3_gpr): Use type vecfdiv instead of fp.
8313         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
8314         instead of vecfloat.
8315         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
8316         (spe_brinc): Use type brinc instead of veccomplex.
8317         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
8318         veccomplex.
8319         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
8320         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
8321         *movv2sf_internal): Define type attribute values for all
8322         alternatives.
8323         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
8324         of fpcompare.
8325         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
8326         instead of fpcompare.
8327
8328 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
8329
8330         * config/rs6000/power4.md: Allow delay between dispatch and
8331         function units for simple instructions.  Correct store units.
8332         Allow branch to occupy as many dispatch slots as necessary.
8333
8334 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
8335
8336         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
8337         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
8338         zero extend old to it.
8339         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
8340         operand.
8341
8342 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
8343
8344         PR target/7784
8345         * reload.c (find_reloads_address): Handle
8346         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
8347         all base registers.
8348
8349 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
8350
8351         PR other/10203
8352         * version.c: Reference the GCC web site in the URL.
8353
8354 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
8355
8356         * c-incpath.c (add_standard_paths): Add both "translated" and
8357         non-translated header paths.
8358
8359 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
8360
8361         * doc/install.texi (*-*-freebsd*): Update with known status.
8362
8363 2003-03-21  Jason Merrill  <jason@redhat.com>
8364
8365         PR optimization/10171
8366         * unroll.c (unroll_loop): Don't delete the jump at the end unless
8367         we also delete a jump at the beginning.
8368
8369 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
8370
8371         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
8372         contributor.
8373
8374 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
8375
8376         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
8377         constants are not expensive.
8378
8379 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
8380
8381         PR opt/10056
8382         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
8383         jump jumping to the next instruction.
8384         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
8385
8386 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8387
8388         * doc/passes.texi (Passes): Properly document that we do not
8389         perform jump2 any longer; remove command-line option -dJ.
8390
8391 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8392
8393         PR optimization/8746
8394         * config/i386/i386.md (and promoting splitters): Disable HImode to
8395         SImode promoting when the sign bit matters and is not preserved, or
8396         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
8397         for size.
8398
8399 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8400
8401         * config/h8300/h8300.md (a peephole2): Extend to support loads
8402         in QImode and HImode.
8403
8404 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
8405
8406         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
8407         _return_far
8408         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
8409         (MULTILIB_EXCEPTIONS): Likewise.
8410         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
8411         by calling some board support routine.
8412         ("call_value"): Likewise.
8413         ("*return_void"): Likewise for return.
8414         ("*return_16bit"): Likewise.
8415         ("*return_32bit"): Likewise.
8416         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
8417         for 68HC11 too.
8418         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
8419         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
8420         -mlong-calls for 68HC11.
8421         * config/m68hc11/larith.asm (declare_near): New macro.
8422         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
8423         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
8424         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
8425         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
8426         (__mulhi32): Likewise.
8427         (ret): Update macro for 68HC11.
8428         (__far_trampoline): Implement for 68HC11.
8429         (__call_a16, __call_a32, __return_void, __return_16): New support
8430         routines for 68HC11 memory bank switching calling support.
8431         (__return_32): Likewise.
8432
8433 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
8434
8435         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
8436
8437 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
8438
8439         * doc/install.texi (Testing): Mention test result links from build
8440         status pages.
8441
8442 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
8443
8444         * function.c (put_var_into_stack): Change bool parameter to int.
8445         (gen_mem_addressof): Likewise.
8446         * rtl.h (gen_mem_addressof): Likewise.
8447         * tree.h (put_var_into_stack): Likewise.
8448         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
8449         gen_mem_addressof or put_var_into_stack.
8450         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
8451         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
8452
8453 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8454
8455         * config/h8300/h8300.md (a peephole2): New.
8456
8457 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
8458
8459         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
8460
8461 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8462
8463         * doc/contrib.texi (Contributors): Update Janis Johnson.
8464
8465 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8466
8467         PR target/10072
8468         * combine.c (simplify_if_then_else): Check that the mode
8469         has MODE_INT class before applying the (OP Z (mult COND C2))
8470         transformation.
8471
8472 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8473
8474         PR optimization/9414
8475         * config/sparc/sparc.md (widening peepholes): Use
8476         widen_memory_access instead of change_address.
8477
8478 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
8479
8480         PR c++/7086
8481         * c-typeck.c (c_mark_addressable): Adjust calls to
8482         put_var_into_stack.
8483         * expr.c (expand_expr): Likewise.
8484         * function.c (put_var_into_stack): Add rescan parameter.  Do not
8485         call fixup_var_refs when rescan is false.
8486         (gen_mem_addressof): Likewise.
8487         (assign_parms): Adjust calls to put_var_into_stack.
8488         (setjmp_protect): Likewise.
8489         (setjmp_protect_args): Likewise.
8490         * rtl.h (gen_mem_addressof): Change prototype.
8491         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
8492         * tree.h (put_var_into_stack): Change prototype.
8493
8494 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
8495
8496         PR middle-end/9967
8497         * builtins.c (expand_builtin_fputs): When optimizing for size,
8498         don't transform fputs into fwrite.
8499
8500 2003-03-23  Glen Nakamura <glen@imodulo.com>
8501
8502         PR c/8224
8503         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
8504         when signedness changes for division or modulus.
8505
8506 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
8507
8508         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
8509         globalize_label.
8510
8511 2003-03-23  Roger Sayle  <roger@eyesopen.com>
8512
8513         PR c/10178
8514         * stmt.c (expand_end_case_type): Check for overflow in range when
8515         determining whether to use a bit-test implementation.
8516
8517 2003-03-23  Richard Henderson  <rth@redhat.com>
8518
8519         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
8520         before flow2.
8521         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
8522
8523 2003-03-23  Richard Henderson  <rth@redhat.com>
8524
8525         PR opt/10116
8526         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
8527         from then_bb or else_bb after flow2.
8528
8529 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
8530
8531         * configure.in: Check whether it is necessary to link against
8532         libm to use ldexp.
8533         * configure: Regenerate.
8534         * Makefile.in: Add LDEXP_LIB substitution variable.
8535
8536 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8537
8538         * config/h8300/h8300.md: Fix comment typos.
8539
8540 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8541
8542         * pa.c (output_cbranch): Fix typo in comment.
8543
8544 2003-03-22  Richard Henderson <rth@redhat.com>
8545
8546         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
8547         after reload.
8548
8549 2003-03-22  DJ Delorie  <dj at redhat dot com>,
8550         Bruce Korb  <bkorb at gnu dot org>
8551
8552         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
8553         buggy Solaris 2.6 mutex/cond initializers.
8554         (solaris_mutex_init): Rename to solaris_mutex_init_2.
8555         * fixinc/fixincl.x: Regenerate.
8556         * fixinc/tests/base/pthread.h: Update.
8557         * fixinc/fixincl.c(initialize): be explicit about the default case
8558         and indicate verbose level when being very, very verbose.
8559         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
8560
8561 2003-03-22  Andreas Jaeger  <aj@suse.de>
8562
8563         * config/i386/i386.c (ix86_init_machine_status): Return value.
8564
8565 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8566
8567         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
8568         conditional branch to the following instruction.  Use next_real_insn
8569         instead of next_active_insn.
8570         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
8571         instead of next_active_insn.
8572
8573 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8574
8575         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
8576         instead of 'm' constraint in forced-split alternatives.
8577         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
8578         VALIDATE_ADDRESS parameter to operand_subword.
8579
8580 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8581
8582         * config/h8300/h8300.c (notice_update_cc): Correctly handle
8583         the case where the set destination is STRICT_LOW_PART.
8584
8585 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
8586
8587         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
8588         c30 instead of a c40 processor.
8589
8590 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
8591
8592         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
8593
8594 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
8595
8596         * c-common.c: Include intl.h.
8597         (shadow_warning): Rewrite to allow better diagnostic translations.
8598         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
8599         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
8600         use it throughout.
8601         * Makefile.in (c-common.o): Add intl.h.
8602
8603 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
8604
8605         * config.gcc: Remove 'float_format'.
8606
8607         * fixproto: Define NULL and size_t in generated stdlib.h and
8608         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
8609         Rearrange file generation loop for readability.  Generate time.h,
8610         string.h if missing.
8611         * tsystem.h: Include <string.h>, <time.h> unconditionally.
8612         * config.gcc: Blow away POSIX defines.
8613
8614 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
8615
8616         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
8617
8618 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
8619
8620         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
8621         writing .interrupt command.
8622         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
8623         if it's a far or near function.
8624         ("call_value"): Likewise.
8625         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
8626         near attributes.
8627         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
8628         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
8629         (m68hc11_initial_elimination_offset): Set current_function_far
8630         according to attributes.
8631         (expand_prologue): Likewise.
8632         (trap_handler_symbol): New global to keep track of trap handlers.
8633         (m68hc11_encode_section_info): Mark symbol as far if needed; set
8634         trap symbol.
8635         (m68hc11_is_far_symbol): New function.
8636         (m68hc11_is_trap_symbol): New function.
8637         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
8638         (m68hc11_is_trap_symbol): Declare.
8639
8640 2003-03-21  Jan Hubicka  <jh@suse.cz>
8641
8642         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
8643         only when amount of saved regs changed.
8644         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
8645         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
8646
8647 2003-03-21  Jan Hubicka  <jh@suse.cz>
8648
8649         PR inline-asm/7916
8650         * function.c (instantiate_virtual_regs_lossage): New function.
8651         (instantiate_virtual_regs_1): Use it.
8652         (instantiate_virtual_regs): Do not continue in substition when insn has
8653         been deleted.
8654
8655 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8656
8657         * combine.c (make_field_assignment): Fix a warning.
8658
8659 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8660
8661         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
8662
8663 2003-03-21  Dale Johannesen  <dalej@apple.com>
8664
8665         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
8666         priority for R2 on Darwin.
8667         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
8668
8669 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8670
8671         * combine.c (make_field_assignment): Remove unnecessary AND
8672         when storing into zero_extract.
8673
8674 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
8675
8676         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
8677         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
8678         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
8679         in comment.
8680
8681 2003-03-21  DJ Delorie  <dj@redhat.com>
8682
8683         * optabs.c (init_integral_libfuncs): Make sure we init at least up
8684         to "long long" size words.
8685
8686 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8687
8688         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
8689         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
8690         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
8691
8692 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8693
8694         PR doc-bug/9813
8695         * doc/extend.texi: Move misplaced paragraph about underscores in
8696         variables in macros.
8697
8698 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
8699             Richard Henderson  <rth@redhat.com>
8700
8701         PR optimization/8366
8702         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
8703         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
8704         PIC+SYMBOLIC_CONST in other modes than Pmode.
8705         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
8706         the form PIC+SYMBOLIC_CONST as mode dependent.
8707
8708 2003-03-21  DJ Delorie  <dj@redhat.com>
8709
8710         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
8711         sure we always emit at least one insn.
8712
8713 2003-03-21  Christopher Faylor  <cgf@redhat.com>
8714
8715         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
8716         stub t-cygming. Use common target header cygming.h. Add extra
8717         c_target_obj and cxx_target_obj file. Default cygwin to posix
8718         threading. Enforce i386 as float format.
8719         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
8720         Remove cygwin.h as target header. Use common target header
8721         cygming.h  Enforce i386 as float format. Correct typo.
8722         * config/i386/cygming.h: New file, containing definitions
8723         common to mingw32 and cygwin.
8724         * config/i386/cygwin.h: Remove definitions common to cygwin and
8725         mingw.  Simplify special spec logic.  Define "wrappers" around
8726         certain include path defines to accommodate -mno-cygwin.
8727         Remove some #if 0'ed code.
8728         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
8729         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
8730         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
8731         * config/i386/mingw32.h: Remove definitions common to cygwin and
8732         mingw.
8733         (EXTRA_OS_CPP_BUILTINS): Adjust.
8734         (TARGET_VERSION): Define.
8735         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
8736         mingw32.h definitions.
8737         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
8738         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
8739         Add compilation rules for cygwin1.o cygwin2.o.
8740         * config/i386/cygwin1.c: New file.
8741         * config/i386/cygwin2.c: New file.
8742         * config/i386/t-cygming: New makefile stub.
8743
8744 2003-03-20  Richard Henderson  <rth@redhat.com>
8745
8746         * fold-const.c (extract_muldiv_1): Revert changing order of
8747         operands in case MULT_EXPR of 2003-02-16 patch.
8748
8749 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
8750         Merge changes from new-regalloc-branch
8751
8752         From Michael Matz  <matz@suse.de>
8753         * df.c (df_ref_record_1): Move init of loc to safe point.
8754         Only recurse on interesting things in parallels.
8755         Handle CLASS_CANNOT_CHANGE_MODE smarter.
8756         (df_uses_record): Ditto.
8757
8758         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
8759         it's already okay to use memory operands in (IE doesn't require
8760         adding another insn or anything).
8761
8762 2003-03-20  Richard Henderson  <rth@redhat.com>
8763
8764         PR middle-end/6348
8765         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
8766         different from word_mode.
8767
8768 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
8771         source operand to those that can be extracted with bld.
8772
8773 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
8774
8775         PR 10066
8776         * arm.md (UNSPEC_PIC_BASE): New constant.
8777         (pic_add_dot_plus_four): Wrap with unspec.
8778         (pic_add_dot_plus_eight): Likewise.
8779
8780 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8781
8782         * config/h8300/h8300.md (*insv_si_1_n): New.
8783         (*insv_si_1_n_lshiftrt): Likewise.
8784
8785 2003-03-20  Roger Sayle  <roger@eyesopen.com>
8786
8787         * fold-const.c (fold_mathfn_compare): New function to simplify
8788         comparisons against built-in math functions.  Fold comparisons
8789         of sqrt against constants.
8790         (fold): Call fold_mathfn_compare when appropriate.
8791
8792 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
8793
8794         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
8795         information.
8796
8797 2003-03-20  Per Bothner  <pbothner@apple.com>
8798
8799         Various cleanups to help compile server.
8800
8801         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
8802         and pass that to _cpp_init_hashtable.
8803         (cpp_read_main_file):  Drop hash_table* argument; don't call
8804         _cpp_init_hashtable.
8805         * cpplib.h:  Update declarations to match.
8806         * c-opts.c (c_common_init_options):  Pass ident_hash to
8807         cpp_create_reader.
8808         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
8809         * fix-header.c (read_scan_file):  Likewise pass NULL table to
8810         cpp_create_reader rather than cpp_read_main_file.
8811
8812         * cppfiles.c (cpp_rename_file):  Generalized and renamed
8813         to cpp_change_file.
8814         * cpplib.h:  Update declaration to match.
8815         * c-opts.c (push_command_line_line, finish_options):  Change
8816         cpp_rename_file calls to cpp_change_file.
8817
8818         * line-map.c (add_line_map):  Allow leaving the outermost file.
8819         Allowing entering an outermost-file after the initial time.
8820
8821         * toplev.c (pop_srcloc):  Allow popping from initial file.
8822
8823 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
8824
8825         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
8826
8827 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8828
8829         * config/h8300/h8300.md (a peephole2): New.
8830
8831 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8832
8833         * config/h8300/h8300.md (*addsi3_and_r_1): New.
8834         (*addsi3_and_not_r_1): Likewise.
8835
8836 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
8837
8838         * Makefile.in (STRICT2_WARN): Add @WERROR@.
8839         (GCC_WARN_CFLAGS): Remove $(WERROR).
8840         (fixinc.sh-warn): New.
8841         * ada/Make-lang.in (ada-warn): Add $(WERROR).
8842         * cp/Make-lang.in (cp-warn): Add $(WERROR).
8843         * f/Make-lang.in (f-warn): Add $(WERROR).
8844         * java/Make-lang.in (java-warn): Add $(WERROR).
8845         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
8846
8847 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
8848
8849         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
8850         langhooks-def.h (lhd_tree_dump_dump_tree),
8851         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
8852         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
8853         true and false in return statements.
8854
8855 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
8856
8857         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
8858         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
8859         DWARF_INITIAL_LENGTH_SIZE.
8860         (output_compilation_unit_header, output_pubnames, output_aranges)
8861         (output_line_info): Output 0xffffffff escape value for 64-bit
8862         DWARF extension.
8863         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
8864
8865 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
8866
8867         * config/s390/s390.c (s390_preferred_reload_class): Do not
8868         force constants to the pool unless necessary.
8869         (s390_decompose_address): Prefer to use pointer as base,
8870         not index register.
8871         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
8872         Q alternative.
8873         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
8874         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
8875         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
8876         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
8877         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
8878
8879 2003-03-19  Jan Hubicka  <jh@suse.cz>
8880
8881         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
8882         * i386.c (use_fast_prologue_epilogue): Remove.
8883         (ix86_frame): New field save_regs-using_mov;
8884         (ix86_compute_frame_layout):  Decide on fast prologues;
8885         allocate saved registers in red zone.
8886         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
8887
8888 2003-03-19  Nick Clifton  <nickc@redhat.com>
8889
8890         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
8891
8892 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8893
8894         PR 10062
8895         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
8896         * pa-protos.h (output_lbranch): New prototype.
8897         * pa.c (compute_frame_size): Change size of the frame marker on the
8898         64-bit ports to 48 bytes.
8899         (pa_output_function_prologue): Document why SAVE_SP is set.
8900         (hppa_expand_prologue): Save previous stack pointer into frame marker
8901         on targets which use the hpux unwind library.
8902         (output_cbranch): Use output_lbranch.
8903         (output_lbranch): New function to output long unconditional branches.
8904         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
8905         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
8906         64-bit ports.
8907         * pa.md (jump): Use output_lbranch.
8908         (allocate_stack): New expander for dynamic stack allocation.
8909
8910 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
8911
8912         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
8913         when debugging on XCOFF targets.  Delete "abi" temp.
8914
8915         PR target/10073
8916         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
8917
8918 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
8919
8920         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
8921         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
8922         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8923
8924         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
8925         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
8926         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8927
8928 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
8929
8930         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
8931         the result of machopic_function_base_name.
8932         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
8933         string rather than a static array.
8934
8935         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
8936
8937         * gengtype.c: Include rtl.h.
8938         (enum rtx_code): Don't define.
8939         (rtx_format): Make declaration match rtl.h.
8940         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
8941         users.
8942         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
8943         * Makefile.in (gengtype.o): Update dependencies.
8944
8945 2003-03-18  Andreas Schwab  <schwab@suse.de>
8946
8947         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
8948         martin@blom.org.
8949
8950 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
8951
8952         * function.c (next_block_index): Mark with GTY.
8953
8954         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
8955
8956 2003-03-18  Richard Henderson  <rth@redhat.com>
8957
8958         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
8959         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
8960         until after reload.
8961
8962 2003-03-18  Richard Henderson  <rth@redhat.com>
8963
8964         * builtins.c (expand_builtin_unop): New target_mode operand;
8965         use it to convert the result to the correct mode.
8966         (expand_builtin): Update all callers.
8967
8968 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
8969
8970         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
8971
8972 2003-03-18  Jan Hubicka  <jh@suse.cz>
8973
8974         * i386.md:  Fix previous commit that mistakely applied the patch
8975         twice.
8976
8977         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
8978         canonicalized.
8979         (memrefs_conflict_p): Likewise.
8980         (addr_side_effect_eval): Canonicalize the constructed address.
8981
8982 2003-03-18  Jan Hubicka  <jh@suse.cz>
8983
8984         * i386.md (cvtts?2si peep2): New.
8985
8986 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8987
8988         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
8989
8990 2003-03-18  Andreas Schwab  <schwab@suse.de>
8991
8992         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
8993         for format.
8994
8995 2003-03-17  Jason Merrill  <jason@redhat.com>
8996
8997         PR c++/10091
8998         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
8999         an unaligned member of TREE_ADDRESSABLE type.
9000
9001 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
9002
9003         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
9004         (TARGET_PROFILE_KERNEL): Define.
9005         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
9006         (PROFILE_BEFORE_PROLOGUE): Don't define.
9007         (PROFILE_KERNEL): Remove hacks.
9008         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
9009         (rs6000_stack_info): No need to save lr if just for profiling when
9010         TARGET_PROFILE_KERNEL.
9011         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
9012         (output_function_profiler): Localize label generation.  Emit code
9013         for kernel profiling.
9014
9015 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9016
9017         * config/h8300/h8300-protos.h: Add a prototype for
9018         byte_accesses_mergeable_p.
9019         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
9020         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
9021         (a splitter): Likewise.
9022         (*iorsi3_ashift_16_ashift_24): Likewise.
9023         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
9024
9025 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9026
9027         * dwarf2asm.h: Delete obsolete comment.
9028         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
9029         dw2_asm_output_pcrel, dw2_asm_output_addr,
9030         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
9031         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
9032         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
9033         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
9034
9035 2003-03-17  Zack Weinberg <zack@codesourcery.com>
9036
9037         * c-tree.h (struct lang_identifier): Remove error_locus field.
9038         (IDENTIFIER_ERROR_LOCUS): Kill.
9039         (record_function_scope_shadow): New prototype.
9040         * c-typeck.c (build_external_ref): Don't complain if
9041         decl is error_mark_node.  When not at file scope, bind the
9042         decl's local value to error_mark_node to suppress further
9043         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
9044
9045         * c-decl.c (get_function_binding_level): New static function.
9046         (record_function_scope_shadow): New exported function.
9047         (c_make_fname_decl): Use get_function_binding_level.
9048
9049 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
9050
9051         * stmt.c (tail_recursion_args): Call promote_mode to set
9052         unsignedp flag correctly before calling convert_move.
9053
9054 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9055
9056         * loop-unroll.c (decide_peel_completely,
9057         decide_unroll_constant_iterations, decide_unroll_stupid,
9058         decide_unroll_runtime_iterations, decide_peel_simple): Set
9059         loop->has_desc.
9060
9061 2003-03-17  Jan Hubicka  <jh@suse.cz>
9062
9063         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
9064
9065 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
9066
9067         * function.c (assign_parms): For a struct value address passed as
9068         first argument, delay the function's result RTL setup code until
9069         after the emission of parameter conversions.
9070
9071 2003-03-17  Dave Love  <fx@gnu.org>
9072             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9073
9074         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
9075         __arch64__ to match Compaq cc.
9076
9077 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
9078
9079         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
9080         (c_common_init): Set EBCDIC in cpp options.
9081         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
9082         not conditional compilation.
9083         * cpplib.h (struct cpp_options): New entry EBCDIC.
9084
9085 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
9086
9087         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
9088
9089 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9090
9091         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
9092         argument to 0 for redirect_jump.
9093
9094 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
9095
9096         PR c++/8805
9097         * except.c (eh_region_u_cleanup): Add prev_try.
9098         (expand_eh_region_end_cleanup): Set it.
9099         (reachable_handlers): Use it to skip over cleanup blocks.
9100
9101 2003-03-17  Andreas Jaeger  <aj@suse.de>
9102
9103         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
9104
9105 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
9106
9107         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
9108         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
9109         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
9110         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
9111
9112 2003-03-16  Richard Henderson  <rth@redhat.com>
9113
9114         * simplify-rtx (simplify_binary_operation): Don't abort for
9115         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
9116
9117 2003-03-16  Richard Henderson  <rth@redhat.com>
9118
9119         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
9120         optimize_size as well.
9121
9122 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
9123
9124         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
9125         for D register to specify the low part of it, aka B.
9126         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
9127         the register if we are loading 1 or -1 to it; avoid using temp
9128         register when moving X/Y to Y/X.
9129         (m68hc11_gen_movqi): Likewise.
9130         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
9131
9132 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
9133
9134         PR optimization/9016
9135         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
9136         into the constant pool.
9137
9138 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9139
9140         PR target/9164
9141         * tree.c (get_narrower): For extensions with unchanged bit number,
9142         return the unsignedness of the outer mode.
9143
9144 2003-03-16  Roger Sayle  <roger@eyesopen.com>
9145
9146         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
9147         to avoid "may be used uninitialized" warning on ia64-hpux.
9148         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
9149
9150 2003-03-16  Andreas Jaeger  <aj@suse.de>
9151
9152         * configure.in: Improve check for memcheck.h.
9153         * configure: Regenerated.
9154
9155 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
9156
9157         * doc/cppopts.texi: Remove documentation of -A-.
9158
9159 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
9160
9161         * doc/libgcc.texi: Remove @tie.
9162
9163 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
9164
9165         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
9166         (rtx_pair): Added new element update_label_nuses, renamed to
9167         replace_label_data.
9168         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
9169         replace_label_data instead of rtx_pair.
9170         * loop.c (load_mems): Likewise.
9171         * rtlanal.c (replace_label): Replace label in pool constants and in
9172         INSN_LIST (in REG_LABEL note).
9173         (subrtx_p): Renamed to rtx_referenced_p.
9174         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
9175         LABEL_REF with CODE_LABEL, traverse constants from pool.
9176
9177 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
9178             Zack Weinberg  <zack@codesourcery.com>
9179
9180         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
9181         * doc/libgcc.texi: New file.
9182         * doc/interface.texi: Delete paragraph about libgcc interface.
9183         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
9184
9185 2003-03-15  Jason Merrill  <jason@redhat.com>
9186
9187         PR debug/9039
9188         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
9189
9190         PR debug/6387
9191         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
9192         function DIEs at toplevel.
9193         (decls_for_scope): At -g1, don't descend into subblocks.
9194
9195 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
9196
9197         * varasm.c (struct rtx_const): Change type of un.addr member
9198         to struct holding an additional 'symbol' member.
9199         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
9200         with equal string addresses as equal.
9201         (simplify_subtraction): Adapt to struct rtx_const change.
9202
9203 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9204
9205         * fix-header.c (read_scan_file): Read main file before handling -D.
9206
9207 2003-03-15  Roger Sayle  <roger@eyesopen.com>
9208
9209         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
9210         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
9211         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
9212         (find_sub_basic_blocks): Likewise.
9213         * cgraphunit.c (cgraph_expand_functions): Likewise.
9214         * dwarf2out.c (prune_unused_types): Likewise.
9215         * expr.c (store_field): Likewise.
9216         * genextract.c (print_path): Likewise.
9217         * haifa-sched.c (schedule_insn): Likewise.
9218         * lcm.c (compute_antinout_edge): Likewise.
9219         * loop-unroll.c (decide_peel_once_rolling): Likewise.
9220         * ra-colorize.c (ra_colorize_free_all): Likewise.
9221         * ra-debug.c (dump_igraph): Likewise.
9222         (debug_hard_reg_set): Likewise.
9223         * reg-stack.c (reg_to_stack): Likewise.
9224         * rtlanal.c (refers_to_regno_p): Likewise.
9225         * tracer.c (layout_superblocks): Likewise.
9226
9227 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9228
9229         * fix-header.c (read_scan_file): Fix thinko.
9230
9231 2003-03-15  Glen Nakamura  <glen@imodulo.com>
9232
9233         * reload1.c (choose_reload_regs): Use && instead of ||
9234         with REG_CANNOT_CHANGE_MODE_P condition.
9235
9236 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9237
9238         * Makefile.in: Update.
9239         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
9240         * c-lex.c (init_c_lex): Register builtins hook is dead.
9241         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
9242         (c_common_decode_option): Don't call cpp_handle_option.
9243         Handle -A, -D and -U.
9244         (handle_deferred_opts): Simplify.
9245         (finish_options): Define builtins and command line macros.
9246         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
9247         * cppinit.c: Don't include intl.h.
9248         (init_builtins): Rename cpp_init_builtins.  No hook to call.
9249         (init_library): Don't need to sort options.
9250         (cpp_create_reader): Don't set pending.
9251         (cpp_destroy): Don't free pending.
9252         (struct pending_option, cl_directive_handler, struct cpp_pending,
9253         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
9254         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
9255         cl_options, cpp_handle_option): Remove.
9256         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
9257         cpp_finish_options): Remove.
9258         (cpp_init_builtins): New.
9259         * fix-header.c (read_scan_file): Update to handle -D.  Fix
9260         handling of -I.  Replace call to cpp_finish_options.
9261
9262 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9263
9264         PR optimization/9387
9265         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
9266         for conditional returns.
9267
9268 2003-03-14  Jason Merrill  <jason@redhat.com>
9269
9270         PR optimization/6871
9271         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
9272
9273 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
9274
9275         * c-opts.c (finish_options): New.
9276         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
9277         (missing_arg): Handle OPT_include and OPT_imacros.
9278         (c_common_init, c_common_parse_file): Use finish_options.
9279         (handle_deferred_opts): Update.
9280         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
9281         (cpp_finish_options): Don't handle -imacros here.
9282         (no_fil): Remove.
9283         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
9284
9285 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
9286
9287         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
9288         rs6000_maybe_dead if !fromprolog.
9289
9290 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
9291
9292         * Makefile.in: Update.
9293         * c-common.h (fe_file_change, pp_file_change): New.
9294         * c-lex.c (init_c_lex): Don't set cb_file_change.
9295         (c_common_parse_file): Move to c-opts.c.
9296         (cb_file_change): Rename fe_file_change.
9297         * c-opts.c: Include debug.h.
9298         (warn_unused_macros, include_cursor): New.
9299         (push_command_line_include, cb_file_change): New.
9300         (COMMAND_LINE_OPTIONS): Handle -include.
9301         (c_common_decode_option): Use local warn_unused_macros.
9302         Handle OPT_include.
9303         (c_common_post_options): Set file change callback.
9304         (handle_deferred_opts): Skip -include.  Don't free the array.
9305         (c_common_init): Call cpp_finish_options here, and push an
9306         initial -include file.
9307         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
9308         (preprocess_file): Don't call cpp_finish_options.
9309         (init_pp_output): Don't set the file change callback.
9310         (pp_file_change): Return if no line commands or no output.
9311         * cpphash.h (next_include_file, first_unused_line): Remove.
9312         * cppinit.c (include_head, include_tail): Remove.
9313         (cpp_destroy): Don't free -include chain.
9314         (cpp_finish_options): Don't handle -include, or worry about
9315         -Wunused-macros.
9316         (_cpp_maybe_push_include_file): Remove.
9317         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
9318         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
9319         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
9320         Used flag is set based upon the state of the warn_unused_macros
9321         flag, and so use of first_unused_line is unnecessary.
9322
9323 2003-03-13  Jan Hubicka  <jh@suse.cz>
9324
9325         * cselib.c (clear_table): Do not take argument; always clear just
9326         used slots.
9327         (cselib_process_insn):  Update call of clear_table
9328         (cselib_init): Do not call clear_table.
9329         (cselib_finish): Clear table.
9330
9331         * cse.c (count_reg_usage): Do not check side_effects_p.
9332         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
9333         like noop.
9334         (find_reg_equal_equiv_note): Do not use find_reg_note.
9335
9336 2003-03-14  Richard Henderson  <rth@redhat.com>
9337
9338         PR target/9700
9339         * config/alpha/alpha.c (alpha_va_start): Account for
9340         current_function_pretend_args_size in the AP offset.
9341
9342         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
9343         (INITIAL_ELIMINATION_OFFSET): Move out of line.
9344         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
9345         (alpha_initial_elimination_offset) New.
9346         * config/alpha/alpha-protos.h: Update.
9347
9348 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
9349
9350         * stmt.c (expand_start_case): Call emit_queue ().
9351
9352 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
9353             Alexandre Oliva  <aoliva@redhat.com>
9354
9355         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
9356         words in new abis.
9357
9358 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
9359
9360         PR optimization/8396
9361         * tree-inline.c (initialize_inlined_parameters): Make sure the value
9362         of read-only constant arguments is passed with the right type.
9363
9364 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
9365
9366         * doc/extend.texi (Function Names): Make the example compilable.
9367
9368 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
9369
9370         * config/rs6000/rs6000.c (processor_target_table): Really allow
9371         GP optional instructions on Power4.
9372
9373 2003-03-13  Roger Sayle  <roger@eyesopen.com>
9374
9375         * calls.c (flags_from_decl_or_type): Factor and remove redundant
9376         conditional tests.
9377
9378 2003-03-13  Mike Stump  <mrs@apple.com>
9379
9380         * ggc-page.c (struct page_entry): Remove varray.h header.
9381         Add index_by_depth field.
9382         Remove save_in_use_p field.
9383         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
9384         by_depth_max, by_depth, and save_in_use fields.
9385         (INITIAL_PTE_COUNT): Add.
9386         (save_in_use_p_i): Add.
9387         (save_in_use_p): Add.
9388         (adjust_depth): Add.
9389         (move_ptes_to_front): Add.
9390         (push_depth): Add.
9391         (push_by_depth): Add.
9392         (prefetch): Add.
9393         (free_page): Add support for and use faster data structures.
9394         (ggc_alloc): Likewise.
9395         (init_ggc): Likewise.
9396         (ggc_recalculate_in_use_p): Likewise.
9397         (ggc_pop_context): Likewise.
9398         (clear_marks): Likewise.
9399         (ggc_pch_read): Likewise.
9400         * Makefile.in (ggc-page.o): Remove varray.h.
9401
9402 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
9403
9404         * ChangeLog: Rotated last year's entries to...
9405         * ChangeLog.8: New.
9406
9407         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
9408         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
9409         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
9410         config/ia64/ia64-protos.h, config/ia64/ia64.c,
9411         config/ia64/ia64.h, config/ia64/ia64.md,
9412         config/ia64/itanium1.md, config/ia64/itanium2.md,
9413         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
9414         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
9415
9416 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
9417
9418         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
9419         Differentiate endianness.
9420         (s6000_override_options): Use cpu type instead of TARGET_SPE.
9421
9422 2003-03-13  Nick Clifton  <nickc@redhat.com>
9423
9424         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
9425         LDM instructions with writeback enabled.
9426         (output_return_instruction): Likewise.
9427
9428         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
9429         (CALL_USED_REGISTERS): Remove definition.
9430         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
9431
9432 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
9433
9434         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
9435         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
9436         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
9437         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
9438         (rs6000_legitimize_address): Formatting.
9439         (rs6000_emit_move): Likewise.
9440         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
9441         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
9442         (rs6000_elf_select_section): Comment reason for shlib being
9443         set for ABI_AIX.
9444         (rs6000_elf_unique_section): Likewise.
9445         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
9446         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
9447         as well as flag_pic.
9448         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
9449         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
9450         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
9451
9452 2003-03-13  Richard Henderson  <rth@redhat.com>
9453
9454         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
9455
9456         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
9457         (ia64_gp_save_reg): Remove.
9458         (struct ia64_frame_info): Move to the beginning of the file;
9459         add reg_save_gp.
9460         (ia64_expand_call): Rearrange for new call patterns.
9461         (ia64_reload_gp): New.
9462         (ia64_split_call): New.
9463         (ia64_compute_frame_size): Allocate reg_save_gp.
9464         (ia64_expand_prologue): Save reg_save_gp.
9465         (ia64_expand_epilogue): Don't restore gp.
9466         (ia64_hard_regno_rename_ok): Remove R4 hack.
9467         (ia64_function_ok_for_sibcall): New.
9468         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
9469         call try_split on sibcall pattern.
9470         * config/ia64/ia64-protos.h: Update.
9471         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
9472         Rename from nopic versions.  Confiscate 2nd argument to call as
9473         a marker.
9474         (call_pic, call_value_pic, sibcall_pic): Remove.
9475         (call_gp, call_value_gp, sibcall_gp): New.
9476         (builtin_setjmp_setup): Remove.
9477         (builtin_setjmp_receiver): Call ia64_reload_gp.
9478
9479 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9480
9481         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
9482         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
9483         "GNU CC" with "GCC".
9484
9485         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
9486         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
9487         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
9488         GCC, not GNU CC.
9489
9490         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
9491         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
9492
9493         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
9494         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
9495         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
9496         "GNU CC" with "GCC".
9497
9498         * config/v850/lib1funcs.asm, config/v850/rtems.h,
9499         config/v850/v850-c.c, config/v850/v850-protos.h,
9500         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
9501         GCC, not GNU CC.
9502
9503         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
9504         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
9505         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
9506         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
9507         GNU CC.
9508
9509 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
9510
9511         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
9512
9513 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9514
9515         * fixinc/fixinc.interix: Remove dead code (most of it).
9516         * fixinc/fixinc.dgux: Remove.
9517
9518         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
9519         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
9520
9521 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9522
9523         * pa.c (pa_init_builtins): Fix warning.
9524
9525 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
9526
9527         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
9528         (ASM_OUTPUT_XDATA_SHORT): Remove.
9529         (ASM_OUTPUT_XDATA_INT): Remove.
9530         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
9531         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
9532         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
9533         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
9534
9535 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
9536
9537         PR c++/7050
9538         * expr.c (store_expr): Don't attempt to store void-typed trees,
9539         just evaluate them for side effects.
9540
9541 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
9542
9543         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
9544         * cppinit.c (push_include): Move with changes to cppfiles.c.
9545         (cpp_read_main_file): Mark named operators here...
9546         (cpp_finish_options): ...not here.  Update.
9547         (_cpp_maybe_push_include_file): Update.
9548         * cpplib.h (cpp_push_include, cpp_rename_file): New.
9549
9550 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9551
9552         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
9553         _gcc_COMPUTE_GAS_VERSION.
9554         * configure.in: Use them.
9555         * configure: Regenerate.
9556
9557 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
9558
9559         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
9560         to detect carry.
9561         (subdi3): Reorder emitted instructions.
9562
9563 2003-03-12  Andreas Jaeger  <aj@suse.de>
9564
9565         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
9566         NETBSD_OS_CPP_BUILTINS_LP64.
9567
9568 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9569
9570         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
9571         Rearrange.  Reorganize.
9572         * configure.in: Rearrange.
9573         * configure: Regenerate.
9574
9575 2003-03-12  Andreas Jaeger  <aj@suse.de>
9576
9577         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
9578         LP64 targets.
9579
9580         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
9581         _LP64.
9582
9583         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
9584         _LP64 macros here.
9585         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
9586
9587         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
9588         NETBSD_OS_CPP_BUILTINS_LP64.
9589         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
9590         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
9591
9592         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
9593
9594 2003-03-12  Jan Hubicka  <jh@suse.cz>
9595
9596         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
9597
9598 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
9599
9600         Fix PR target/9797 and PR c/9853.
9601         * stmt.c (expand_decl_init): Call push_temp_slots () and
9602         pop_temp_slots ().
9603
9604 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
9605
9606         * sh.c: Include basic-block.h.
9607         (sh_output_mi_thunk, emit_load_ptr): New functions.
9608         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
9609
9610 2003-03-12  Nick Clifton  <nickc@redhat.com>
9611
9612         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
9613         (CALL_USED_REGISTERS): Likewise.
9614         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
9615         describing how this value is calculated.
9616
9617 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
9618
9619         * configure.in (rlim_t): Define to long if no valid definition
9620         found in sys/resource.h.
9621         * config.in, configure: Regenerate.
9622
9623 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
9624
9625         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
9626         TARGET_OS_CPP_BUILTINS.
9627         * config/mcore/mcore-pe.h: Similarly.
9628         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
9629         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
9630
9631 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9632
9633         PR c/9928
9634         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
9635         only if it is a VAR_DECL.
9636
9637 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9638
9639         PR optimization/9888
9640         * config/i386/i386.md (jcc_1): Fix range.
9641         (jcc_2): Likewise.
9642         (jump): LIkewise.
9643         (doloop_end_internal): Likewise.
9644
9645 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9646
9647         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
9648         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
9649         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
9650         DLL_IMPORT_EXPORT_PREFIX and "i."
9651         (i386_pe_dllexport_name_p): Here.
9652         (i386_pe_dllimport_name_p): Here.
9653         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
9654         not 9 chars when getting identifier name.
9655         (i386_pe_mark_dllimport): Here.
9656         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
9657         not 9 chars when getting identifier name. Correct comment.
9658         (i386_pe_strip_name_encoding): Here. Add comments for different
9659         cases.
9660         (gen_fastcall_suffix): Break down xmalloc() argument to
9661         components.
9662         (gen_stdcall_suffix): Likewise.
9663         Update copyright year.
9664
9665 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9666
9667         PR optimization/9888
9668         * config/i386/i386.md (movsi_1): Remove special alternatives
9669         for %eax register.
9670         (movsi_1_nointernunit): Likewise.
9671         (movhi_1): Likewise.
9672         * config/i386/i386.c (memory_address_length): Do not use
9673         short displacement when there is no base.
9674         (ix86_attr_length_address_default): Handle LEA instructions.
9675
9676 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
9677
9678         * c-cppbuiltin.c (builtin_define_std): Make non-static.
9679
9680 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
9681
9682         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
9683         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
9684         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
9685         * config/freebsd.h (CPP_PREDEFINES): Remove.
9686         (TARGET_OS_CPP_BUILTINS): New.
9687         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
9688         instead of TARGET_OS_CPP_BUILTINS.
9689         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
9690
9691 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
9692
9693         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
9694
9695 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
9696
9697         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
9698         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
9699
9700         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
9701
9702 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
9703
9704         * toplev.c (independent_decode_option): Return success for --help,
9705         --target-help and --version.
9706
9707 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
9708
9709         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
9710         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
9711         specified.
9712         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
9713         DRIVER_SELF_SPECS.
9714         (LINK_SPEC): Let endian options affect the linker emulation name.
9715
9716 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
9717
9718         * sh.md (reload_inqi): Fix mode for source in second set.
9719
9720 2003-03-11  Jan Hubicka  <jh@suse.cz>
9721
9722         * cselib.c (cselib_invalidate_mem_1): Move too ...
9723         (cselib_invalidate_mem): ... here; use new list
9724         (dummy_val, first_containing_mem): New static variables.
9725         (clear_table): Initialize first_containing_mem.
9726         (discard_useless_values):  Compact the containing_mem list.
9727         (add_mem_for_addr): Add to the list.
9728         * cselib.h (cselib_val): Add next_containing_mem.
9729
9730 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
9731
9732         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
9733         instructions for e500.
9734
9735 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
9736
9737         * Makefile.in: Update.
9738         * c-cppbuiltin.c: Include tm_p.h.
9739
9740 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
9741
9742         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
9743
9744         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
9745         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
9746         (_Unwind_SetGR): Same.
9747         (_Unwind_GetGRPtr): New.
9748         (_Unwind_SetGRPtr): New.
9749         (uw_update_context_1): Use accesor functions instead of accessing
9750         context->reg[] directly.
9751         (uw_install_context_1): Same.
9752         (execute_cfa_program): Same.
9753         (__frame_state_for): Same.
9754
9755         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
9756         the synthetic register offset.
9757
9758         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
9759
9760 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
9761
9762         * config/cris/cris.md: Remove lingering EGCS reference.
9763         ("*extopqihi_side_biap"): For HI operation, match
9764         cris_additive_operand_extend_operator, not
9765         cris_operand_extend_operator.  Adjust condition.
9766         ("*extopqihi_side", "*extopqihi"): Ditto.
9767         ("*extopqisi_side_biap"): Correct operand numbers in condition.
9768         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
9769         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
9770         ("*extophisi_swap"): Ditto.
9771         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
9772         PLUS, not cris_operand_extend_operator.  Adjust condition and
9773         output template.
9774         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
9775         * config/cris/cris.h (PREDICATE_CODES): Add
9776         cris_additive_operand_extend_operator.
9777         * config/cris/cris.c (cris_additive_operand_extend_operator):
9778         New predicate.
9779
9780 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
9781
9782         * df.c (read_modify_subreg_p): Change from static to global.
9783         * df.h (read_modify_subreg_p): Add prototype.
9784         * sched-deps.c (sched_analyze_1): Generate true dependency for
9785         strict_low_part, certain subregs and zero/sign_extract.
9786
9787 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
9788
9789         * Makefile.in: Update.
9790         * c-common.c: Don't include real.h or except.h.
9791         (REGISTER_PREFIX): Remove.
9792         (builtin_define_std, builtin_define_with_value,
9793         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
9794         builtin_define_type_max, builtin_define_type_precision,
9795         builtin_define_float_constants): Move to c-cppbuiltin.c.
9796         (c_stddef_cpp_builtins): New.
9797         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
9798         * c-cppbuiltin.c: New, extracted from c-common.c.
9799         (define__GNUC__): New.
9800         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
9801         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
9802         (cpp_unique_options): Don't support no-gcc.
9803         (do_spec_1): Remove support of version specs.
9804         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
9805         * doc/passes.texi: Update.
9806         * doc/tm.texi: Update.
9807
9808 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
9809
9810         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
9811
9812 2003-03-10  Andrew Pinski  <apinski@apple.com>
9813
9814         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
9815         is on should not get here.
9816         (machopic_indirect_data_reference): If dynamic-no-pic is on just
9817         generate high/low parts of the address.
9818         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
9819         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
9820         symbol and labels with a new reg.  Dynamic-no-pic does not have a
9821         pic_offset_table_rtx.
9822         (machopic_select_section): Change references of flag_pic to
9823         MACHOPIC_INDIRECT.
9824         (machopic_asm_out_destructor): Likewise.
9825         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
9826         reference of flag_pic to MACHOPIC_INDIRECT.
9827         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
9828         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
9829         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
9830         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
9831         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
9832         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
9833         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
9834         (TARGET_DYNAMIC_NO_PIC): Define.
9835         (SUBTARGET_SWITCHES): Define, have sub-target switches for
9836         dynamic-no-pic.
9837         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
9838         rs6000_override_options to here. Dynamic-no-pic overrides
9839         pic.
9840         (CC1_SPEC): Change from not static then pic to not static and not
9841         dynamic-no-pic then pic.
9842         * config/rs6000/rs6000.c (rs6000_override_options): Move the
9843         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
9844         (rs6000_legitimize_reload_address): Add case for loading floating in
9845         dynamic-no-pic.
9846         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
9847         of flag_pic to MACHOPIC_INDIRECT.
9848         (secondary_reload_class): Conditional change the reference of
9849         flag_pic to MACHOPIC_INDIRECT.
9850         (rs6000_output_mi_thunk): Change reference of flag_pic to
9851         MACHOPIC_INDIRECT.
9852         (output_profile_hook): Likewise.
9853         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
9854         * config/rs6000/rs6000.md (movdf_low): Add the case for
9855         MACHO_DYNAMIC_NO_PIC_P.
9856         (call): Change references for flag_pic in TARGET_MACHO to
9857         MACHOPIC_INDIRECT.
9858         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
9859         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
9860         * doc/invoke.texi (-mdynamic-no-pic): Document.
9861
9862 2003-03-10  Devang Patel  <dpatel@apple.com>
9863
9864         PR c++/9394
9865         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
9866         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
9867         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
9868         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
9869         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
9870         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
9871
9872 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
9873
9874         PR optimization/7189
9875         * toplev.c (rest_of_compilation):  Move
9876         check_function_return_warnings up to just after
9877         delete_unreachable_blocks.
9878
9879 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
9880
9881         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
9882         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
9883         Declare.
9884         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
9885         for reg rename optimization to avoid using Z and Y registers.
9886
9887 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
9888
9889         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
9890         when adding to X and Y since leax/leay are fast.
9891         ("*addhi3"): Accept 'I' constraint when adding to address register.
9892         ("rotlhi3"): Operand 1 must be a register_operand.
9893         (peephole2): New peephole to optimize some adds.
9894         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
9895         to represent -2 .. 2 small integer range.
9896
9897 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
9898
9899         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
9900         each 16-bit rotation.
9901
9902 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
9903
9904         * c-opts.c (add_prefixed_path): Don't use concat.  When
9905         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
9906         cpp_GCC_INCLUDE_DIR_len characters.
9907
9908 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
9909
9910         * testsuite/gcc.dg/altivec-9.c: New file.
9911
9912         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
9913         (rs6000_emit_prologue): Use rs6000_frame_related instead.
9914
9915 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
9916
9917         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
9918         vectors.
9919         (__ev_convert_u64): Remove macro.  Define as inline.
9920         (__ev_convert_s64): Same.
9921
9922 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
9923
9924         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
9925         (rs6000_stack_t): Add spe_64bit_regs_used.
9926
9927         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
9928         spe_64bit_regs_used, and use it to determine the size of the
9929         frame.
9930         (spe_func_has_64bit_regs_p): New.
9931         (spe_synthesize_frame_save): New.
9932         (rs6000_frame_related): Handle SPE synthetic registers.
9933         (rs6000_emit_prologue): Only save in 64-bits if the function used
9934         any registers in 64-bit mode.
9935         (rs6000_emit_epilogue): Same, but for restore.
9936
9937 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
9938
9939         * arm.h (enum floating_point_type): Delete.  Replace with...
9940         (enum fputype): ... new.
9941         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
9942         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
9943         * arm.md (attr fpu): Reworked for new underlying enum values.
9944         * arm.c (arm_fpu_arch): Now enum fputype.
9945         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
9946         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
9947         Update uses of arm_fpu_arch and arm_fpu_tune.
9948
9949 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
9950
9951         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
9952         (try_crossjump_to_edge): Replace refereces to one jump table by
9953         references to identical jump table.
9954         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
9955         (replace_label): Moved to rtlanal.c.
9956         (struct rtx_pair): Moved to rtl.h.
9957         * rtl.h (struct rtx_pair): Moved from loop.c.
9958         (replace_label): New extern function.
9959         (subrtx_p): New extern function.
9960         (tablejump_p): New extern function.
9961         * rtlanal.c (replace_label): Moved from loop.c.
9962         (subrtx_p_1): New static function.
9963         (subrtx_p): New function.
9964         (tablejump_p): New function.
9965
9966 2003-03-10  Jan Hubicka  <jh@suse.cz>
9967
9968         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
9969
9970         * cfgcleanup.c (merge_blocks): Return where to iterate next.
9971         (try_optimize_cfg): Use return value of merge_blocks
9972
9973 2003-03-10  Michael Matz  <matz@suse.de>
9974
9975         * cfg.c (unchecked_make_edge): New.
9976         (cached_make_edge): Use it.
9977         * basic-block.h (unchecked_make_edge): Declare.
9978         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
9979
9980 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
9981
9982         * fpa.md: New file.  Move all patterns relating to FPA co-processor
9983         to here...
9984         * arm.md: ... from here.
9985         (cirrus.md, fpa.md): Include at end of description.
9986         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
9987         (pic_load_addr_based): Remove register constraint from expander.
9988         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
9989         (sordered, sungt, sunle, sunge, sunlt): Likewise.
9990         (eh_epilogue, tablejump): Likewise.
9991
9992 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9993
9994         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
9995         on operands if it has a PLACEHOLDER_EXPR.
9996
9997 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
9998             Mostafa Hagog
9999
10000         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
10001         condition.
10002
10003 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
10004
10005         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
10006         * config/ip2k/ip2k.h: Similarly.
10007         * config/m32r/m32r.h: Similarly.
10008         * config/m68hc11/m68hc11.h: Similarly.
10009         * config/mn10200/mn10200.h: Similarly.
10010         * config/mn10300/mn10300.h: Similarly.
10011         * config/pdp11/pdp11.h: Similarly.
10012         * config/v850/v850.h: Similarly.
10013         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
10014         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
10015         * config/mips/iris3.h: Remove #if 0 block.
10016
10017 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10018             Joern Rennecke <joern.rennecke@superh.com>
10019
10020         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
10021         pending argument upon return from handle_braces here.
10022         (do_spec_2): Instead handle it upon return from do_spec_1 here.
10023
10024 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10025             Joern Rennecke <joern.rennecke@superh.com>
10026
10027         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
10028         pending argument upon return from handle_braces here.
10029         (do_spec_2): Instead handle it upon return from do_spec_1 here.
10030
10031 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10032
10033         * varasm.c (make_decl_one_only): Use declare_weak().
10034
10035 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10036
10037         PR middle-end/9986
10038         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
10039         after the common builtins.
10040         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
10041         * pa.c (TARGET_INIT_BUILTINS): Define.
10042         (pa_init_builtins): New function.
10043
10044         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
10045         space has been allocated for the outgoing arguments, set the arg
10046         pointer for a call emitted after virtuals have been instantiated
10047         using the stack pointer offset, otherwise abort.
10048
10049 2003-03-09  DJ Delorie  <dj@redhat.com>
10050
10051         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
10052
10053 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
10054
10055         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
10056         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
10057         conversion to integer.
10058         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
10059
10060 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10061
10062         * builtins.def: Fix typo and improve grammar.
10063         * loop-unroll.c (decide_peel_completely): Tidy log message.
10064
10065 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10066
10067         * config/h8300/h8300.md (*tstsi_upper_bit): New.
10068         (*iorsi3_e2f): Likewise.
10069
10070 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10071
10072         * config/h8300/h8300.c (h8300_and_costs): Return the number of
10073         assembly instructions needed.
10074         (h8300_shift_costs): Likewise.
10075
10076 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
10077
10078         * config/cris/aout.h (ENDFILE_SPEC): Undef.
10079
10080         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
10081         moves from here ...
10082         * expr.c (emit_move_insn_1): ... to here.
10083
10084         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
10085         (TARGET_OS_CPP_BUILTINS): New macro.
10086         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
10087         (TARGET_OS_CPP_BUILTINS): New macro.
10088         (CPP_PREDEFINES): Don't define.  Move old definitions and...
10089         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
10090         (TARGET_CPU_CPP_BUILTINS): New macro.
10091         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
10092         definitions and the optional __PIC__, __pic__ and
10093         __NO_UNDERSCORES__ definitions to...
10094         (TARGET_OS_CPP_BUILTINS): New macro.
10095
10096         * flags.h (flag_leading_underscore): Declare.
10097
10098         * c-opts.c (c_common_post_options): On fopen failure, return
10099         false, not NULL.
10100
10101 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10102
10103         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
10104         config.h.
10105         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
10106         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
10107
10108 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10109
10110         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
10111         CPP_PREDEFINES.
10112         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
10113         CPP_PREDEFINES.
10114
10115 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10116
10117         * c-common.h (c_common_init, c_common_post_options): Update.
10118         * c-objc-common.c (c_objc_common_init): Update for new prototype.
10119         * c-opts.c (saved_lineno): New.
10120         (c_common_post_options, c_common_init): Update prototypes,
10121         move call to cpp_read_main_file from latter to former.
10122         * c-tree.h (c_ojbc_common_init): Update.
10123         * langhooks-def.h (lhd_post_options): New.
10124         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
10125         * langhooks.c (lhd_post_options): New.
10126         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
10127         * toplev.c (no_backend): New.
10128         (process_options): Call post_options hook and set main_input_filename
10129         and input_filename here.
10130         (lang_dependent_init, do_compile): post_options hook moved to
10131         process_options.
10132         * objc/objc-act.c (objc_init): Update prototype.
10133         * objc/objc-act.h (objc_init): Update prototype.
10134
10135 2003-03-08  Roger Sayle  <roger@eyesopen.com>
10136
10137         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
10138         a complex or vector type, using a load in the original mode.
10139
10140 2003-03-08  Jan Hubicka  <jh@suse.cz>
10141
10142         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
10143         * gt-cgraph.h: New GC file.
10144         * cgraph.c (known_fns): New static variable.
10145         (cgraph_node): Add the decl into varray.
10146
10147 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10148
10149         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
10150
10151 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
10152
10153         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
10154         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
10155         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
10156         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
10157         All callers changed.
10158         * arm.md, arm.h, arm-protos.h: Updated.
10159
10160         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
10161         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
10162         * arm.c (arm_regno_class, f_register_operand): Updated.
10163
10164 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10165
10166         * config/cris/cris.h: Remove EGCS references.
10167         (CPP_SPEC): Remove "-$".
10168         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
10169
10170 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10171
10172         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
10173         preference to CPP_PREDEFINES.
10174
10175 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10176
10177         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
10178
10179 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10180
10181         * config/h8300/h8300.md (*extzv_16_8): New.
10182
10183 2003-03-08  Jan Hubicka  <jh@suse.cz>
10184
10185         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
10186         * cgraph.h: (cgraph_local_info): Add can_inline_once
10187         (cgraph_global_info): Add inline_once.
10188         (cgraph_node): Add previous.
10189         (cgraph_remove_node): New.
10190         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
10191         function.
10192         (cgraph_optimize): Call it.
10193         (cgraph_finalize_function):  Set inlinable flags.
10194         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
10195         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
10196         (cgraph_expand_function): Likewise.
10197         * cgraph.c
10198         (cgraph_node): Put nodes into doubly linked chain.
10199         (cgraph_remove_node): New function.
10200         * flags.h (flag_inline_functions_called_once): Declare.
10201         * tree-inline.c: Include cgraph.h
10202         (inlinable_functions_p): Add extra argument to bypass limits.
10203         (expand_call_inline):  Obey cgraph flag.
10204         * tree-inline.h (tree_inlinable_function_p): Update prototype.
10205
10206 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10207
10208         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
10209         irreducible loops.
10210
10211         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
10212         loops info correctly.
10213
10214 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
10215
10216         PR middle-end/7796
10217         * unroll.c (calculate_giv_inc): Handle constants being
10218         loaded with LSHIFTRT.
10219
10220 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
10221
10222         * config/rs6000/rs6000.c (processor_target_table): Do not disable
10223         GP optional instructions on Power3, Power4, 620, and 630.
10224
10225 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10226
10227         * calls.c: Fix comment formatting.
10228         * cfgloopanal.c: Likewise.
10229         * cfgloopmanip.c: Likewise.
10230         * combine.c: Likewise.
10231         * dwarf2out.c: Likewise.
10232         * ggc-common.c: Likewise.
10233         * langhooks.c: Likewise.
10234         * loop-unroll.c: Likewise.
10235         * loop.c: Likewise.
10236         * ra-build.c: Likewise.
10237         * sbitmap.c: Likewise.
10238         * toplev.c: Likewise.
10239
10240 2003-03-07  James E Wilson  <wilson@tuliptree.org>
10241
10242         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
10243
10244 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
10245
10246         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
10247         support -no-integrated-cpp.
10248
10249         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
10250         than langhooks.name.
10251
10252 2003-03-07  Michael Matz  <matz@suse.de>
10253
10254         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
10255         (DF_FOR_REGALLOC): New.
10256         * df.c (df_ref_record): Set DF_REF_STRIPPED.
10257         (read_modify_subreg_p): Simplify.
10258         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
10259         Use DF_FOR_REGALLOC.
10260         * ra.h (struct web): New member subreg_stripped.
10261         (invalid_mode_change_regs): Declare.
10262         * ra.c (invalid_mode_change_regs): New.
10263         (init_ra): Initialize it.
10264         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
10265         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
10266         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
10267         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
10268         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
10269
10270 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
10271
10272         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
10273         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
10274         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
10275         machine description file from ...
10276         * cirrus.md: ... here.
10277
10278 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10279
10280         * config/h8300/h8300.md (a peephole2): Don't use
10281         reg_overlap_mentioned_p.
10282
10283 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
10284
10285         * c-pch.c: Include langhooks.h.
10286         (IDENT_LENGTH): New.
10287         (get_ident): New.
10288         (pch_ident): Delete.
10289         (pch_init): Use get_ident, IDENT_LENGTH.
10290         (c_common_valid_pch): Likewise.  Also, use actual language
10291         in warning message.
10292         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
10293
10294         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
10295         c-parse.in.
10296         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
10297         gt-objc-objc-act.h.
10298         (gt-objc-objc-act.h): New rule.
10299         * objc/lang-specs.h: Support PCH.
10300         * objc/objc-act.c: Include gt-objc-objc-act.h.
10301         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
10302         (build_selector_reference_decl): Move idx out, mark for PCH.
10303         (build_class_reference_decl): Likewise.
10304         (build_objc_string_decl): Move *_idx out, mark for PCH.
10305         (build_tmp_function_decl): Move xxx out, mark for PCH.
10306
10307 2003-03-06  Dale Johannesen  <dalej@apple.com>
10308
10309         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
10310         global functions for inlining on Darwin.
10311
10312 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
10313
10314         * haifa-sched.c (schedule_block): Don't call reorder when sorting
10315         is prohibited.
10316
10317 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
10318
10319         * Makefile.in (c-ppoutput.o): Update.
10320         * c-common.h (init_pp_output): New.
10321         (preprocess_file): Update.
10322         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
10323         Register builtins.
10324         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
10325         Make call to cpp_read_main_file common to whether preprocessing
10326         or not.  Don't register builtins.
10327         * c-ppoutput.c: Include c-pragma.h.
10328         (setup_callbacks): Rename init_pp_output.
10329         (preprocess_file): No longer setup callbacks or call
10330         cpp_read_main_file.
10331         * cpphash.h (_cpp_init_mbchar): New.
10332         * cppinit.c (init_library): Call _cpp_init_mbchar.
10333         * cpplex.c (_cpp_init_mbchar): New.
10334
10335 2003-03-06  Roger Sayle  <roger@eyesopen.com>
10336
10337         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
10338         MEM, try loading the MEM into a register and taking the low-part
10339         of that, to help CSE see the use of the MEM in its true mode.
10340
10341 2003-03-05  Tom Tromey  <tromey@redhat.com>
10342
10343         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
10344         Define.
10345
10346 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
10347
10348         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
10349         operand 2.
10350         ("*ineqbranchsi"): Likewise.
10351
10352 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
10353
10354         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
10355         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
10356         register store followed by a stack increment.
10357
10358 2003-03-05  Chris Moller  <cmoller@redhat.com>
10359
10360         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
10361         to inhibit saving CARRY_REGS.
10362
10363         * config/stormy16/stormy16.c (xs_hi_general_operand):
10364         added predicate to detect and error-out on out-of-range
10365         const_ints for movhi.
10366         * config/stormy16/stormy16.md (movhi): use
10367         xs_hi_general_operand.
10368
10369         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
10370         added a check for local vbl size overflow.
10371         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
10372         added predicate to detect and error-out on out-of-range
10373         const_ints for addhi and subhi.
10374         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
10375         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
10376
10377         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10378         add a term to accept PRE_MODIFY addresses.
10379         * config/stormy16/stormy16.c (xstormy16_expand_move):
10380         add code to expand PRE_MODIFY addresses to an add followed
10381         by a move.
10382
10383 2003-03-06  Jason Merrill  <jason@redhat.com>
10384
10385         * tree-inline.c (inlinable_function_p): Revert earlier change
10386         pending investigation.
10387
10388 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10389
10390         * config/h8300/h8300.md (a new peephole2): New.
10391
10392 2003-03-06  Jan Hubicka  <jh@suse.cz>
10393
10394         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
10395
10396 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10397
10398         * dwarf2out.c (size_of_die): Compute size of external reference to
10399         die correctly.
10400
10401 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
10402
10403         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
10404         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
10405         expanders.
10406
10407 2003-03-05  Roger Sayle  <roger@eyesopen.com>
10408
10409         * expr.h (lang_expand_expr): Delete obsolete prototype.
10410
10411 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10412
10413         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
10414
10415 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10416
10417         * config/h8300/h8300.md (a peephole2): Generalize to
10418         accept a memory operand.
10419
10420 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
10421
10422         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
10423         * config/alpha/alpha.c (print_operand, case '+'): New.
10424         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
10425         (call_value_osf_1_noreturn): Likewise.
10426
10427 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10428
10429         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
10430         (expand_end_bindings): Likewise.
10431
10432 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10433
10434         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
10435         (epilogue): Don't generate return_external_pic when emitting PA 2.0
10436         code.
10437
10438 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
10439
10440         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
10441
10442         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
10443
10444         * hooks.c (hook_rtx_rtx_null): New.
10445
10446         * hooks.h (hook_rtx_rtx_null): Protoize.
10447
10448         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
10449         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
10450
10451         * target.h (struct gcc_target): Add dwarf_register_span.
10452
10453         * dwarf2out.c (multiple_reg_loc_descriptor): New.
10454         (one_reg_loc_descriptor): New.
10455         (reg_loc_descriptor): Add support for values that span more than
10456         one register.
10457
10458 2003-03-05  Jan Hubicka  <jh@suse.cz>
10459
10460         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
10461         * alias.c:  Include cgraph.h
10462         (mark_constant_function): Use cgraph_rtl_info.
10463         * calls.c:  Include cgraph.h
10464         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
10465         calls.
10466         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
10467         * cgraph.c (cgraph_rtl_info): New function.
10468         * cgraph.h (cgraph_rtl_info): Declare
10469         (cgraph_rtl_info): Likewise.
10470         * function.h (struct function): Add recursive_call_emit.
10471         * toplev.c: Include cgraph.h.
10472         (rest_of_compilation): Set preferred_incoming_stack_boundary.
10473
10474 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10475
10476         * config/h8300/h8300.c (output_simode_bld): Clear the
10477         destination first if possible.
10478         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
10479         alternative.
10480         (extzv_1_r_inv_h8300hs): Likewise.
10481
10482 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10483
10484         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
10485         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
10486         * cfgloop.c (flow_loop_free): Made global.
10487         (establish_preds): New static function.
10488         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
10489         (get_loop_exit_edges): New.
10490         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
10491         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
10492         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
10493         loops.
10494         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
10495         removability of an edge.
10496         (fix_irreducible_loops): New static function.
10497         (find_path, remove_path): Add ability to remove enclosing loops.
10498         (unloop): New.
10499         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
10500         flags.
10501         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
10502         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
10503         not neccessary.
10504         (decide_peel_completely, peel_loops_completely): Allow complete peeling
10505         of non-duplicable once rolling loops.
10506         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
10507
10508 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
10509
10510         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
10511         for align_jumps is 4.
10512
10513         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
10514         use GENERAL_REGS.
10515
10516 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
10517
10518         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
10519         according to va_arg type.
10520         (EXPAND_BUILTIN_VA_ARG): Remove.
10521         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
10522         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
10523
10524 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
10525
10526         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
10527         else clauses.
10528
10529 2003-03-05  Michael Matz  <matz@suse.de>
10530
10531         * i386/i386.c (ix86_save_reg): Also test
10532         current_function_uses_const_pool.
10533
10534 2003-03-05  Michael Matz  <matz@suse.de>
10535
10536         * unwind.h: Add the GPL exception.
10537         * Makefile.in (USER_H): Add unwind.h.
10538
10539 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10540
10541         PR c/9799
10542         * c-typeck.c (push_init_level): Add sanity check.
10543
10544 2003-03-05  Jan Hubicka  <jh@suse.cz>
10545
10546         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
10547         RTL inlining is done.
10548
10549         * cgraphunit.c (cgraph_mark_local_functions): New local function.
10550         (cgraph_optimize): Mark local functions.
10551         * i386-protos.h (init_cumulative_args): Update prototype.
10552         * i386.c (init_cumulative_args): Use register passing convention for
10553         local functions.
10554
10555         * cgraph.c (cgraph_global_info_ready): New global variable
10556         (cgraph_local_info, cgraph_global_info): New functions.
10557         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
10558         structures.
10559         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
10560         Declare.
10561         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
10562         (cgraph_mark_functions_to_output): Use inline_many.
10563         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
10564         (cgraph_expand_functions): Expand inline functions last.
10565         (cgraph_optimize): Do not emit uneeded functions.
10566
10567 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
10568
10569         * expr.c (convert_modes): Check for legal hard register.
10570
10571 2003-03-04  Tom Tromey  <tromey@redhat.com>
10572
10573         * doc/sourcebuild.texi (Front End Directory): Document tags.
10574         * configure: Rebuilt.
10575         * configure.in (target_list): Added tags.
10576         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
10577         TAGS files by reference.
10578         * objc/Make-lang.in (objc.tags): New target.
10579
10580 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10581
10582         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
10583         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
10584         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
10585         gcov_read_string, gcov_write_length): Modified to enable reading/
10586         writing of whole .da file just once.
10587         (da_file_open, da_file_close, da_file_eof, da_file_error,
10588         da_file_position, da_file_seek, da_file_write, da_file_read): New
10589         functions.
10590         (actual_da_file, actual_da_file_position, actual_da_file_length,
10591         actual_da_file_buffer, actual_da_file_buffer_size): New static
10592         functions.
10593         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
10594         just once.
10595
10596
10597 2003-03-04  Andreas Schwab  <schwab@suse.de>
10598
10599         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
10600         offset without frame pointer.
10601
10602 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
10603
10604         * expr.c (expand_expr): Call promote_mode to set unsignedp.
10605
10606 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
10607
10608         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
10609         * configure: Regenerated.
10610         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
10611
10612 2003-03-04  Andreas Jaeger  <aj@suse.de>
10613
10614         * configure.in: Check for <memcheck.h>.
10615         * configure: Regenerated.
10616
10617         * config.in: Define HAVE_MEMCHECK_H.
10618
10619         * ggc-common.c: Use <memcheck.h> if available instead of
10620         <valgrind.h>.
10621         * ggc-page.c: Likewise.
10622         * cppfiles.c: Likewise.
10623
10624 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10625
10626         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
10627
10628 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10629
10630         PR c/9262
10631         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
10632         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
10633
10634 2003-03-04  Jan Hubicka  <jh@suse.cz>
10635
10636         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
10637         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
10638         for -O3.
10639
10640 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
10641
10642         * configure.in: Delete three unused variables.  Move a variable
10643         definition closer to its use.  Simplify use_collect2 logic.  Start to
10644         organize.  Simplify tests for in-tree gas and ld.
10645         * configure: Regenerate.
10646
10647 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
10648
10649         * Makefile.in: Update.
10650         * c-common.c (flag_no_line_commands, flag_no_output,
10651         flag_dump_macros, flag_dump_includes): New.
10652         * c-common.h (flag_no_line_commands, flag_no_output,
10653         flag_dump_macros, flag_dump_includes, preprocess_file): New.
10654         (init_c_lex): Update prototype.
10655         * c-lex.c (init_c_lex): Update prototype; move some code to
10656         c_common_init.
10657         * c-opts.c (preprocess_file): Subsume into c_common_init.
10658         (c_common_decode_option): Update flags.
10659         (c_common_init): Move code from preprocess_file and init_c_lex.
10660         (sanitize_cpp_opts): Update.
10661         * c-ppoutput.c: New, cppmain.c almost verbatim.
10662         * cpphash.h (struct printer): Remove.
10663         (struct cpp_reader): Remove print.
10664         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
10665         cpp_preprocess_file): Remove.
10666         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
10667         and dump_includes.
10668         * cppmain.c: Remove.
10669         * doc/passes.texi: Update.
10670
10671 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10672
10673         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
10674         (assign_stack_local_1): Perform overall stack alignment only when
10675         STACK_ALIGNMENT_NEEDED is non-zero.
10676         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
10677
10678         * pa.c (compute_frame_size): Rename fsize to size.  Account for
10679         alignment to a word boundary before general register save block.  Only
10680         account for double-word alignment before floating point register save
10681         block if one or more are saved.  Don't allocate space for %r3 when
10682         frame pointer is needed.
10683         (hppa_expand_prologue): Include alignment to word boundary in local
10684         frame size.
10685         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
10686         (STACK_ALIGNMENT_NEEDED): Define.
10687
10688 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
10689
10690         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
10691         global register variables.
10692
10693 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
10694
10695         * reload.c (reload_adjust_reg_for_mode): New function.
10696         (subst_reloads): Call it.
10697         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
10698         * reload.h (reload_adjust_reg_for_mode): Declare.
10699         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
10700         Call it.
10701
10702 2003-03-03  James E Wilson  <wilson@tuliptree.org>
10703
10704         * optabs.c (add_equal_note): Delete SUBREG_REG use.
10705         Fixes PR c/7872.
10706
10707 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10708
10709         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
10710         (*ixorsi3_lshiftrt_16): New.
10711         (*iorsi3_ashift_16): Remove.
10712
10713 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10714
10715         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
10716         pattern.
10717
10718 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
10719
10720         * doc/install.texi (Specific): Update entry for powerpc-darwin.
10721
10722 2003-03-03  Richard Henderson  <rth@redhat.com>
10723
10724         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
10725
10726 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
10727
10728         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
10729         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
10730         (rs6000_variable_issue): Do not return negative value.
10731         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
10732         scheduling pass.
10733
10734 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10735
10736         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
10737         prune_unused_types calls.
10738
10739 2003-03-03  Jason Merrill  <jason@redhat.com>
10740
10741         * tree-inline.c (find_builtin_longjmp_call): Save and restore
10742         lineno and input_filename.
10743         (find_alloca_call): Likewise.
10744         (inlinable_function_p): Run the langhook earlier.
10745
10746         * calls.c (compute_argument_addresses): Give the new MEMs a
10747         minimum alignment of PARM_BOUNDARY.
10748
10749 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
10750
10751         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
10752         subtarget_asm_isa_spec.
10753         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
10754         (ASM_SPEC): Define as SH_ASM_SPEC.
10755         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
10756         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
10757         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
10758         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
10759
10760         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
10761         and align_jumps if not set.
10762         Force align_jumps to be at least 2.
10763         When relaxing, force align_functions to be at least the maximum of
10764         align_loops, align_jumps and 4.
10765         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
10766         (sh_loop_align): Honour align_loops_log.
10767
10768         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
10769         to check for indirect_jump_scratch.
10770         (indirect_jump_scratch): Add second set.
10771         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
10772         when looking for indirect_jump_scratch.
10773         Extract scratch register taking new structure of indirect_jump_scratch
10774         into account.
10775         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
10776
10777 2003-03-03  Jan Hubicka  <jh@suse.cz>
10778
10779         * calls.c (rtx_for_function_call): Take the address as an argument
10780         (expand_call): Do not modify the expression.
10781
10782         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
10783         optimizing.
10784
10785 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10786
10787         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
10788         TARGET_H8300H and TARGET_H8300S.
10789
10790 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10791
10792         * config/h8300/h8300.md (a peephole2): New.
10793
10794 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10795
10796         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
10797         operands[0] and operands[1] are different.
10798
10799 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10800
10801         * reload1.c (reload_cse_move2add): Remove variable success.
10802
10803 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10804
10805         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
10806         warnings.
10807
10808 2003-03-02  Richard Henderson  <rth@redhat.com>
10809
10810         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
10811         * config.in, configure: Rebuild.
10812         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
10813         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
10814         paired ldtoffx and ldxmov annotations.
10815         (load_symptr_internal1): Remove.
10816         (load_symptr_high, load_symptr_low): New.
10817
10818 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
10819
10820         * c-incpath.c (add_path): Fix sysp assignment.
10821
10822 2003-03-02  Kurt Garloff  <garloff@suse.de>
10823
10824         * params.def: Introduce parameter max-inline-insns-rtl for
10825         a separate limit for the RTL inliner.
10826         * params.h: Likewise.
10827         * integrate.c (function_cannot_inline_p): Use it.
10828         * toplev.c (decode_f_option): Set multiple parameters
10829         controlling inlining with -finline-limit.
10830         * params.def: Fix orthographic and typographic errors.
10831         * doc/invoke.texi: Document parameters controlling inlining
10832         and the way -finline-limit sets multiple of them.
10833
10834         * tree.h (struct tree_decl): Introduce inlined_function_flag,
10835         recording whether the function became eligible for inlining
10836         by a compiler flag rather than the declaration.
10837         Provide DID_INLINE_FUNC macro to access it.
10838         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
10839         * cp/decl.c (grokfndecl): Likewise.
10840         * toplev.c (rest_of_compilation): Likewise.
10841         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
10842         * print-tree.c (print_node): Report it.
10843         * params.def: Introduce new max-inline-insns-auto limit.
10844         * params.h: Likewise.
10845         * tree-inline.c (inlinable_function_p): Apply it to functions
10846         with DID_INLINE_FUNC set.
10847         * toplev.c (decode_f_option): Initialize it from -finline-limit
10848         value.
10849         * doc/invoke.texi: Document new parameter.
10850
10851 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
10852
10853         * fix-header.c (read_scan_file): Don't reference simplify_path.
10854
10855 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10856
10857         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
10858         min/max instructions by default as may result in reload errors.
10859
10860 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10861
10862         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
10863         avoid reload problems; define split for it.
10864
10865 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10866
10867         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
10868         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
10869         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
10870         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
10871         rotatert and rotate.
10872         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
10873         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
10874         ("*rotrhi3_addr"): New split for shift insns on address register.
10875         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
10876         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
10877         (___rotrhi3): Likewise.
10878         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
10879
10880 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
10881
10882         * toplev.c (aux_base_name): Moved from toplev.h.
10883         (filename): Constify.
10884         (lang_dependent_init): Don't duplicate name.
10885         (process_options): Set aux_base_name here, not...
10886         (do_compile): ...here.  Change protoype.
10887         (toplev_main): Move some code from do_compile.
10888         * toplev.h: Remove aux_base_name.
10889
10890 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10891
10892         * config/h8300/h8300-protos.h: Add a prototype for
10893         iorxor_operator.
10894         * config/h8300/h8300.c (print_operand): Handle 'c'.
10895         (iorxor_operator): New.
10896         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
10897         * config/h8300/h8300.md (*iorhi3_zext): Remove.
10898         (*iorsi3_zexthi): Likewise.
10899         (*iorsi3_zextsi): Likewise.
10900         (*xorhi3_zextqi): Likewise.
10901         (*xorsi3_zexthi): Likewise.
10902         (*xorsi3_zextsi): Likewise.
10903         (*ixorhi3_zext): New.
10904         (*ixorsi3_zext_qi): Likewise.
10905         (*ixorsi3_zext_hi): Likewise.
10906
10907 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
10908
10909         * c-incpath.c (remove_component_p, simplify_path): Move back to
10910         cppfiles.c.
10911         (remove_duplicates): Use cpp_simplify_path.
10912         * c-incpath.h (simplify_path): Remove.
10913         * c-lex.c: Don't include c-incpath.h.
10914         (init_c_lex): Remove simplify_path.
10915         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
10916         (find_or_create_entry, validate_pch): Revert.
10917
10918 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
10919
10920         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
10921           an external cpp during compilation.
10922         (option_map): Likewise.
10923         * objc/lang-specs.h (default_compilers): Similarly.
10924         * doc/invoke.texi: Document -no-integrated-cpp flag.
10925
10926 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10927
10928         * config/h8300/h8300.md (zero_extendqisi2): Change to an
10929         expander.
10930         (*zero_extendqisi2_h8300): New.
10931         (*zero_extendqisi2_h8300hs): New.
10932         (two splitters): New.
10933
10934 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10935
10936         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
10937
10938 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10939
10940         * config/h8300/h8300.md (a peephole2): Remove dead code.
10941
10942 2003-03-01  Roger Sayle  <roger@eyesopen.com>
10943
10944         PR c++/9367
10945         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
10946         (BT_FN_INT_CONST_STRING_VALIST_ARG,
10947         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
10948         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
10949         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
10950         BT_FN_INT_STRING_CONST_STRING_VAR,
10951         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
10952         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
10953         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
10954         ATTR_NONNULL_3): Also include the nothrow attribute.
10955         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
10956         vsnprintf, vscanf, vsscanf): Don't define attributes here.
10957         * builtins.def (putchar, puts): Make full C89 built-ins.
10958         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
10959         vsscanf, vsnprintf, vsprintf): New built-ins.
10960         * c-common.c (c_common_nodes_and_builtins): Handle new macro
10961         DEF_FUNCTION_TYPE_VAR_3.
10962
10963         * doc/extend.texi: Document these new built-in functions.
10964
10965 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10966
10967         * config/h8300/h8300.md (a peephole2): New.
10968
10969 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
10970
10971         * predict.c (estimate_bb_frequencies): Correctly set
10972         real_values_initialized after initialization.
10973
10974 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
10975
10976         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
10977         cppinit.o, cppdefault.o, fix-header): Update.
10978         * c-incpath.c: New file.
10979         * c-incpath.h: New file.
10980         * c-lex.c: Include c-incpath.h.
10981         (init_c_lex): Register path simplifier.
10982         * c-opts.c: Include cppdefault.h and c-incpath.h.
10983         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
10984         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
10985         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
10986         (missing_arg, c_common_decode_option): Handle them.
10987         (c_common_post_options): Register include chains.
10988         (print_help): Update.
10989         * cppdefault.h (struct default include): Update.
10990         Move some macros to ...
10991         * cppdefault.c: ... here.
10992         (cpp_include_defaults): Add extra field add_sysroot.
10993         * cppfiles.c (include_file, search_from, find_or_create_entry,
10994         cpp_included, find_include_file, remap_filename): Update for
10995         renaming of search_path to cpp_path, and of the chain headers.
10996         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
10997         * cpphash.h (struct search_path): Move to cpplib.h.
10998         (struct cpp_buffer, struct cpp_reader): Update.
10999         (_cpp_simplify_pathname): Remove.
11000         * cppinit.c: Don't include prefix.h and cppdefault.h.
11001         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
11002         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
11003         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
11004         no_pth, cpp_handle_options): Remove.
11005         (struct pending_option): Remove chain members.
11006         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
11007         cpp_handle_option): Update.
11008         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
11009         (struct cpp_options): Remove quote_include, bracket_include,
11010         include_prefix, include_prefix_len, verbose, ignore_srcdir,
11011         no_standard_includes, no_standard_cplusplus_includes.
11012         (struct cpp_callbacks): Add simplify_path.
11013         (cpp_handle_options): Remove.
11014         * fix-header.c: Include c-incpath.h.
11015         (read_scan_file): Update to use c-incpath functionality.
11016         * doc/passes.texi: Update.
11017
11018 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11019
11020         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
11021         satisfies EXTRA_CONSTRAINT 'U'.
11022
11023 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11024
11025         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
11026         register.
11027         (*tst_extzv_memqi_1_n): Change to a splitter.
11028         (a peephole2): Update.
11029
11030 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
11031
11032         * predict.c (estimate_bb_frequencies): Initialize the sreal
11033         constants once per compilation.
11034
11035 2003-02-28  Richard Henderson  <rth@redhat.com>
11036
11037         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
11038
11039 2003-02-28  scott snyder  <snyder@fnal.gov>
11040
11041         * flags.h: Add flag_eliminate_unused_debug_types.
11042         * toplev.c: Add flag_eliminate_unused_debug_types.
11043         (f_options): Add -feliminate-unused-debug-types.
11044         * dwarf2out.c (struct file_table): Add emitted member.
11045         (splice_child_die): Fix the parent pointer for the child being
11046         spliced.
11047         (lookup_filename): Maintain file_table.emitted array.  Don't
11048         output .file directive here.
11049         (maybe_emit_file): (new)
11050         (init_file_table): Set up file_table.emitted.
11051         (dwarf2out_source_line): Use maybe_emit_file.
11052         (dwarf2out_start_source_file): Use maybe_emit_file.
11053         (dwarf2out_init): Use maybe_emit_file.
11054         (prune_unused_types_walk_attribs): (new)
11055         (prune_unused_types_mark): (new)
11056         (prune_unused_types_walk): (new)
11057         (prune_unused_types_prune): (new)
11058         (prune_unused_types): (new)
11059         (dwarf2out_finish): Call prune_unused_types if
11060         flag_eliminate_unused_debug_types is set.
11061         * doc/invoke.texi (Option Summary): Add
11062         -feliminate-unused-debug-types.
11063         (Debugging Options): Likewise.
11064
11065 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
11066
11067         * doc/invoke.texi: Change .pch to .gch.
11068         * cppfiles.c (open_file_pch): Likewise.
11069         * gcc.c (default_compilers): Likewise.
11070
11071 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
11072
11073         * floatlib.c: Remove.
11074
11075 2003-02-28  Jason Merrill  <jason@redhat.com>
11076
11077         * stor-layout.c (variable_size): Leave a "minus 1" outside the
11078         SAVE_EXPR.
11079
11080 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
11081
11082         * config/rs6000/power4.md: Add compare bypass.
11083
11084 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
11085
11086         * config/netbsd.h: Update copyright years.
11087         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
11088         -pthread is specified on the command line.
11089
11090 2003-02-28  Dale Johannesen <dalej@apple.com>
11091
11092         * loop.c (struct movable): Add insert_temp, shrink savemode.
11093         (scan_loop): Accept invariants that require copying; mark as
11094         insert_temp.
11095         (combine_movables): Don't combine insert_temp movables.
11096         (move_movables): Insert copies for insert_temp movables.
11097         Don't record the info based on regno for insert_temp's.
11098
11099 2003-02-28  Joel Sherrill <joel@OARcorp.com>
11100
11101         PR 9638/other
11102         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
11103         this constant defaults to 1.
11104
11105 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
11106
11107         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
11108
11109 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
11110
11111         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
11112         ARMv5e processor, not just for XScale.  Instructions are predicable.
11113         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
11114
11115 2003-02-28  Nick Clifton  <nickc@redhat.com>
11116
11117         * config/arm/arm.c (note_invalid_constants): Change parameter type
11118         from bool to int.
11119
11120 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11121
11122         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
11123         test of bit 7.
11124         (*tst_extzv_memqi_1_n): Likewise.
11125         (a peephole2): New.
11126
11127 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
11128
11129         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
11130         #ifndef __mips16.
11131
11132 2003-02-28  Jan Hubicka  <jh@suse.cz>
11133
11134         * combine.c (gen_lowpart_for_combine): Update handling of
11135         subregs_of_mode
11136         * flow.c (life_analysis, mark_used_regs): Likewise.
11137         * regclass.c (subregs_of_mode): Turn into single bitmap.
11138         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
11139         dealing with subregs_of_mode
11140         * regs.h (subregs_of_mode): Update prototype.
11141
11142 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
11143
11144         * emit-rtl.c (set_reg_attrs_for_parm): New function.
11145         * rtl.h (set_reg_attrs_for_parm): New exported function.
11146         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
11147         set_reg_attrs_from_mem.
11148
11149 2003-02-27  Roger Sayle  <roger@eyesopen.com>
11150             Zack Weinberg <zack@codesourcery.com>
11151
11152         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
11153
11154 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11155
11156         * reload1.c (sext_for_mode): Remove.
11157         (reload_cse_move2add): Use trunc_int_for_mode instead of
11158         sext_for_mode.
11159         (move2add_note_store): Likewise.
11160         Reset register information if we see a set in non-integer
11161         mode.
11162
11163 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
11164
11165         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
11166         option.
11167         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
11168         * config/rs6000/aix51.h: Same.
11169         * config/rs6000/aix52.h: Same.
11170         * config/rs6000/power4.md: Additional VMX bypasses.
11171
11172 2003-02-27   Geert Bosch <bosch@gnat.com>
11173
11174         * toplev.c (print_version): Add indentation for GGC heuristics and
11175         output after printing version information.
11176
11177 2003-02-27  James E Wilson  <wilson@tuliptree.org>
11178
11179         * combine.c (simplify_comparison): Require integral mode when
11180         permuting SUBREG with AND.
11181
11182 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
11183
11184         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
11185
11186 2003-02-27  Nick Clifton  <nickc@redhat.com>
11187
11188         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
11189         deleted when cirrus instructions were added.
11190
11191 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
11192
11193         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
11194         POSIX thread support by default.
11195
11196 2003-02-27  Roger Sayle  <roger@eyesopen.com>
11197
11198         * config/i386/cygwin.h: Don't include any other files directly.
11199         * config/i386/mingw32.h: Don't include cygwin.h directly.
11200         * config.gcc (cygwin, mingw32, uwin): Instead make these files
11201         explicit in the tm_files variable.
11202
11203 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
11204
11205         * config/rs6000/rs6000.md: Add TI constant splitter.
11206
11207 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
11208
11209         * builtins.c (purge_builtin_constant_p): Handle subreg of
11210         constant_p_rtx too.
11211
11212         * function.c (assign_stack_local_1): Truncate constant added to
11213         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
11214
11215 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
11216
11217         * config.gcc: Add power4 to PowerPC with_cpu list.
11218
11219 2003-02-26  Jan Hubicka  <jh@suse.cz>
11220
11221         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
11222
11223 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11224
11225         * gcov-dump.c (print_prefix): Fix signedness warning.
11226         * gcov-io.h (struct counter_section, struct counter_section_data): New.
11227         (struct function_info): n_arc_counts field removed, n_counter_sections,
11228         counter_sections fields added.
11229         (struct gcov_info): arc_counts, n_arc_counts fields removed,
11230         n_counter_sections, counter_sections fields added.
11231         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
11232         profile sections.
11233         * profile.h (MAX_COUNTER_SECTIONS): New.
11234         (struct section_info): New.
11235         (struct profile_info): count_instrumented_edges,
11236         count_edges_instrumented_now fields removed, n_sections, section_info
11237         fields added.
11238         (find_counters_section): Declare.
11239         * profile.c (struct function_list): count_edges field removed,
11240         n_counter_sections, counter_sections fields added.
11241         (set_purpose, label_for_tag, build_counter_section_fields,
11242         build_counter_section_value, build_counter_section_data_fields,
11243         build_counter_section_data_value, build_function_info_fields,
11244         build_function_info_value, build_gcov_info_fields,
11245         build_gcov_info_value): New static functions.
11246         (find_counters_section): New function.
11247         (instrument_edges, get_exec_counts, compute_branch_probabilities,
11248         branch_prob, create_profiler): Modified to support multiple profile
11249         sections.
11250
11251 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11252
11253         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
11254         is 8 * STACK_BOUNDARY.
11255         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
11256
11257 2003-02-26  Michael Matz  <matz@suse.de>
11258
11259         * ra-colorize.c (merge_moves): Fix list handling.
11260
11261 2003-02-26  Nick Clifton  <nickc@redhat.com>
11262
11263         * config/arm/arm.c (is_load_address): Rename to...
11264         (arm_memory_load_p) ... this and make it check for SUBREGs and
11265         constant loads that will be converted into loads from the
11266         minipool.
11267         (is_cirrus_insn): Rename to ...
11268         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
11269         of CIRRUS_NO with CIRRUS_NOT.
11270         (cirrus_reorg): Use renamed functions.
11271         (note_invalid_constants): Change from a void function to bool.
11272         Add an extra parameter, saying whether the fixups should be
11273         pushed.  Return true if fixups are needed.
11274         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
11275         of CIRRUS_NO with CIRRUS_NOT.
11276         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
11277         other floating point co-processors can also affect this.
11278         * config/arm/arm.md ("type" attribute): Add mav_farith and
11279         mav_dmult.  Replace references to "cirrus_type" attribute with
11280         "type".
11281         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
11282         ("cirrus_type" attribute): Delete - use "type" instead.
11283         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
11284         'normal'.
11285
11286 2003-02-25  Jan Hubicka  <jh@suse.cz>
11287
11288         * objc-act.c: Include cgraph.h
11289         (mark_referenced_methods): New function.
11290         (objc_init): Call it.
11291         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
11292
11293         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
11294         mode.
11295
11296         * optabs.c (expand_fix): Do not widen the input operand.
11297
11298         * expr.c (emit_group_store):  Fix crash when converting single
11299         register into complex register.
11300
11301         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
11302         * alias.c: Include timevar.h
11303         (init_alias_analysis):  Set timevar
11304         * jump.c: Include timevar.h
11305         (rebuild_jump_labels):  Set timevar
11306         * regcalss.c: Include timevar.h
11307         (reg_scan):  Set timevar
11308         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
11309
11310 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11311
11312         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
11313
11314         * Makefile.in (loop-unroll.o): New.
11315         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
11316         (unroll_and_peel_loops): Declare.
11317         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
11318         flag_old_unroll_loops.
11319         * loop.c (loop_invariant_p): Ditto.
11320         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
11321         flag_old_unroll_all_loops.
11322         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
11323         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
11324         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
11325         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
11326         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
11327         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
11328         PARAM_MAX_ONCE_PEELED_INSNS): New.
11329         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
11330         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
11331         instead of old one.
11332         (flag_peel_loops): New.
11333         (lang_independent_options): The new flags added.
11334         (rest_of_compilation): Call new unroller.
11335         (process_options): Setup flags for coexistence of old and new unroller.
11336         * doc/invoke.texi: Document new options.
11337         * doc/passes.texi: Document new unroller pass.
11338
11339 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
11340
11341         * fixinc/fixincl.x: Regenerate
11342
11343 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
11344
11345         * function.c (assign_parms): Set reg_attrs for parameters passed in
11346         registers.
11347
11348 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
11349
11350         PR target/9681
11351         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
11352
11353 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
11354
11355         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
11356         pseudo-op.
11357
11358 2003-02-25  Roger Sayle  <roger@eyesopen.com>
11359
11360         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
11361         * cse.c (invalidate_skipped_set):  Likewise.
11362         * integrate.c (subst_constants):  Likewise.
11363         * jump.c (reversed_comparison_code_parts):  Likewise.
11364         * loop.c (canonicalize_condition):  Likewise.
11365         * simplify-rtx.c (simplify_relational_operation):  Likewise.
11366
11367 2003-02-25  Roger Sayle  <roger@eyesopen.com>
11368
11369         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
11370         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
11371         the appropriate macro to define built-in function.
11372         (fmod,fmodf,fmodl): New built-in functions.
11373
11374         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
11375
11376 2003-02-25  Richard Henderson  <rth@redhat.com>
11377
11378         * config/i386/i386.c (function_arg): Pass variable sized
11379         structures correctly on the stack.
11380
11381 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
11382
11383         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
11384         does not reduce the cost of SET.
11385
11386 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11387
11388         PR target/9732
11389         * config/rs6000/rs6000.c (first_reg_to_save): Handle
11390         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
11391         (rs6000_emit_prologue): Likewise.
11392         (rs6000_emit_epilogue): Likewise.
11393         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
11394         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
11395
11396 2003-02-25  Richard Henderson  <rth@redhat.com>
11397
11398         * real.c (real_to_integer2): Force overflow result only for
11399         unsigned overflow.
11400
11401 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
11402
11403         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
11404
11405 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
11406             Richard Henderson  <rth@redhat.com>
11407
11408         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
11409         there is no similar load.
11410
11411 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
11412             Richard Henderson  <rth@redhat.com>
11413
11414         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
11415         sched-rgn.c.
11416         (add_forward_dependence): New function prototype.
11417
11418         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
11419         sched-init.h.
11420         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
11421         them to haifa-sched.c.
11422
11423         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
11424         haifa_classify_insn): Move them from sched-rgn.c.
11425
11426         * sched-deps.c (add_dependence): Return flag of creating a new
11427         entry.
11428         (add_forward_dependence): New function.
11429         (compute_forward_dependences): Use the function.
11430
11431         * sched-ebb.c (earliest_block_with_similiar_load): New function.
11432         (add_deps_for_risky_insns): New function.
11433         (schedule_ebb): Call the function.
11434
11435 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
11436
11437         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
11438         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
11439
11440         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
11441         opaque types fail.
11442
11443         * c-typeck.c (comptypes): Change call to vector_types_compatible
11444         to vector_opaque_p.
11445         (convert_for_assignment): Call vector_opaque_p instead of
11446         vector_types_compatible.
11447         (really_start_incremental_init): Disallow initialization of opaque
11448         types.
11449
11450         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
11451         Define TARGET_VECTOR_OPAQUE_P.
11452         (TARGET_INITIALIZER): Same.
11453
11454         * target.h (struct gcc_target): Remove vector_types_compatible.
11455         Add vector_opaque_p.
11456
11457         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
11458         Remove.
11459         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
11460         a vector type.  Change return type to bool.
11461         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
11462         (TARGET_VECTOR_OPAQUE_P): Define.
11463
11464         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
11465         target hook.
11466         Include target.h.
11467         (cp_parser_init_declarator): Fix typo in function comments.
11468
11469 2003-02-25  Jan Hubicka  <jh@suse.cz>
11470
11471         * Makefile.in (lcm.o):  Add dependency on function.h
11472         * lcm.c (function.h): Include.
11473         * i386.c (machine_function, ix86_stack_locals,
11474         * ix86_save_varrargs_registers) : Move to
11475         ...
11476         * i386.h (machine_function, ix86_stack_locals,
11477         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
11478         (ix86_optimize_mode_switching): New.
11479         * i386.md (fix patterns): Set ix86_optimize_mode_switching
11480
11481 2003-02-25  Nick Clifton  <nickc@redhat.com>
11482
11483         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
11484         of fourth arg is 'fndecl' not 'indirect'.  Update comment
11485         describing the function's parameters.
11486
11487 2003-02-24  Jan Hubicka  <jh@suse.cz>
11488
11489         * combine.c (simplify_shift_const):  Fix previous patch.
11490
11491 2003-02-24  Jeff Law  <law@redhat.com>
11492
11493         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
11494         alternative.
11495         (testsi_1, testhi_1, testqi_1): Likewise.
11496
11497 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11498
11499         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
11500         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
11501         * doc/extend.texi (Tru64 Pragmas): Reflect this.
11502
11503         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
11504         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
11505         * fixinc/fixincl.x: Regenerate.
11506         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11507         testcase.
11508         Fixes PR c/5059, c/6126, other/9671.
11509
11510 2003-02-24  Roger Sayle  <roger@eyesopen.com>
11511
11512         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
11513         from handle_braces in "%{...}".
11514
11515 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
11516
11517         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
11518         (prepare_move_operands): Handle TLS operands.
11519         (tls_symbolic_operand): New.
11520         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
11521         (legitimize_pic_address): Do nothing for the TLS symbol.
11522         (sh_encode_section_info): Handle TLS case.
11523         (sh_strip_name_encoding): Drop TLS encoding.
11524         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
11525         * config/sh/sh.h (SH_TLS_ENCODING): Define.
11526         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
11527         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
11528         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
11529         * config/sh/sh.md: Define TLS UNSPEC constants.
11530         (type): Add tls_load.
11531         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
11532         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
11533         ("tls_initial_exec"): New insn.
11534         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
11535         ("load_gbr"): New insn.
11536
11537         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
11538         * configure: Regenerate.
11539
11540 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
11541
11542         PR 9297, PR 9722
11543         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
11544         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
11545         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
11546         (enum block_op_methods): Reorder for better store_expr optimization.
11547         * expr.c (store_expr): Test bit 1 of "want_value" for call param
11548         stores, test bit 0 for original want_value meaning.  Pass
11549         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
11550         recursive calls, and calls to expand_param.
11551         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
11552         expected, set target to 0 rather than to subtarget.  Formatting.
11553
11554 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11555
11556         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
11557
11558 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11559
11560         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
11561         new default behavior.
11562         * ggc-common.c: Include sys/resource.h.
11563         (ggc_rlimit_bound): New function.
11564         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
11565         defaults to account for rlimits.
11566
11567 2003-02-22  Richard Henderson  <rth@redhat.com>
11568
11569         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
11570
11571 2003-02-22  Kelley Cook <kelley@dwhoops.info>
11572
11573         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
11574         (ix86_tune_string): Rename from ix86_cpu_string.
11575
11576 2003-02-22  Kelley Cook <kelleycook@comcast.net>
11577
11578         * config/i386/i386.c: Replace "mcpu" with "mtune".
11579         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
11580         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
11581         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
11582         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
11583
11584 2003-02-23  Andreas Schwab  <schwab@suse.de>
11585
11586         * config.gcc: Delete references to m68k/t-linux and
11587         m68k/t-linux-aout.
11588         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
11589
11590 2003-02-22  Jan Hubicka  <jh@suse.cz>
11591
11592         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
11593         of track scheduling patch.
11594
11595 2003-02-22  Jan Hubicka  <jh@suse.cz>
11596
11597         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
11598         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
11599
11600 2003-02-22  Jan Hubicka  <jh@suse.cz>
11601
11602         * c-decl.c (c_expand_body_1): Fix.
11603
11604 2003-02-22  Jan Hubicka  <jh@suse.cz>
11605
11606         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
11607
11608         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
11609         when not optimizing.
11610         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
11611         when not expensive.
11612         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
11613         optimizing;  Delete trivially dead insns early; fix optimize check.
11614
11615         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
11616         dependency on cgraph.h
11617         * c-decl.c: Include cgraph.h
11618         (finish_function): Update call of tree_inlinable_function_p.
11619         * c-objc-common.c: Include cgraph.h
11620         * cgraph.h: New file.
11621         * cgraphunit.c: New file.
11622         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
11623         (cgraph_nodes, cgraph_n_nodes): Globalize.
11624         (cgraph_finalize_function, cgraph_finalize_compilation_unit
11625         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
11626         Move into cgraphunit.c
11627         * tree-inline.c: Include cgraph.h
11628         * tree-inline.c: Include cgraph.h
11629
11630 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
11631
11632         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
11633         for copying a register.
11634
11635 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
11636
11637         PR other/3782
11638         * toplev.c (process_options): If flag_detailed_statistics is set,
11639         then set time_report as well.
11640
11641         PR c/8828
11642         * jump.c (never_reached_warning): Don't fall through BARRRIER
11643         insns.  Update comments to reflect what the function really does.
11644
11645 2003-02-21  Roger Sayle  <roger@eyesopen.com>
11646
11647         * fold-const.c (omit_one_operand): No longer static.
11648         * tree.h (omit_one_operand): Prototype here.
11649         (div_and_round_double): Keep fold-const.c prototypes together.
11650         * builtins.c (builtin_mathfn_code): Handle binary built-in
11651         funtions, such as "pow" and "atan2".
11652         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
11653         Simplify optimizations using "type" the builtin's return type.
11654
11655 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
11656
11657         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
11658         Fix functionalization typo.
11659
11660         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
11661         in an asm.
11662
11663 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11664
11665         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
11666         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
11667         documentation.
11668         * ggc-common.c: Include params.h
11669         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
11670         init_ggc_heuristics): New functions.
11671         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
11672         init_ggc_heuristics): Prototype.
11673         * toplev.c (print_version):  Output GGC heuristics.
11674         (parse_options_and_default_flags): Call init_ggc_heuristics.
11675
11676 2003-02-22  Jan Hubicka  <jh@suse.cz>
11677
11678         * i386.c (def_builtin):  Special case 64bit builtins.
11679         (MASK_SSE164, MASK_SSE264): New constants.
11680         (builtin_description): Add 64bit builtins.
11681         (ix86_init_mmx_sse_builtins): Likewise.
11682         * i386.h (enum ix86_builtins): Likewise.
11683         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
11684         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
11685         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
11686         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
11687         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
11688         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
11689         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
11690
11691 2003-02-22  Jan Hubicka  <jh@suse.cz>
11692
11693         * i386.c (builtin_description): Add __builtin_ia32_paddq and
11694         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
11695          and __builtin_ia32_psubq128.
11696         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
11697         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
11698         (mmx_adddi3, mmx_subdi3): New.
11699         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
11700         * xmmintrin.h (_mm_movepi64_pi64): New.
11701         (_mm_add_epi64, _mm_sub_epi64): fix.
11702         (_mm_mul_pu16): Rename to...
11703         (_mm_mul_su32): ... this one.
11704
11705         * builtins.c (expand_builtin_expect):  Do not predict
11706         flag_guess_branch_prob is not set.
11707         * c-semantics.c (expand_stmt): Likewise.
11708         * predict.c (predict_insn): Likewise.
11709         * stmt.c (expand_continue_loop): Likewise.
11710         * toplev.c (rest_of_compilation): Do not call
11711         note_prediction_to_br_prob and note_prediction_to_br_prob
11712         when not optimizing.
11713
11714 2003-02-21  Jan Hubicka  <jh@suse.cz>
11715
11716         * cfgrtl.c (commit_edge_insertions):  Call
11717         find_many_sub_basic_block only when some code has been emitted.
11718         (commit_edge_insertions_watch_calls): Bring into sync with
11719         commit_edge_insertions
11720
11721 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
11722
11723         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
11724
11725         * sh.md (binary_sf_op): Use extra constant operand instead of
11726         negating constant operand 4.
11727         * sh.c (sh_expand_binop_v2sf): Supply it.
11728
11729 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
11730
11731         * cpphash.h (struct lexer_state): Add directive_wants_padding.
11732         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
11733         for directives of type INCL.
11734         (glue_header_name, parse_include): Use get_token_no_padding.
11735         * cppmacro.c (replace_args): If directive_wants_padding,
11736         provide padding tokens.
11737
11738 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11739
11740         * config/h8300/h8300.md (a peephole2): New.
11741
11742 2003-02-21  Jan Hubicka  <jh@suse.cz>
11743
11744         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
11745         (commit_edge_insertions): Call find_many_sub_basic_blocks
11746
11747         * reg-stack.c (convert_regs): Cleax aux for blocks.
11748
11749 2003-02-21  Jan Hubicka  <jh@suse.cz>
11750
11751         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
11752
11753 2003-02-21  Glen Nakamura  <glen@imodulo.com>
11754
11755         PR optimization/8613
11756         * builtins.c (expand_builtin): Emit postincrements before expanding
11757         builtin functions.
11758
11759 2003-02-21  Ben Elliston  <bje@redhat.com>
11760
11761         PR other/5634
11762         * doc/install.texi (Configuration): Explain using $HOME instead of
11763         the ~ metacharacter when referring to home directories.
11764
11765 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
11766
11767         * configure.in (TARGET_SYSTEM_ROOT): Set default to
11768         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
11769         '${exec_prefix}' (in addition to the expansion thereof) as
11770         relocatable.
11771         * configure: Rebuilt.
11772
11773 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11774
11775         * config/h8300/h8300.md (addhi3_incdec): Change the name to
11776         *addhi3_incdec.
11777         (addsi3_incdec): Change the name to *addsi3_incdec.
11778
11779 2003-02-20  Roger Sayle  <roger@eyesopen.com>
11780
11781         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
11782
11783 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
11784
11785         PR fortran/9038
11786         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
11787         options to be ignored.
11788         (c_common_decode_option): Ignore them when preprocessing.
11789
11790 2003-02-20  Jan Hubicka  <jh@suse.cz>
11791
11792         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
11793         global variables.
11794         (lang_independent_options):  Add -fsched2-use-superblocks
11795         -fsced2-use-traces.
11796         (rest_of_compilation): Deal with it.
11797         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
11798         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
11799         Declare.
11800         * rtl.h (reg_to_stack):  Update prototype.
11801         * reg-stack.c (reg_to_stack): Return when something has changed;
11802         update liveness when executing after superblock scheduling.
11803
11804         * combine.c (simplify_shift_const):  Simplify few special cases
11805         into constants.
11806
11807 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
11808
11809         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
11810         (add.,subf.,neg.): Change attribute to fast_compare.
11811         All DFA descriptions updated.
11812
11813 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
11814
11815         Change base class access representation.
11816         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
11817         TREE_VIA_PRIVATE): Remove.
11818         (BINFO_BASEACCESSES): New binfo elt.
11819         (BINFO_BASEACCESS): New accessor.
11820         (BINFO_ELTS): Increase.
11821         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
11822         (access_public_node, access_protected_node,
11823         access_private_node): New global nodes.
11824         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
11825         * dbxout.c (dbxout_type): Adjust.
11826         * dwarf2out.c (gen_inheritance_die): Add access parameter.
11827         (gen_member_die): Adjust.
11828         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
11829         (output_type): Adjust.
11830         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
11831
11832         Change base class access representation. Share virtual base
11833         binfos.
11834         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
11835         call.
11836         * cp/class.c (build_base_path): Likewise.
11837         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
11838         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
11839         (make_new_vtable): Adjust.
11840         (force_canonical_binfo_r): Delete.
11841         (force_canonical_binfo): Delete.
11842         (mark_primary_virtual_base): Delete.
11843         (dfs_unshared_virtual_bases): Delete.
11844         (mark_primary_bases): Adjust.
11845         (maybe_warn_about_overly_private_class): Adjust.
11846         (dfs_base_derived_from): Delete.
11847         (base_derived_from): Follow the inheritance chain.
11848         (struct find_final_overrider_data): Add vpath member.
11849         (dfs_find_final_overrider): Adjust.
11850         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
11851         (find_final_overrider): Adjust.
11852         (update_vtable_entry_for_fn): Adjust.
11853         (modify_all_vtables): Adjust.
11854         (walk_subobject_offsets): Adjust.
11855         (layout_nonempty_base_or_field): Adjust.
11856         (layout_empty_base): Remove last parameter. Adjust.
11857         (build_base_field): Adjust.
11858         (build_base_fields): Adjust.
11859         (propagate_binfo_offsets): Remove last parameter. Adjust.
11860         (dfs_set_offset_for_unshared_vbases): Delete.
11861         (layout_virtual_bases): Adjust.
11862         (finish_struct_1): Adjust.
11863         (init_class_processing): Don't init access nodes.
11864         (dfs_get_primary_binfo): Delete.
11865         (get_primary_binfo): Adjust.
11866         (dump_class_hierarchy_r): Remove most derived arg, add IGO
11867         parameter. Adjust.
11868         (dump_class_hierarchy): Adjust.
11869         (finish_vtbls): Adjust.
11870         (get_original_base): Delete.
11871         (build_vtt_inits): Adjust.
11872         (dfs_build_secondary_vptr_vtt_inits): Adjust.
11873         (dfs_ctor_vtable_bases_queue_p): Adjust.
11874         (build_ctor_vtbl_group): Adjust.
11875         (dfs_accumulate_vtbl_inits): Adjust.
11876         (build_vtbl_initializer): Adjust.
11877         (build_vbase_offset_vtbl_entries): Adjust.
11878         (add_vcall_offset_vtbl_entries_1): Adjust.
11879         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
11880         (access_*_node): Remove.
11881         (CANONICAL_BINFO): Delete.
11882         (BINFO_UNSHARED_MARKED): Remove.
11883         (BINFO_MARKED): Set LANG_FLAG_0 directly.
11884         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
11885         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
11886         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
11887         Delete.
11888         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
11889         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
11890         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
11891         Delete.
11892         (BINFO_DEPENDENT_BASE_P): New.
11893         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
11894         index.
11895         (markedp, unmarkedp): Adjust.
11896         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
11897         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
11898         find_vbase_instance, binfo_for_vbase): Delete.
11899         (copied_binfo, original_binfo): Declare.
11900         (finish_base_specifier): Add virtual_p arg.
11901         (unshare_base_binfos): Delete.
11902         (copy_base_binfos): Declare.
11903         (reverse_path): Delete.
11904         * cp/decl.c (xref_basetypes): Access and virtuality passed
11905         differently. Don't copy direct base binfos here. Call
11906         copy_base_binfos.
11907         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
11908         (initialize_vtbl_ptrs): Adjust.
11909         (expand_member_init): Adjust.
11910         * cp/parser.c (cp_parser_base_specifier): Adjust.
11911         * cp/pt.c (instantiate_class_template): Adjust.
11912         (get_template_base_recursive): Adjust.
11913         * cp/rtti.c (get_pseudo_ti_init): Adjust.
11914         (get_pseudo_ti_desc): Adjust.
11915         * cp/tree.c (unshare_base_binfos): Rename to ...
11916         (copy_base_binfos): ... here, reimplement.
11917         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
11918         (reverse_path): Remove.
11919         * cp/typeck.c (get_delta_difference): Adjust error messages.
11920         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
11921         * cp/search.c (lookup_base_r): Adjust.
11922         (dynamic_cast_base_recurse): Adjust.
11923         (canonical_binfo): Remove.
11924         (dfs_canonical_queue): Remove.
11925         (dfs_assert_unmarked_p): Remove.
11926         (assert_canonical_unmarked): Remove.
11927         (shared_marked_p, shared_unmarked_p): Remove.
11928         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
11929         (dfs_access_in_type): Adjust.
11930         (access_in_type): Adjust.
11931         (dfs_accessible_queue_p): Adjust.
11932         (dfs_accessible_p): Adjust.
11933         (is_subobject_of_p_1, is_subobject_of_p): Remove.
11934         (struct lookup_field_info): Remove from_dep_base_p field.
11935         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
11936         (lookup_field_r): Remove dependent base code.
11937         (lookup_member): Likewise.
11938         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
11939         (dfs_unmarked_real_bases_queue_p): Remove.
11940         (dfs_marked_real_bases_queue_p): Remove.
11941         (dfs_skip_vbases): Remove.
11942         (dfs_get_pure_virtuals): Adjust.
11943         (markedp, unmarkedp): Adjust.
11944         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
11945         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
11946         (dfs_unmark): Adjust.
11947         (dfs_get_vbase_types):Remove.
11948         (dfs_build_inheritance_graph_order): Remove.
11949         (get_vbase_types): Remove
11950         (dfs_find_vbase_instance): Remove.
11951         (find_vbase_instance): Remove.
11952         (dfs_debug_unmarkedp): Adjust.
11953         (dependent_base_p): Remove.
11954         (dfs_push_type_decls): Adjust.
11955         (dfs_push_decls): Adjust.
11956         (dfs_no_overlap_yet): Adjust.
11957         (copied_binfo): New function.
11958         (original_binfo): New function.
11959         (binfo_for_vbase): Remove.
11960
11961         Change base class access representation.
11962         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
11963         (add_interface_do): Likewise.
11964
11965 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
11966
11967         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
11968         * config/rs6000/power4.md (power4-store,power4-vecstore): New
11969         insn reservations.
11970         (power4-fpstore): Compact.
11971
11972 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11973
11974         * config/h8300/h8300.md (*iorsi3_w): New.
11975
11976 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
11977
11978         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
11979         * rtl.c (reg_note_name): Likewise.
11980         * rtl.h (enum reg_note): Likewise.
11981         * doc/invoke.texi: Likewise.
11982         * doc/rtl.texi: Likewise.
11983
11984 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
11985
11986         * bb-reorder.c (find_traces_1_round): Fix comment typo.
11987
11988 2003-02-19  Roger Sayle  <roger@eyesopen.com>
11989
11990         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
11991         addition in the presence of signaling NaNs.
11992
11993 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
11994
11995         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
11996
11997 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11998
11999         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
12000         ORing with 0xffff??00 with the highest bit of the ?? part set.
12001         (compute_logical_op_length): Update.
12002         (compute_logical_op_cc): Likewise.
12003
12004 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
12005
12006         * bb-reorder.c (find_traces_1_round): Fixed condition for small
12007         destination block with multiple predecessors.
12008         (connect_traces): Check whether the block is a start of trace.
12009
12010 2003-02-19  Jan Hubicka  <jh@suse.cz>
12011
12012         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
12013         * function.c (assign_params): Likewise.
12014         * arm-protos.h (arm_init_cumulative_args): Update prototype.
12015         * arm.c (arm_init_cumulative_args): Update function.
12016         * arm.h (INIT_CUMULATIVE_ARGS): Update.
12017         * avr-protos.h (init_cumulative_args): Update prototype.
12018         * avr.c (init_cumulative_args): Update function.
12019         * avr.h (INIT_CUMULATIVE_ARGS): Update.
12020         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
12021         * d30v.c (d30v_init_cumulative_args): Update function.
12022         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
12023         * frv-protos.h (frv_init_cumulative_args): Update prototype.
12024         * frv.c (frv_init_cumulative_args): Update function.
12025         * frv.h (INIT_CUMULATIVE_ARGS): Update.
12026         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
12027         * pa.h (INIT_CUMULATIVE_ARGS): Update.
12028         * sparc-protos.h (init_cumulative_args): Update prototype.
12029         * sparc.c (init_cumulative_args): Update function.
12030         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
12031         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
12032
12033 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12034
12035         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
12036         (*ashiftsi_sextqi_7): Likewise.
12037
12038 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12039
12040         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
12041         ISO C99 and C++.
12042
12043         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
12044         for C++ on IRIX 6.5.1[89].
12045         * fixinc/tests/base/internal/sgimacros.h: New file.
12046
12047         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
12048         * fixinc/tests/base/internal/wchar_core.h: New file.
12049
12050         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
12051         socklen_t definition.
12052         * fixinc/fixincl.x: Regenerate.
12053         * fixinc/tests/base/sys/socket.h: New file.
12054         Fixes PR libgcj/9652.
12055
12056 2003-02-19  Jan Hubicka  <jh@suse.cz>
12057
12058         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
12059
12060 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
12061
12062         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
12063         align_jumps_max_skip and align_loops_max_skip.
12064
12065 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
12066
12067         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
12068         test size if named section.
12069
12070 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
12071
12072         * expr.c (expand_expr): Use gen_int_mode for the argument
12073         to gen_rtx_MULT.
12074
12075 2003-02-19  Jan Hubicka  <jh@suse.cz>
12076
12077         * i386.md (cosxf2):  Fix conditional.
12078
12079 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12080
12081         * config/h8300/h8300.md (extendqisi2): Change to an expander.
12082         (*extendqisi2_h8300): New.
12083         (*extendqisi2_h8300hs): Likewise.
12084
12085 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12086
12087         * config/h8300/h8300-protos.h: Update the prototype for
12088         split_adds_subs.  Remove the prototypes for
12089         const_int_le_2_operand and const_int_le_6_operand.
12090         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
12091         (const_int_le_2_operand): Remove.
12092         (const_int_le_6_operand): Likewise.
12093         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
12094         for const_int_le_2_operand and const_int_le_6_operand.
12095         * config/h8300/h8300.md: Update all uses of split_adds_subs.
12096         (a peephole2): New.
12097
12098 2003-02-18  Jan Hubicka  <jh@suse.cz>
12099
12100         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
12101         (cgraph_expand_function): Rewrite.
12102
12103 2003-02-18  Matt Austern <austern@apple.com>
12104
12105         * toplev.c, langhooks.c, langhooks-def.h: Move
12106         write_global_declarations from toplev.c to langhooks.c.
12107
12108 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12109
12110         * config/h8300/h8300.c (general_operand_src): Always check
12111         MODE.
12112         (general_operand_dst): Likewise.
12113
12114 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12115
12116         * convert.c (convert_to_real): Also optimize (float)log(x) into
12117         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
12118
12119 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
12120
12121         * config/sh/sh.c (unspec_caller_rtx_p): New.
12122         (sh_cannot_copy_insn_p): New.
12123         (TARGET_CANNOT_COPY_INSN_P): New.
12124
12125 2003-02-18  Richard Henderson  <rth@redhat.com>
12126
12127         * c-common.c (handle_used_attribute): Accept static data too.
12128
12129 2003-02-18  Nick Clifton  <nickc@redhat.com>
12130             Aldy Hernandez  <aldyh@redhat.com>
12131
12132         * testsuite/gcc.dg/20030218-1.c: New.
12133
12134         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
12135
12136         * target-def.h (TARGET_INITIALIZER): Add
12137         TARGET_VECTOR_TYPES_COMPATIBLE.
12138         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
12139
12140         * target.h (struct gcc_target): Add field vector_types_compatible.
12141
12142         * c-typeck.c (comptypes): Take into account
12143         TARGET_VECTOR_TYPES_COMPATIBLE.
12144         (convert_for_assignment): Same.
12145
12146         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
12147         (rs6000_spe_vector_types_compatible): New.
12148         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
12149
12150 2003-02-19  Andreas Schwab  <schwab@suse.de>
12151
12152         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
12153         * toplev.c: Include langhooks-def.h.
12154
12155 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
12156
12157         * config/mips/mips.h (enum processor_type): Sort entries
12158         alphabetically.
12159         * config/mips/mips.md (define_attr cpu): Sync with processor_type
12160         enum values, including adding entries that were missing.
12161
12162 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
12163
12164         * sh.c (calc_live_regs): Also check GET_CODE when checking if
12165         initial value for PR_REG is still the PR_REG register.
12166
12167 2003-02-18  Jim Wilson  <wilson@redhat.com>
12168
12169         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
12170         instruction in output template.
12171         (bsp_value): Change output template from string to C code, add %,
12172         before actual instruction.
12173         (flushrs): Mark as not predicable.
12174
12175 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
12176
12177         * inclhack.def (netbsd_bogus_semicolon): New fix.
12178         * fixincl.x: Rebuilt.
12179         * tests/base/ctype.h: Update.
12180
12181 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12182
12183         * fold-const.c (negate_expr_p): New function to determine whether
12184         an expression can be negated cheaply.
12185         (fold) [MINUS_EXPR]: Use it to determine whether to transform
12186         -A - B into -B - A for floating point types.
12187
12188 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12189
12190         * sbitmap.c (sbitmap_resize): New function.
12191         * sbitmap.h (sbitmap_resize): Prototype here.
12192         * recog.c (split_all_insns): Use sbitmap_resize.
12193
12194 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12195
12196         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
12197         insn length.
12198         (extendqisi2): Likewise.
12199         (*extendhisi2_h8300): Likewise.
12200
12201 2003-02-18  Matt Austern <austern@apple.com>
12202
12203         * langhooks.h, langhooks-def.h: introduce new langhook,
12204         final_write_globals, with write_global_declarations as default.
12205         * toplev.c: Move invocation of wrapup_global_declarations from
12206         compile_file to new function, write_global_declarations.  Change
12207         compile_file to use final_write_globals hook.  Change
12208         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
12209         conditional.
12210
12211 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12212
12213         * pa.md: Correct and enhance comment.
12214
12215 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
12216
12217         * gcc.c (validate_switches): Don't scan past closing '}'.
12218
12219 2003-02-18  Ben Elliston  <bje@redhat.com>
12220
12221         PR c++/1607
12222         * doc/extend.texi (Function Attributes): Document the effect of
12223         the C++ "this" parameter on the counting of arguments for the
12224         "format" and "format_arg" attributes.
12225
12226 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
12227
12228         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
12229         (__ev_stdw): Same.
12230         (__ev_stdh): Same.
12231
12232 2003-02-17  Jan Hubicka  <jh@suse.cz>
12233
12234         * recog.c (split_all_insns):  Fix memory overflow.
12235
12236 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12237
12238         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
12239         (cmphi): Likewise.
12240         (*cmphi_h8300): Likewise.
12241         (*cmphi_h8300hs): Likewise.
12242         (cmpsi): Likewise.
12243         (7 peephole2): Likewise.
12244
12245 2003-02-16  Jan Hubicka  <jh@suse.cz>
12246
12247         * c-typeck.c (build_c_cast):  Fold constant variables into
12248         initial values.
12249
12250 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12251
12252         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
12253         (Binaries): Ditto for Sinix/Reliant Unix.
12254
12255 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
12256
12257         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
12258         not overlap the final result register.
12259
12260 2003-02-16 Arend Bayer <arend.bayer@web.de>
12261            Richard Henderson  <rth@redhat.com>
12262
12263         PR c/8068
12264         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
12265         rearrange mult arguments for less recursion.
12266         (extract_muldiv): New.  Prevent runaway recursion.
12267
12268 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
12269
12270         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
12271         MASK_ALIGN_DOUBLE.
12272
12273 2003-02-15  Roger Sayle  <roger@eyesopen.com>
12274
12275         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
12276         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
12277         (ext_80387_constants_table): Global table of 80387 special constants
12278         guarded by ext_80387_constants_init flag when not initialized.
12279         (init_ext_80387_constants): New function to initialize this table.
12280         (standard_80387_constant_p): Extend to recognize extra 80387
12281         constants, in XFmode, on processors where this is a win.
12282         (standard_80387_constant_opcode): New function to return the
12283         opcode associated with standard_80387_constant_p.
12284         (standard_80387_constant_rtx): New function to return the XFmode
12285         CONST_DOUBLE associated with standard_80387_constant_p.
12286         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
12287
12288         * config/i386/i386-protos.h (standard_80387_constant_opcode):
12289         Prototype here.
12290         (standard_80387_constant_rtx): Likewise.
12291
12292         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
12293         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
12294         *movtf_integer): Simplify using new standard_80387_constant_opcode.
12295
12296 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
12297
12298         * doc/invoke.texi (Optimize Options): Correct @option syntax.
12299
12300 2003-02-15  Richard Henderson  <rth@redhat.com>
12301
12302         * Makefile.in (cfglayout.o): Depend on TARGET_H.
12303         * cfglayout.c: Include target.h.
12304         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
12305         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
12306         * target.h (struct gcc_target): Add cannot_copy_insn_p.
12307
12308         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
12309         (TARGET_CANNOT_COPY_INSN_P): New.
12310         (override_options): Revert 2003-02-08 hack.
12311
12312 2003-02-15  Richard Henderson  <rth@redhat.com>
12313
12314         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
12315         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
12316
12317 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
12318
12319         * config/rs6000/rs6000.h (processor_type): Add PPC440.
12320         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
12321         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
12322         TARGET_SCHED_VARIABLE_ISSUE): Define.
12323         (rs6000_use_dfa_pipeline_interface): New function.
12324         (rs6000_multipass_dfa_lookahead): New Function.
12325         (rs6000_variable_issue): New function.
12326         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
12327         (rs6000_issue_rate): Add PPC440.
12328         * config/rs6000/rs6000.md (unspec list): Correct typo.
12329         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
12330         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
12331         cmp, delayed_cr, mfcr, mtcr.
12332         (automata_option): Set "ndfa".
12333         (extendMMNN2): Update attributes.
12334         (movcc_internal1): Discourage move to non-cr0.  Update
12335         attributes.
12336         (movMM_update): Update attributes.
12337         (cmpMM_internal): Update attributes.
12338         (sCC CR materialization): Update attributes.
12339         (branch patterns): Do not discourage non-cr0.
12340         (cr logical patterns): Prefer destructive register allocation.
12341         Update attributes.
12342         (movesi_from_cr): Update attribute.
12343         (mtcrf_operation): Update attribute.
12344         (mtcrfsi): Update attribute.
12345         * config/rs6000/40x.md: New file.
12346         * config/rs6000/603.md: New file.
12347         * config/rs6000/6xx.md: New file.
12348         * config/rs6000/7450.md: New file.
12349         * config/rs6000/7xx.md: New file.
12350         * config/rs6000/mpc.md: New file.
12351         * config/rs6000/power4.md: New file.
12352         * config/rs6000/rios1.md: New file.
12353         * config/rs6000/rios2.md: New file.
12354         * config/rs6000/rs64.md: New file.
12355         [Some DFA descriptions based on work by Michael Hayes]
12356
12357 2003-02-15  Richard Henderson  <rth@redhat.com>
12358
12359         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
12360         successors with multiple predecessors.
12361         (connect_traces): Try harder to copy traces of length 1.
12362
12363         * function.h (struct function): Add computed_goto_common_label,
12364         computed_goto_common_reg.
12365         * function.c (free_after_compilation): Zap them.
12366         * stmt.c (expand_computed_goto): Use them to produce one
12367         indirect branch per function.
12368
12369 2003-02-15  Richard Henderson  <rth@redhat.com>
12370
12371         * cfgcleanup.c: Include params.h.
12372         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
12373         too many outgoing edges from a block.
12374         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
12375         * params.def (max-crossjump-edges): New.
12376         * doc/invoke.texi: Document it.
12377
12378 2003-02-15  Richard Henderson  <rth@redhat.com>
12379
12380         * recog.c (split_all_insns): Include new blocks in life update;
12381         do a global life update.
12382
12383 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
12384
12385         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
12386         Update copyright.
12387         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
12388         -mno-cygwin case.
12389
12390 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
12391
12392         PR optimization/7702
12393         * reload1.c (reload_cse_simplify_set): Honor
12394         CANNOT_CHANGE_MODE_CLASS.
12395
12396 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
12397
12398         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
12399         function.
12400         * config/mn10300/mn10300-protos.h: Declare it.
12401         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
12402         attribute cc of instructions that may use clr.
12403
12404 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
12405
12406         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
12407         (x - (x & y)) is found.
12408
12409 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12410
12411         * configure.in: Fix typo.
12412         * configure: Regenerate.
12413
12414 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
12415
12416         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
12417
12418 2003-02-13  Adam Nemet  <anemet@lnxw.com>
12419
12420         PR opt/2391
12421         * combine.c: Fix spelling in comment.
12422         (cached_nonzero_bits): New function.
12423         (cached_num_sign_bit_copies): New function.
12424         (nonzero_bits_with_known): New macro.
12425         (num_sign_bit_copies_with_known): New macro.
12426         (nonzero_bits1): Rename from nonzero_bits.  Add three new
12427         arguments.  Change calls from nonzero_bits to
12428         nonzero_bits_with_known.
12429         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
12430         three new arguments.  Change calls from num_sign_bit_copies to
12431         num_sign_bit_copies_with_known.
12432         (nonzero_bits): New macro.
12433         (num_sign_bit_copies): New macro.
12434         (update_table_tick): Don't traverse identical subexpression more
12435         than once.
12436         (get_last_value_validate): Likewise.
12437
12438 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
12439
12440         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
12441         * function.h (struct emit_status): Length of regno_pointer_align
12442         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
12443         not regno_pointer_align_length (i.e. length actually used, not
12444         length as allocated)
12445
12446         * config/i386/i386.c (struct stack_local_entry): New.
12447         (struct machine_function): Replace huge array with alist.
12448         (assign_386_stack_local): Change to match.
12449
12450 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
12451
12452         * inclhack.def (hpux_long_double): Tighten select and add bypass
12453         regexp.
12454         * fixincl.x: Rebuilt.
12455
12456 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
12457
12458         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
12459         edge and block ends with a jump insn it must be simple jump.
12460
12461 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
12462
12463         * Makefile.in (PREPROCESSOR_DEFINES): Add
12464         @TARGET_SYSTEM_ROOT_DEFINE@.
12465         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
12466         is specified or if building a cross compiler.
12467         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
12468         if the sysroot is under $exec_prefix.
12469         * configure: Regenerated.
12470         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
12471         defined.
12472         (struct default_include): Add add_sysroot field.
12473         (cpp_SYSROOT): Declare.
12474         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
12475         field.
12476         (cpp_SYSROOT): New variable.
12477         * cppinit.c (cpp_create_reader): Initialize
12478         CPP_OPTION (pfile, sysroot).
12479         (init_standard_includes): Handle add_sysroot.  Do not
12480         add unrelocated copies of relocated directories.
12481         (COMMAND_LINE_OPTIONS): Add -isysroot.
12482         (cpp_handle_option): Handle -isysroot.
12483         * cpplib.h (struct cpp_options): Add sysroot member.
12484         * gcc.c (The Specs Language): Update description of %I.
12485         (target_system_root_changed): New variable.
12486         (process_command): Conditionalize make_relative_prefix call
12487         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
12488         target_system_root_changed.
12489         (do_spec_1): Add -isysroot to %I.
12490         * doc/invoke.texi (Spec Files): Update description of %I.
12491         * doc/install.texi (--with-sysroot): Update comment about
12492         relocation.
12493
12494 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
12495
12496         * config/h8300/h8300.md (a peephole2): New.
12497
12498 2003-02-13  Robert Lipe <robertlipe@usa.net>
12499             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12500
12501         * doc/install.texi (Specific): Update three SCO-related URLs.
12502
12503 2003-02-13  Andreas Schwab  <schwab@suse.de>
12504
12505         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
12506         Parenthesize properly.
12507         (NPREDECESORS): Parenthesize properly.
12508
12509 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12510
12511         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
12512
12513 2003-02-12  Roger Sayle  <roger@eyesopen.com>
12514
12515         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
12516         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
12517
12518         * reg-stack.c (subst_stack_regs_pat): Add support for binary
12519         UNSPEC instructions (e.g. "fpatan").
12520
12521 2003-02-12  Mike Stump  <mrs@apple.com>
12522
12523         * varray.c (element_size): Remove.
12524         (uses_ggc): Remove.
12525         (element): Add.
12526         (varray_init): Use new interface.
12527         (varray_grow): Use new interface.
12528         (varray_clear): Use new interface.
12529
12530 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
12531
12532         * config/rs6000/spe.h: Add casts to the arguments of the following
12533         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
12534         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
12535         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
12536         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
12537         __ev_get_u16, __ev_get_s16.
12538
12539 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12540
12541         * config/h8300/h8300.md (a peephole2): New.
12542
12543 2003-02-12  Jan Hubicka  <jh@suse.cz>
12544
12545         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
12546         (OBJS): Add callgraph.o
12547         (callgraph.o): New.
12548         * c-decl.c (expand_body_1): Break out from ...
12549         (expand_body): This one;  change calling convention
12550         (finish_function): Move some of expand_body logic here.
12551         (c_expand_deferred_function): Update call of expand_body
12552         (c_expand_stmt): Use c_expand_body_1.
12553         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
12554         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
12555         * c-tree.h (c_expand_body): Declare.
12556         * callgraph.c: New file.
12557         * flags.h (flag_unit_at_a_time): Declare.
12558         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
12559         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
12560         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
12561         * langhooks.h (struct lang_hooks_for_callgraph): New.
12562         (struct lang_hooks): Add callgraph field.
12563         * toplev.c (flag_unit_at_a_time): New.
12564         (lang_independent_options): Add flag_unit_at_a_time.
12565         (process_options): Disable unit-at-a-time mode for frontends not
12566         supporting callgraph.
12567         * tree-inline.c (typedef struct inline_data): Add "decl"
12568         (expand_call_inline): Update callgraph.
12569         (optimize_inline_calls): Set id.decl.
12570         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
12571         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
12572         cgraph_calls_p): Declare.
12573         * invoke.texi (-funit-at-a-time): Document
12574
12575 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
12576
12577         * config/rs6000/spe.h: Fix misc formatting.
12578         (__ev_create_ufix32_fs): Cast ev argument.
12579         (__ev_create_sfix32_fs): Same.
12580         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
12581         (__ev_get_ufix32_fs_internal): Same.
12582
12583 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
12584
12585         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
12586         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
12587
12588 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
12589
12590         * cpplib.c (do_include_common): Move warnings for
12591         #include_next and #import out to callers.  Use early-return
12592         instead of nested ifs.  Don't do check_eol here.
12593         (parse_include): Do check_eol here with the rest of the
12594         parsing stuff.
12595         (do_include_next, do_import): Now handle warnings.
12596
12597 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12598
12599         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
12600
12601 2003-02-12  Jan Hubicka  <jh@suse.cz>
12602
12603         * predict.c (estimate_probability):  Fix roundoff error.
12604
12605 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12606
12607         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
12608         (two peephole2): New.
12609
12610 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12611
12612         * config/h8300/h8300.md (several peephole2): Replace
12613         find_regno_note with peep2_reg_dead_p.
12614
12615 2003-02-11  Richard Henderson  <rth@redhat.com>
12616
12617         * gcse.c (lookup_set): Remove unused argument PAT.  Update
12618         both callers.
12619
12620 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
12621
12622         * diagnostic.c (real_abort): New.
12623         (diagnostic_report_diagnostic): Call real_abort on error.
12624         * diagnostic.h (diagnostic_abort_on_error): New.
12625         (struct diagnostic_context): Add abort_on_error field.
12626         * toplev.c (setup_core_dumping): New.
12627         (decode_d_option): Handle 'H' case.
12628         * doc/invoke.texi (Debugging Options): Document -dH.
12629
12630 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
12631
12632         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
12633         which refers to obsolete directories.
12634
12635 2003-02-11  Richard Henderson  <rth@redhat.com>
12636
12637         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
12638
12639 2002-10-21  Jan Hubicka  <jh@suse.cz>
12640
12641         * i386.c (contains_128bit_aligned_vector_p): New function.
12642         (ix86_function_arg_boundary): Properly align vector modes.
12643
12644 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
12645
12646         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
12647         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
12648         as a SET pattern.
12649
12650 2003-02-11  Roger Sayle  <roger@eyesopen.com>
12651
12652         * builtins.c:  Fix failure caused by commiting wrong patch.
12653
12654 2003-02-11  Dale Johannesen  <dalej@apple.com>
12655         * ra-build.c (compare_and_free_webs):  Relax checking.
12656         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
12657         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
12658
12659 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
12660
12661         PR optimization/9651
12662         * rtlanal.c (may_trap_p): Handle FIX.
12663
12664 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
12665
12666         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
12667         * doc/invoke.texi: Extra alias.
12668
12669 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
12670
12671         * config/rs6000/host-darwin.c: Fix comment.
12672
12673 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
12674
12675         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
12676         predicate for mod result.
12677
12678 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12679
12680         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
12681         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
12682         * fixincl.x: Rebuilt.
12683         * tests/base/stdlib.h: Update.
12684         * tests/base/ctype.h: New file.
12685
12686 2003-02-11  Jan Hubicka  <jh@suse.cz>
12687
12688         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
12689
12690 2003-02-11  Richard Henderson  <rth@redhat.com>
12691
12692         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
12693         appropriated as globals.
12694         (ix86_expand_clrstr): Similarly.
12695         * config/i386/i386.md (cmpstrsi): Similarly.
12696
12697 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
12698
12699         * config/h8300/h8300.md (a peephole2): Add a case of 255.
12700
12701 2003-02-11  Roger Sayle  <roger@eyesopen.com>
12702
12703         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
12704         (pow_optab, atan2_optab): Define corresponding macros.
12705         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
12706         * genopinit.c (optabs): Implement pow_optab and atan2_optab
12707         using pow?f3 and atan2?f3 patterns.
12708         * builtins.c (expand_errno_check): New function to update errno
12709         if necessary, split out from expand_builtin_mathfn.
12710         (expand_builtin_mathfn): Use expand_errno_check.
12711         (expand_builtin_mathfn_2): New function to handle expanding binary
12712         math functions, reusing the code in expand_errno_check.
12713         (expand_builtin): Handle the pow and atan2 math built-ins,
12714         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
12715         expand_builtin_mathfn_2.
12716
12717         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
12718
12719 2003-02-11  Jan Hubicka  <jh@suse.cz>
12720
12721         * combine.c (combine_simplify_rtx): Fix folding of
12722         nested float_truncates.
12723
12724 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
12725
12726         * config/h8300/h8300.md (a peephole2): Fix a typo.
12727
12728 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
12729
12730         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
12731         register number.
12732
12733 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
12734
12735         * config/h8300/h8300-protos.h: Add a prototype for
12736         gtuleu_operator.
12737         * config/h8300/h8300.c (gtuleu_operator): New.
12738         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
12739         * config/h8300/h8300.md (a peephole2): New.
12740
12741 2003-02-11  Jan Hubicka  <jh@suse.cz>
12742
12743         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
12744
12745 2003-02-11  Jan Hubicka  <jh@suse.cz>
12746
12747         * predict.c (choose_function_section): Choose sections correctly.
12748
12749 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12750
12751         * reload1.c (first_label_num): New.
12752         (reload): Index offsets_known_at and offsets_at using difference of
12753         label number and first label number.  Don't use offset pointers.
12754         (set_label_offsets, set_initial_label_offsets): Likewise.
12755
12756 2003-02-10  Roger Sayle  <roger@eyesopen.com>
12757
12758         * mips-tfile.c (init_file): Add missing initializers in the
12759         "#ifdef __alpha" case.
12760         (file_offset, max_file_offset): Declare as unsigned long.
12761         (write_varray): Cast to "unsigned long" in comparisons against
12762         either file_offset or max_file_offset.
12763         (write_object): Likewise.
12764         (read_seek): Likewise.
12765         (copy_object): Likewise. Declare "ifd" as int to match its use
12766         in add_ext_symbol, and avoid signed/unsigned conditional warning.
12767
12768 2003-02-10  Nick Clifton  <nickc@redhat.com>
12769             Aldy Hernandez  <aldyh@redhat.com>
12770
12771         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
12772         override options which have been specified on the command line.
12773
12774 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12775
12776         * config/h8300/h8300.md (abssf2): New.
12777         (*abssf2_h8300): Likewise.
12778         (*abssf2_h8300hs): Likewise.
12779
12780 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
12781
12782         * tree.c (build_tree_list):  Fix parameter names in comment.
12783
12784 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
12785
12786         * config/rs6000/ppc64-fp.c: New file.
12787         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
12788
12789 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
12790
12791         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
12792         * bb-reorder.c (make_reorder_chain): Deleted.
12793         (make_reorder_chain_1): Deleted.
12794         (find_traces): New function.
12795         (rotate_loop): New function.
12796         (mark_bb_visited): New function.
12797         (find_traces_1_round): New function.
12798         (copy_bb): New function.
12799         (bb_to_key): New function.
12800         (better_edge_p): New function.
12801         (connect_traces): New function.
12802         (copy_bb_p): New function.
12803         (get_uncond_jump_length): New function.
12804         (reorder_basic_blocks): Use new functions (Software Trace Cache).
12805         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
12806         boundaries.
12807
12808 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
12809
12810         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
12811
12812 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
12813
12814         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
12815         (DECL_LIVE_RANGE_RTL): Remove.
12816
12817 2003-02-10  Nick Clifton  <nickc@redhat.com>
12818
12819         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
12820         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
12821         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
12822         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
12823         config/arm/freebsd.h, config/arm/linux-elf.h,
12824         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12825         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
12826         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
12827         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
12828         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
12829         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
12830         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
12831         and reformat as appropriate.
12832
12833 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12834
12835         * config/h8300/clzsi2.c: Remove.
12836         * config/h8300/ctzsi2.c: Likewise.
12837         * config/h8300/paritysi2.c: Likewise.
12838         * config/h8300/popcountsi2.c: Likewise.
12839         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
12840         ctzsi2, paritysi2, and popcountsi2.
12841
12842 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
12843             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
12844
12845         PR c/7741
12846         * c-decl.c (duplicate_decls): Discard the initializer of the
12847         new decl when the types are conflicting.
12848
12849 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
12850
12851         * Makefile.in (sreal.o): Added.
12852         (predict.o): Depends on sreal.h instead of real.h.
12853         * sreal.c: New file.
12854         * sreal.h: New file.
12855         * predict.c: Use sreal.c instead of real.c.
12856
12857 2003-02-10  Nick Clifton  <nickc@redhat.com>
12858
12859         * Contributed support for the Cirrus EP9312 "Maverick"
12860         floating point co-processor.  Written by Aldy Hernandez
12861         <aldyh@redhat.com>.
12862         (config/arm/arm.c): Add Cirrus support.
12863         (config/arm/arm.h): Likewise.
12864         (config/arm/aout.h): Likewise.
12865         (config/arm/arm.md): Likewise.
12866         (config/arm/arm-protos.h): Likewise.
12867         (config.gcc): Likewise.
12868         (doc/invoke.texi): Describe new -mcpu value and new
12869         -mcirrus-fix-invalid-insns switch,
12870         (cirrus.md): New file.
12871
12872 2003-02-10  Jan Hubicka  <jh@suse.cz>
12873
12874         * combine.c (combine_simplify_rtx): Simplify using
12875         (float_truncate (float x)) is (float x)
12876         (float_extend (float_extend x)) is (float_extend x).
12877
12878 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
12879
12880         * calls.c (try_to_integrate): Tidy stack_usage_map access.
12881         (emit_library_call_value_1): Likewise.  Formatting.
12882         (store_one_arg): Likewise.
12883
12884 2003-02-09  Nick Clifton  <nickc@redhat.com>
12885             Aldy Hernandez  <aldyh@redhat.com>
12886
12887         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
12888         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
12889         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
12890         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
12891         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
12892         docs.  Add range test for immediate value.
12893
12894 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
12895
12896         Rename spe_evxor to xorv2si3.
12897         (xorv4hi3): New.
12898         (xorv1di3): New.
12899
12900 2003-02-10  Glen Nakamura  <glen@imodulo.com>
12901
12902         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
12903         tag.
12904
12905 2003-02-10  Jan Hubicka  <jh@suse.cz>
12906
12907         * i386.c (vector_move_operand): New predicate.
12908         (ix86_expand_vector_move): Be happy about 0.
12909         * i386.h (PREDICATE_CODES): Add sse-move_operand.
12910         * i386.md (mov*_internal): Add 'C' alternative.
12911
12912 2003-02-09  Jan Hubicka  <jh@suse.cz>
12913
12914         * i386.md (floathi*): Deal with SSE.
12915
12916 2003-02-09  Jan Hubicka  <jh@suse.cz>
12917
12918         * simplify-rtx.c (simplify_unary_operation,
12919         simplify_binary_operation):  Deal with vector modes
12920         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
12921
12922 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
12923
12924         * toplev.c (rest_of_compilation): Recompute register usage after
12925         split_all_insns.
12926
12927 2003-02-09  Richard Henderson  <rth@redhat.com>
12928
12929         * libgcc-std.ver (__clztf2): New.
12930         (__ctztf2, __popcounttf2, __paritytf2): New.
12931         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
12932         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
12933         adjust code to match the different type sizes.
12934         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
12935         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
12936
12937         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
12938         TImode; select word_mode and twice that.
12939         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
12940         select the modes from float, double, and long double.
12941         (init_optabs): Remove duplicate initializations.
12942
12943 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
12944
12945         * doc/install.texi: Squeeze and streamline section on
12946         testing and regression checking.
12947
12948 2003-02-09  Jan Hubicka  <jh@suse.cz>
12949
12950         * i386.md (ahi?v*3): Set third operand type to TImode.
12951         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
12952
12953         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
12954         integer mode.
12955
12956         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
12957         Change code so they are arithmetic expressions now.
12958         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
12959         simplify_ternary_operation): Deal with VEC_* expressions.
12960
12961         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
12962
12963 2003-02-08  Jan Hubicka  <jh@suse.cz>
12964
12965         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
12966         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
12967         possibly got duplicated.
12968
12969 2003-02-08  Richard Henderson  <rth@redhat.com>
12970
12971         * config/alpha/alpha.c (override_options): Turn off explicit
12972         relocs until post-peep2 code duplication resolved.
12973
12974 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12975
12976         * optabs.c (expand_unop): Widen clz properly when clz is done
12977         via libcall.
12978
12979 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12980
12981         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
12982         * config/h8300/crti.asm: Likewise.
12983         * config/h8300/crtn.asm: Likewise.
12984         * config/h8300/ctzsi2.c: Likewise.
12985         * config/h8300/fixunssfsi.c: Likewise.
12986         * config/h8300/h8300-protos.h: Likewise.
12987         * config/h8300/h8300.c: Likewise.
12988         * config/h8300/h8300.h: Likewise.
12989         * config/h8300/h8300.md: Likewise.
12990         * config/h8300/paritysi2.c: Likewise.
12991         * config/h8300/popcountsi2.c: Likewise.
12992         * config/h8300/rtems.h: Likewise.
12993
12994 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12995
12996         * doc/invoke.texi: Documentation for my previous commit.
12997         * doc/passes.texi: Ditto.
12998
12999 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13000
13001         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
13002         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
13003         Declare.
13004         (DLTHE_FLAG_UPDATE_FREQ): New.
13005         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
13006         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
13007         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
13008         fix_bb_placement, fix_bb_placements, place_new_loop,
13009         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
13010         New static functions.
13011         (fix_loop_placement, can_duplicate_loop_p,
13012         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
13013         New functions.
13014
13015         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
13016         unswitch_loops): Declare.
13017         * loop-init.c: New file.
13018         * loop-unswitch.c: New file.
13019         * Makefile.in (loop-init.o, loop-unswitch.o): New.
13020         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
13021         * toplev.c (DFI_loop2): New dump.
13022         (flag_unswitch_loops): New.
13023         (lang_independent_options): Add it.
13024         (rest_of_compilation): Call new loop optimizer.
13025         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
13026
13027 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13028
13029         * config/h8300/clzsi2.c: New.
13030         * config/h8300/ctzsi2.c: Likewise.
13031         * config/h8300/paritysi2.c: Likewise.
13032         * config/h8300/popcountsi2.c: Likewise.
13033         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
13034
13035 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
13036
13037         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
13038         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
13039         (ctzsi2): New pattern.
13040         (ffssi2): Use clz instead of unspec.
13041         (clzdi2): Rename from cntlzd2.
13042         (ctzdi2): New pattern.
13043         (ffsdi2): Use clz instead of unspec.
13044
13045 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
13046
13047         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
13048         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
13049         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
13050         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
13051
13052 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
13053
13054         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
13055
13056 2003-02-07  Richard Henderson  <rth@redhat.com>
13057
13058         PR 9226
13059         * gcse.c (local_cprop_find_used_regs): New.
13060         (local_cprop_pass): Use it.
13061
13062 2003-02-07  Fred Fish  <fnf@intrinsity.com>
13063
13064         * mips-tfile.c (parse_def): Parenthesize assignments to fix
13065         precedence bugs.
13066
13067 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
13068
13069         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
13070
13071 2003-02-07  Roger Sayle  <roger@eyesopen.com>
13072
13073         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
13074         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
13075         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
13076         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
13077         builtin functions (and their __builtin_* variants).
13078         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
13079         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
13080         when not optimizing.
13081
13082         * doc/extend.texi: Document new pow and atan2 builtins, and
13083         their float and long double variants.  Realphabetize builtins.
13084
13085 2003-02-07  Jan Hubicka  <jh@suse.cz>
13086
13087         * i386.md (sse2_nandv2di3): Fix.
13088
13089 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
13090
13091         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
13092         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
13093         definition.
13094         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
13095         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
13096
13097 2003-02-07  Jan Hubicka  <jh@suse.cz>
13098
13099         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
13100
13101 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
13102
13103         * cfg.c (dump_flow_info): Add back accidently deleted line.
13104
13105 2003-02-07  Andrey Petrov <petrov@netbsd.org>
13106
13107         * optabs.c (expand_float): Search wider integer modes first.
13108
13109 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
13110
13111         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
13112         based on preprocessor flag.
13113
13114 2003-02-07  Roger Sayle  <roger@eyesopen.com>
13115             Richard Henderson  <rth@redhat.com>
13116
13117         * gcse.c (implicit_sets): New.
13118         (compute_hash_table_work): Include them in hash table.
13119         (find_implicit_sets, fis_get_condition): New.
13120         (one_cprop_pass): Allocate and free implicit_sets; call
13121         find_implicit_sets before building hash table.
13122
13123 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
13124
13125         * config/t-netbsd (USER_H): Revert previous change.
13126
13127 2003-02-07  Gabor Greif  <ggreif@lucent.com>
13128
13129         * doc/c-tree.texi (Namespaces): Fix typo.
13130
13131 2003-02-07  Jan Hubicka  <jh@suse.cz>
13132
13133         * regrename.c (do_replace, find_oldest_value_reg,
13134         copyprop_hardreg_forward_1): Update register attributes.
13135
13136 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
13137
13138         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
13139         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
13140         variables starting with underscore.
13141         (struct unit_usage): New structure.
13142         (unit_usages, cycle_alt_unit_usages): New global variables.
13143         (check_unit_distribution_in_reserv): Remove it.
13144         (store_alt_unit_usage): New function.
13145         (check_regexp_units_distribution): Rewrite it.
13146
13147 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13148
13149         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
13150         target_cpu_default.
13151         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
13152         if not MASK_NO_SPACE_REGS.
13153         (output_call): Adjust return pointer, don't load new space register
13154         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
13155         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
13156         TARGET_NO_SPACE_REGS is true.
13157         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
13158         conditions.
13159         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
13160         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
13161         true.  Use bve when TARGET_64BIT is true.
13162
13163 2003-02-06  Richard Henderson  <rth@redhat.com>
13164
13165         * combine.c (nonzero_bits): Fix double break.
13166
13167 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
13168             Richard Henderson <rth@redhat.com>
13169
13170         PR c/9530
13171         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
13172         from functions that return a float to functions that don't.
13173
13174 2003-02-06  Jan Hubicka  <jh@suse.cz>
13175
13176         * i386.c (x86_inter_unit_moves): New variable.
13177         (ix86_secondary_memory_needed): Fix 64bit case, honor
13178         TARGET_INTER_UNIT_MOVES
13179         * i386.h (x86_inter_unit_moves): Declare.
13180         (TARGET_INTER_UNIT_MOVES): New macro.
13181         * i386.md (movsi_1): Cleanup constraints; disable
13182         when not doing inter-unit moves.
13183         (movsi_1_nointernunit): New.
13184         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
13185         (movdi_1_rex64_nointerunit): New.
13186         (mivsf_1): disable when not doing inter-unit moves.
13187         (movsf_1_nointerunit): New.
13188
13189         * basic-block.h (inside_basic_block_p):  Declare.
13190         * cfgbuild.c (inside_basic_block_p): Make global.
13191         * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
13192         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
13193         update CFG.
13194         (fix_basic_block_boundaries, add_missing_bbs): New.
13195         (rank): Use profile.
13196         (scheudle_ebbs): Rely on CFG; update coments.
13197
13198 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
13199
13200         * Makefile.in (host_hook_obj): New.
13201         (OBJS): Add $(host_hook_obj).
13202         (host_default.o): New rule.
13203         * config.gcc (host_hook_obj): New, default to host-default.o.
13204         (powerpc-*-darwin*): Use host-darwin.o.
13205         (out_host_hook_obj): New.
13206         * configure: Regenerate.
13207         * configure.in: Print information about out_host_hook_obj, substitute
13208         into output files.
13209         * host-default.c: New file.
13210         * hosthooks.h: New file.
13211         * toplev.c (general_init): Call host_hooks.extra_signals.
13212         * config/rs6000/host-darwin.c: New file.
13213         * config/rs6000/x-darwin: New file.
13214         * doc/hostconfig.texi: Add documentation for new host hook.
13215         Rearrange existing documentation.
13216
13217 2003-02-05  Roger Sayle  <roger@eyesopen.com>
13218
13219         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
13220         with *targetm.delegitimize_address.
13221         (rtl_for_decl_location): Likewise.
13222         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
13223         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
13224
13225         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
13226         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
13227         prototype.
13228         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
13229         i386_simplify_dwarf_addr.  Made static.  Prototyped.
13230         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
13231         i386_simplify_dwarf_addr to ix86_delegitimize_address.
13232         (ix86_find_base_term): Likewise.
13233         (maybe_get_pool_constant): Likewise.
13234
13235         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
13236         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
13237         prototype.
13238         * config/s390/s390.c (s390_delegitimize_address): Renamed from
13239         s390_simplify_dwarf_addr.  Made static.  Prototyped.
13240         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
13241
13242 2003-02-05  Richard Henderson  <rth@redhat.com>
13243
13244         PR c/8602
13245         * integrate.c (output_inline_function): Reset input_filename
13246         and lineno from the decl before rest_of_compilation.
13247
13248 2003-02-05  Richard Henderson  <rth@redhat.com>
13249
13250         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
13251         (CTZ_DEFINED_VALUE_AT_ZERO): New.
13252         * doc/rtl.texi, doc/tm.texi: Document them.
13253
13254         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
13255         of the value at zero properly.
13256         * fold-const.c (tree_expr_nonnegative_p): Likewise.
13257         * simplify-rtx.c (simplify_unary_operation): Likewise.
13258
13259         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
13260         (CTZ_DEFINED_VALUE_AT_ZERO): New.
13261
13262         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
13263         (TARGET_EXPAND_BUILTIN): Remove.
13264         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
13265         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
13266         (enum arm_builtins): Remove.
13267         * config/arm/arm.md (UNSPEC_CLZ): Remove.
13268         (clzsi2): Rename from clz; use clz instead of unspec.
13269         (ctzsi2): New.
13270         * config/arm/arm-protos.h: Update.
13271
13272 2003-02-05  Jan Hubicka  <jh@suse.cz>
13273
13274         * i386-protos.h (x86_emit_floatuns):  Declare.
13275         * i386.c (x86_emit_floatuns): New global function.
13276         * i386.md (floatunssisf2, floatunsdisf2,
13277         floatunsdidf2):  New patterns.
13278
13279 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13280
13281         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
13282
13283 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
13284
13285         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
13286           config/ia64/linux.h
13287
13288 2003-02-05  Roger Sayle  <roger@eyesopen.com>
13289
13290         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
13291
13292 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
13293
13294         PR optimization/8555
13295         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
13296         instead of aborting.
13297
13298 2003-02-04  Richard Henderson  <rth@redhat.com>
13299
13300         * config/i386/i386.md (UNSPEC_BSF): Remove.
13301         (ffssi2): Split into cmove and no_cmove insns and splitters;
13302         lose pentium float trick for now.
13303         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
13304         (ctzsi2, clzsi2, bsr): New.
13305
13306 2003-02-04  Richard Henderson  <rth@redhat.com>
13307
13308         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
13309         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
13310         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
13311         (ffsdi2): Use popcount instead of unspec.
13312         (popcountdi2): Rename from *popcnt.
13313         (ctzdi2, clzdi2, getf_exp_tf): New.
13314
13315 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13316
13317         * genconfig.c (main): Generate CC0_P.
13318         * rtl.h (CC0_P): Remove.
13319
13320 2003-02-04  Richard Henderson  <rth@redhat.com>
13321
13322         * libgcc2.h, libgcc2.c (__ffsSI2): New.
13323         (__ffsDI2): Rename from __ffsdi2.
13324         * mklibgcc.in (lib2funcs): Add _ffssi2.
13325
13326 2003-02-04  Richard Henderson  <rth@redhat.com>
13327
13328         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
13329         rounds with a "bit table" lookup.
13330
13331 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13332
13333         * reload.c (find_reloads): Do not use the mode specified in the insn
13334         pattern as reload mode for address operands.  Do not generate optional
13335         reloads for operands where a mandatory reload was already pushed.
13336
13337 2003-02-04  Richard Henderson  <rth@redhat.com>
13338
13339         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
13340         builtins instead of inline assembly.
13341
13342 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
13343
13344         PR c/9376
13345         * libgcc2.c (__subvdi3): Fix typo.
13346
13347 2003-02-04  Jan Hubicka  <jh@suse.cz>
13348
13349         * i386.md (movti_rex64):  Fix constraint.
13350
13351 2003-02-04  Jan Hubicka  <jh@suse.cz>
13352
13353         * i386.md (vector push splitters):  Fix typo in resolving conflict.
13354
13355 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
13356
13357         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
13358
13359 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
13360
13361         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
13362         for recent libstdc++.  Remove formatting cruft.
13363
13364 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
13365
13366         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
13367         attribute even if input file name is absolute, but one of the
13368         includes is relative.
13369
13370 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
13371
13372         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
13373         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
13374         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
13375
13376 2003-02-03  Richard Henderson  <rth@redhat.com>
13377
13378         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
13379         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
13380         return type to "int".  Shuffle declarations and undef int trap.
13381         * libgcc2.h: Remove their declarations.
13382         * optabs.c (expand_unop): Force outmode to int for bitops.
13383
13384 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
13385
13386         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
13387         coprocessor registers before floating-point registers.
13388         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
13389         to account for a previously removed register.
13390         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
13391         Delete unused macros.
13392
13393 2003-02-03  Jan Hubicka  <jh@suse.cz>
13394
13395         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
13396         (mov*_internal): Fix predicates; require one of operands to not be
13397         memory.
13398         (SSE?MMX move expanders):  Fix predicates; force one of operands to
13399         register.
13400         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
13401         (movups/movupd/movdqu patterns): Force one of operands to not be
13402         memory.
13403
13404 2003-02-03  Roger Sayle  <roger@eyesopen.com>
13405
13406         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
13407         takes a single rtx and returns it unmodified.
13408         * hooks.h (hook_rtx_rtx_identity): Prototype here.
13409         * target.h (struct gcc_target): Add "delegitimize_address"
13410         field to target structure.
13411         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
13412         for delegitimize_address target using hook_rtx_rtx_identity.
13413         (TARGET_INITIALIZER): Initialize delegitimize_address field
13414         using TARGET_DELEGITIMIZE_ADDRESS macro.
13415         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
13416         extensions of constant pool references.  Use delegitimize_address
13417         to undo the obfuscation of "-fpic".
13418         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
13419
13420         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
13421         i386_simplify_dwarf_addr.
13422         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
13423         (maybe_get_pool_constant): Likewise.
13424
13425 2003-02-03  Jan Hubicka  <jh@suse.cz>
13426
13427         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
13428
13429 2003-02-03  Jan Hubicka  <jh@suse.cz>
13430
13431         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
13432
13433 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13434
13435         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
13436         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
13437
13438 2003-02-02  Andreas Schwab  <schwab@suse.de>
13439
13440         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
13441
13442 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
13443
13444         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
13445         (epilogue_insns): Likewise.
13446
13447 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13448
13449         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
13450
13451 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13452
13453         * pa-protos.h (attr_length_millicode_call): Remove second argument.
13454         (attr_length_indirect_call, attr_length_indirect_call,
13455         attr_length_save_restore_dltp): New prototypes.
13456         * pa.c (attr_length_millicode_call): Remove second argument.  Check
13457         INSN_ADDRESSES_SET_P in distance calculation.
13458         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
13459         INSN_ADDRESSES.
13460         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
13461         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
13462         Call attr_length_call directly.
13463         (attr_length_indirect_call, output_indirect_call,
13464         attr_length_save_restore_dltp): New functions.
13465         * pa.md (attr_length_millicode_call): Drop second argument from all
13466         patterns.
13467         (return_internal_pic): Delete.
13468         (return_external_pic): Remove use of PIC register and pic operand and
13469         flag checks.
13470         (epilogue): Use return_internal for both normal and pic code.
13471         (call, call_value): Emit new 32-bit pic patterns for symref and
13472         indirect calls.  Remove uses for arg pointer and pic register.
13473         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
13474         call_reg_pic_post_reload, call_val_symref_pic,
13475         call_val_symref_pic_post_reload, call_val_reg_pic,
13476         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
13477         Implement define_split and define_peephole2 patterns for pre reload
13478         patterns.
13479         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
13480         call_value_internal_reg_64bit): Shorten names.
13481         (all call patterns): Explicitly indicate registers used and clobbered.
13482         Use attr_length_indirect_call and attr_length_save_restore_dltp for
13483         attribute length calculation.  Move code generation for indirect calls
13484         to output_indirect_call.
13485         (sibcall, sibcall_value): Don't restore PIC register.
13486         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
13487         register retore.
13488
13489 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13490
13491         * doc/install.texi (Testing): Simplify and compress instructions
13492         concerning Dejagnu.
13493
13494 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13495
13496         * collect2.c (pexecute_pid): Rename to pid.
13497         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
13498         pid.
13499
13500 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
13501
13502         * doc/extend.texi (Function Attributes): Remove documentation
13503         for PowerPC Windows NT function attributes..
13504
13505 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
13506
13507         * dwarf2out.c (gen_type_die): Check for typedefs before calling
13508         for TYPE_MAIN_VARIANT.
13509
13510 2003-02-01  Richard Henderson  <rth@redhat.com>
13511
13512         * libgcc2.c: Include auto-host.h.
13513         (ATTRIBUTE_HIDDEN): New.
13514         (__clz_tab): Don't declare here for clz and ctz.
13515         (__clzsi2, __clzdi2): Use count_leading_zeros.
13516         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
13517         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
13518         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
13519         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
13520
13521 2003-02-01  Richard Henderson  <rth@redhat.com>
13522
13523         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
13524         to the conditional.
13525         (ashlsi3_1_zext splitter): Likewise.
13526
13527 2003-02-01  Richard Henderson  <rth@redhat.com>
13528
13529         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
13530         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
13531         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
13532         return type to Wtype.
13533
13534         * libgcc-std.ver (GCC_3.4): Fix inheritance.
13535
13536         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
13537         expander input constraint.
13538
13539 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
13540
13541         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
13542         OTI_parity.
13543         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
13544         * optabs.c (widen_clz, expand_parity): New.
13545         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
13546         for libcalls to clz, ctz, popcount, and parity.
13547         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
13548         parity_optab, and set up libfunc handlers.
13549         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
13550         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
13551         __popcount_tab): New.
13552         * libgcc2.h: Declare them.
13553         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
13554         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
13555         and parity_optab.
13556         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
13557         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
13558         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
13559         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
13560         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
13561         BUILT_IN_PARITYLL): New.
13562         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
13563         and add optab argument.
13564         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
13565         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
13566         * expr.c (expand_expr): Handle them.
13567         * fold-const.c (tree_expr_nonnegative_p): Likewise.
13568         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
13569         * reload1.c (eliminate_regs): Handle them.
13570         (elimination_effects): Likewise.
13571         * function.c (instantiate_virtual_regs_1): Likewise
13572         * genattrtab.c (check_attr_value): Likewise.
13573         * simplify-rtx.c (simplify_unary_operation): Likewise.
13574         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
13575         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
13576         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
13577         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
13578         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
13579         __builtin_arm_clz.
13580         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
13581         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
13582         * doc/extend.texi (Other Builtins): Add new builtins.
13583         * doc/md.texi (Standard Names): Add new patterns.
13584
13585 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
13586
13587         * reload.c: Revert 2003-01-31 change.
13588
13589 2003-02-01  Jan Hubicka  <jh@suse.cz>
13590
13591         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
13592
13593 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
13594
13595         * flags.h (flag_volatile): Remove declaration.
13596         (flag_volatile_global, flag_volatile_static): Likewise.
13597         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
13598         * toplev.c (flag_volatile): Remove definition.
13599         (flag_volatile_global, flag_volatile_static): Likewise.
13600         (f_options): Remove corresponding entries here.
13601         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
13602         or flag_volatile_static.
13603         * doc/invoke.texi: Remove documentation of -fvolatile,
13604         -fvolatile-global and -fvolatile-static.
13605
13606 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13607
13608         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
13609         updating of total_code_bytes from prologue to epilogue.
13610
13611 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
13612
13613         * reload.c (find_reloads): Do not use the mode specified in the insn
13614         pattern as reload mode for address operands.  Do not generate optional
13615         reloads for operands where a mandatory reload was already pushed.
13616         Generate optional reloads only in the final pass though find_reloads.
13617         (have_replacement_p): New function.
13618
13619 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13620
13621         * doc/install.texi (Testing): Remove a reference to our obsolete
13622         /testresults web pages and strip redundant information concerning
13623         test results.
13624         (Binaries): Refer to Microsoft Windows instead of listing all
13625         possible variants.
13626
13627 2003-02-01  Jan Hubicka  <jh@suse.cz>
13628
13629         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
13630         RTL chain.
13631
13632         * combine.c (simplify_set): Reverse order of ragumetns to
13633         REG_CANNOT_CHANGE_MODE_P
13634         * df.c (df_def_record_1): Likewise.
13635         * recog.c (register_operand): Likewise.
13636         * simplify-rtx.c (simplify_subreg): Likewise.
13637         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
13638         CANNOT_CHANGE_MODE_CLASS.
13639         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
13640         Likewise.
13641         * reload.c (push_reload): Likewise.
13642         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13643         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13644         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13645         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
13646         * mips.c (mips_cannot_change_mode_class): Update.
13647         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13648         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13649         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13650         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13651         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
13652         * sh.c (sh_cannot_change_mode_class): Update.
13653         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
13654         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
13655
13656 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
13657
13658         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
13659         change to LINK_COMMAND_SPEC in gcc.c.
13660
13661 2003-01-31  Jan Hubicka  <jh@suse.cz>
13662
13663         PR c/9506
13664         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
13665
13666 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13667
13668         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
13669         duplicated code.
13670
13671 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
13672
13673         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
13674         (BINFO_ELTS): New #define.
13675         * stor-layout.c (finalize_record_size): Don't set them.
13676         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
13677         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
13678         (BINFO_LANG_ELTS): New #define.
13679         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
13680         * java/class.c (make_class): Use BINFO_ELTS.
13681         (set_super_info): Likewse.
13682         (add_interface_do): Likewise.
13683         * objc/objc-act.c (start_class): Use BINFO_ELTS.
13684
13685 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
13686
13687         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
13688         (times): Don't ever declare if not HAVE_TIMES.
13689         (clock): Don't ever declare if not HAVE_CLOCK.
13690
13691 2003-01-30  Richard Henderson  <rth@redhat.com>
13692
13693         * flow.c (update_life_info): Zap life info after cleanup_cfg.
13694         (regno_uninitialized): Use correct live at function entry set.
13695         (regno_clobbered_at_setjmp): Likewise.
13696
13697         * expr.c (store_expr): Promote all MEM intermediates to regs.
13698
13699 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13700
13701         * config/arm/arm.c: Fix comment typos.
13702         * config/arm/arm.h: Likewise.
13703         * config/arm/netbsd-elf.h: Likewise.
13704         * config/arm/netbsd.h: Likewise.
13705
13706 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
13707
13708         * gengtype.c (struct walk_type_data): Add needs_cast_p.
13709         (walk_type): Set needs_cast_p in walk_type_data.
13710         (write_types_process_field): Supply casts when required to suppress
13711         warnings.
13712         (write_root): Cast gt_pch_n_S to suppress warning.
13713         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
13714         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
13715         when they might exist.
13716         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
13717         insn-conditions.o, and rs6000.o.
13718
13719 2003-01-30  Richard Henderson  <rth@redhat.com>
13720
13721         * ggc-page.c (G.context_depth_allocations): New.
13722         (G.context_depth_collections): New.
13723         (alloc_page): Set G.context_depth_allocations.
13724         (ggc_collect): Set G.context_depth_collections.
13725         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
13726         (ggc_pop_context): Early exit for no allocations or collections.
13727
13728 2003-01-30  Richard Henderson  <rth@redhat.com>
13729
13730         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
13731
13732 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
13733
13734         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
13735         size, the link register is always saved if any other register is
13736         saved.
13737
13738 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13739
13740         * config/h8300/h8300-protos.h: Update the prototype for
13741         compute_plussi_cc.
13742         (cpp_reader): Declare before it is used.
13743         * config/h8300/h8300.c (compute_plussi_cc): Change the return
13744         type to int.
13745         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
13746         see an unknown H8 variant.
13747
13748 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
13749
13750         PR target/9316
13751         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
13752         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
13753         * config/rs6000/t-rtems: New file. multilib variants to match OS.
13754         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
13755         rs6000/t-ppcgas so we get the desired multilibs.
13756
13757 2003-01-30  Nick Clifton  <nickc@redhat.com>
13758
13759         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
13760         when popping saved IP register off the stack.
13761
13762 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13763
13764         * config/rs6000/aix43.h: Fix comment typos.
13765         * config/rs6000/aix51.h: Likewise.
13766         * config/rs6000/aix52.h: Likewise.
13767         * config/rs6000/altivec.h: Likewise.
13768         * config/rs6000/rs6000.c: Likewise.
13769         * config/rs6000/rs6000.h: Likewise.
13770         * config/rs6000/rs6000.md: Likewise.
13771         * config/rs6000/spe.md: Likewise.
13772
13773 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
13774
13775         * c-common.c (builtin_define_float_constants): Define
13776         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
13777
13778 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13779
13780         * config/sh/lib1funcs.asm: Fix comment typos.
13781         * config/sh/linux.h: Likewise.
13782         * config/sh/sh.c: Likewise.
13783         * config/sh/sh.md: Likewise.
13784
13785 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
13786
13787         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
13788
13789 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
13790
13791         * config/fp-bit.h (__make_dp): Declare if TMODES.
13792
13793 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13794
13795         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
13796         general_operand_src and general_operand_dst.
13797
13798 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
13799
13800         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
13801         Return true for variable sized types.
13802         (rs6000_va_arg): Handle variable sized types passed by reference
13803         on non-SVR4 ABI.
13804
13805 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
13806
13807         * arm.c (arm_legtimize_address): New function.
13808         * arm-protos.h (arm_legtimize_address): Add prototype.
13809         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
13810         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
13811         do ... while (0)
13812
13813 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13814
13815         PR bootstrap/9296
13816         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
13817         depended on it being defined until now.
13818
13819 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13820
13821         PR target/9295
13822         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
13823         RTEMS code knows which C++ initialization style the toolset
13824         configuration is using.
13825
13826 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13827
13828         PR bootstrap/9293
13829         * config/m68k/t-crtstuff: Replace spaces with tabs, add
13830          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
13831
13832 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13833
13834         PR bootstrap/9292
13835         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
13836         RTEMS threads.
13837         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
13838
13839 2003-01-29  Nick Clifton  <nickc@redhat.com>
13840
13841         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
13842         not $(srcdir).
13843
13844 2003-01-29  Andrew Haley  <aph@redhat.com>
13845
13846         * tree-inline.c (walk_tree): Add CHAR_TYPE.
13847
13848 2003-01-29  Jan Hubicka  <jh@suse.cz>
13849
13850         * i386.md (subdi3_carry_rex64): Fix typo.
13851
13852 2003-01-28  Stan Shebs  <shebs@apple.com>
13853
13854         * coretypes.h (cpp_reader): Forward declare struct.
13855         * c-pragma.h (cpp_reader): Remove forward declaration.
13856         * hashtable.h (cpp_reader): Likewise.
13857         * scan.h (cpp_reader): Likewise.
13858         * tree.h (cpp_reader): Likewise.
13859         * config/darwin-protos.h (cpp_reader): Likewise.
13860         * config/arm/arm-protos.h (cpp_reader): Likewise.
13861         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
13862         struct cpp_reader in prototypes.
13863
13864 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
13865
13866         * doc/install.texi: Add documentation for installation into
13867         tooldirs and with DESTDIR.
13868
13869 2003-01-28  Richard Henderson  <rth@redhat.com>
13870
13871         * config.gcc (ia64*-*-aix*): Remove.
13872         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
13873         * config/ia64/unwind-aix.c: Remove file.
13874
13875 2003-01-28  Andreas Schwab  <schwab@suse.de>
13876
13877         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
13878         register.
13879         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
13880         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
13881         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
13882         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
13883         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
13884         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
13885         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
13886
13887 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
13888
13889         * combine.c (nonzero_bits): Fix check for negative divide operands.
13890
13891 2003-01-28  Richard Henderson  <rth@redhat.com>
13892
13893         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
13894         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
13895
13896 2003-01-28  Richard Henderson  <rth@redhat.com>
13897
13898         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
13899
13900         * config/cris/cris.c (cris_address_cost): Make static.
13901         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
13902         * config/cris/cris.h (ADDRESS_COST): Remove.
13903         * config/cris/cris-protos.h: Update.
13904
13905 2003-01-23  Mike Stump  <mrs@apple.com>
13906
13907         * regclass.c (init_reg_autoinc): New function.
13908         (regclass): Move initialization of forbidden_inc_dec_class from
13909         here...
13910         (init_regs): to here.  Avoids reinitialization for each function,
13911         saving compilation time.
13912
13913 2003-01-28  Jason Merrill  <jason@redhat.com>
13914
13915         * cpplib.h (struct cpp_options): Add warn_deprecated field.
13916         * cppinit.c (cpp_create_reader): Turn it on by default.
13917         * c-opts.c (c_common_decode_option): Set it.
13918         * cpplib.c (do_pragma_once): Only complain about #pragma once
13919         if warn_deprecated is set.
13920
13921 2003-01-28  Dale Johannesen  <dalej@apple.com>
13922
13923         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
13924         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
13925         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
13926
13927 2003-01-28  Richard Henderson  <rth@redhat.com>
13928
13929         * target.h (targetm.address_cost): New.
13930         * target-def.h (TARGET_ADDRESS_COST): New.
13931         (TARGET_RTX_COSTS): Uncomment.  Oops.
13932         * cse.c (address_cost): Use new target hook.
13933         (default_address_cost): New.
13934         * output.h (default_address_cost): Declare.
13935         * hooks.c (hook_int_rtx_0): New.
13936         * hooks.h (hook_int_rtx_0): Declare.
13937         * loop.c (combine_givs_p): Remove if 0 code.
13938         * system.h (ADDRESS_COST): Poison.
13939
13940         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
13941         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
13942         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
13943         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
13944         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
13945         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
13946         config/xtensa/xtensa.c, config/xtensa/xtensa.h
13947         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
13948         (ADDRESS_COST): Remove.
13949
13950         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
13951         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
13952         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
13953         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13954         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
13955         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
13956         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
13957         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
13958         config/mips/mips.c, config/mips/mips.h,
13959         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
13960         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
13961         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
13962         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
13963         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
13964         config/vax/vax.c, config/vax/vax.h
13965         (foo_address_cost): Make static.
13966         (TARGET_ADDRESS_COST): New.
13967         (ADDRESS_COST): Remove.
13968
13969         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
13970         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
13971         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
13972         config/stormy16/stormy16.h
13973         (ADDRESS_COST): Move code ...
13974         (foo_address_cost): ... here.
13975         (TARGET_ADDRESS_COST): New.
13976
13977         * config/m32r/m32r.c (m32r_address_cost): Remove.
13978         * config/m32r/m32r-protos.h: Update.
13979
13980         * config/mmix/mmix.c (mmix_address_cost): Remove.
13981         * config/mmix/mmix-protos.h: Update.
13982
13983         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
13984         mn10300_address_cost; move unsig allocation ...
13985         (mn10300_address_cost): ... here.
13986         (TARGET_ADDRESS_COST): New.
13987         * config/mn10300/mn10300-protos.h: Update.
13988         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
13989
13990         * doc/tm.texi: Update.
13991
13992 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
13993
13994         * haifa-sched.c (schedule_insn): Return necessary cycle advance
13995         after issuing the insn.
13996         (rank_for_schedule): Make a insn with /S the highest priority
13997         insn.
13998         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
13999         (choose_ready): Check SCHED_GROUP_P.
14000         (schedule_block): Advance cycle after issuing insn if it is
14001         necessary.  Don't reorder insns if there is an insn with /S.
14002         (set_priorities): Ignore schedule groups.
14003
14004         * sched-deps.c (remove_dependence, group_leader): Remove the
14005         functions.
14006         (add_dependence): Ignore schedule groups.
14007         (set_sched_group_p): Don't make copy of dependencies from previous
14008         insn of the schedule group.  Add anti-dependency to the previous
14009         insn of the schedule group.
14010         (compute_forward_dependences): Ignore schedule groups.
14011
14012         * sched-ebb.c (init_ready_list): Ignore schedule groups.
14013
14014         * sched-rgn.c (init_ready_list): Ditto.
14015         (can_schedule_ready_p): Ditto.
14016
14017 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
14018
14019         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
14020         register to another one.
14021
14022 2003-01-28  Richard Henderson  <rth@redhat.com>
14023
14024         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
14025
14026 2003-01-28  Roger Sayle  <roger@eyesopen.com>
14027
14028         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
14029
14030 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
14031
14032         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
14033         class contains a floating-point register, return the size of the
14034         mode in half words.
14035
14036 2003-01-28  Jan Hubicka  <jh@suse.cz>
14037
14038         * i386.c (ix86_carry_flag_operator):  New predicate.
14039         (fcmov_operator): Fix whitespace.
14040         (ix86_expand_carry_flag_compare):  Deal with floating point.
14041         (ix86_expand_int_movcc): Deal with fp; update insn expansion
14042         (ix86_expand_int_addcc): Likewise.
14043         (ix86_expand_strlensi_unroll_1): likewsie.
14044         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
14045         * i386.md (add?i_carry_rex64): Use new predicate.
14046         (sub?i3_carry_rex64): Likewise.
14047         (x86_mov?icc_0_m1*): Likewise.
14048
14049 2003-01-28  Andreas Schwab  <schwab@suse.de>
14050
14051         * cfgloopmanip.c (create_preheader): Initialize src to avoid
14052         warning.
14053
14054         * expmed.c (emit_store_flag): Fix cast to avoid sign
14055         comparison warning.
14056
14057         * combine.c (force_to_mode): Add cast to fix warning when
14058         STORE_FLAG_VALUE is negative.
14059
14060 2003-01-27  Richard Henderson  <rth@redhat.com>
14061
14062         * Makefile.in (cse.o): Depend on TARGET_H.
14063         * cse.c (rtx_cost): Use targetm.rtx_costs.
14064         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
14065         * doc/tm.texi: Update.
14066
14067         * target.h (targetm.rtx_costs): New.
14068         * target-def.h (TARGET_RTX_COSTS): New.
14069         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
14070         * hooks.h: Update.
14071
14072         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
14073         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
14074         * config/alpha/alpha.h (PROCESSOR_MAX): New.
14075         (CONST_COSTS, RTX_COSTS): Remove.
14076
14077         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
14078         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
14079         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
14080         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
14081         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
14082         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
14083         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
14084         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
14085         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
14086         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
14087         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
14088         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
14089         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
14090         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
14091         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
14092         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
14093         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
14094         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
14095         config/v850/v850.c, config/v850/v850.h,
14096         config/xtensa/xtensa.c, config/xtensa/xtensa.h
14097         (CONST_COSTS, RTX_COSTS): Move code ...
14098         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
14099
14100         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
14101         (arm_rtx_costs, TARGET_RTX_COSTS): New.
14102         * config/arm/arm-protos.h: Update.
14103         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
14104
14105         * config/avr/avr.h (CONST_COSTS): Move code ...
14106         * config/avr/avr.c (avr_rtx_costs): ... here.
14107         (default_rtx_costs): Make static.
14108         * config/avr/avr-protos.h: Update.
14109
14110         * config/h8300/h8300.c (const_costs): Make static.
14111         (h8300_and_costs, h8300_shift_costs): Likewise.
14112         * config/h8300/h8300-protos.h: Update.
14113
14114         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
14115         (CONST_COSTS): Move code ...
14116         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
14117         default_rtx_costs; update for signature change.
14118         * config/ip2k/ip2k-protos.h: Update.
14119
14120         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
14121         (CONST_COSTS): Move code ...
14122         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
14123         (TARGET_RTX_COSTS): New.
14124         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
14125         * config/m68hc11/m68hc11-protos.h: Update.
14126
14127         * config/m68k/m68k.c (const_int_cost): Make static.
14128         * config/m68k/m68k-protos.h: Update.
14129
14130         * config/mcore/mcore.c (mcore_const_costs): Make static.
14131         (mcore_and_cost, mcore_ior_cost): Likewise.
14132         * config/mcore/mcore-protos.h: Update.
14133
14134         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
14135         (mmix_rtx_cost_recalculated): Remove.
14136         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
14137         * config/mmix/mmix-protos.h: Update.
14138
14139         * config/sh/sh.c (shiftcosts): Make static.
14140         (addsubcosts, andcosts, multcosts): Likewise.
14141         * config/sh/sh-protos.h: Update.
14142
14143         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
14144         (sparc_rtx_costs): Make static; update for change in signature.
14145         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
14146         * config/sparc/sparc-protos.h: Update.
14147
14148         * config/v850/v850.c (const_costs): Make static.
14149         * config/v850/v850-protos.h: Update.
14150
14151         * config/vax/vax.h (RTX_COSTS): Remove.
14152         (CONST_COSTS): Move code ...
14153         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
14154         from vax_rtx_cost.
14155         (vax_rtx_costs, TARGET_RTX_COSTS): New.
14156
14157 2003-01-27  Richard Henderson  <rth@redhat.com>
14158
14159         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
14160         * config/vax/vax-protos.h: Update.  Really.
14161
14162 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
14163
14164         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
14165         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
14166         zero if no hardware floating point.
14167         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
14168         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
14169         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
14170         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
14171         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
14172         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
14173         even FP registers on N32 and N64.
14174         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
14175         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
14176         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
14177         even-register-like alignment to 128-bit arguments.
14178         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
14179         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
14180         on N32 or N64.
14181         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
14182         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
14183         (TPBIT): Set to tp-bit.c.
14184         (tp-bit.c): Create out of fp-bit.c.
14185
14186 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14187
14188         * c-parse.in: Remove '%expect 32' directive in objc mode.
14189
14190 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
14191
14192         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
14193         (LIBGCOV): New variable.
14194         (libgcc.mk): Add LIBGCOV.
14195         (LIBGCC_DEPS): Add libgcov.c.
14196         (libgcov.a): New target.
14197         (clean): Remove libgcov.a.
14198         (install-libgcc): Do libgcov too.
14199         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
14200         with libgcov.a.
14201         * libgcc2.c (L_gcov): Move into ...
14202         * libgcov.c: ... here. New file.
14203         * mklibgcc.in: Add libgcov rules.
14204         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
14205
14206         * doc/invoke.texi (profile-arcs, test-coverage): Update and
14207         clarify.
14208
14209         * profile.c (index_counts_file): Remove duplicate check for open file.
14210
14211 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
14212
14213         * gcc/doc/invoke.texi (Optimization Options): Group together
14214         optional and experimental flags.  Move trapv and bounds-check
14215         out of this section.  Group floating point flags together.
14216         (Code Gen Options): Move trapv and bounds-check to here.
14217
14218 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
14219
14220         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
14221
14222 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
14223
14224         PR optimization/9090
14225         * function.c (purge_addressof_1): After pushing an addressed register
14226         onto the stack, simplify the result.
14227
14228 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14229
14230         * doc/extend.texi: Fix typo.
14231
14232 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14233
14234         * doc/cppopts.texi: Fix typo.
14235         * doc/objc.texi: Likewise.
14236         * doc/passes.texi: Likewise.
14237
14238 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
14239
14240         * real.c (ibm_extended_format): Add 53 to minimum exponent.
14241         (encode_ibm_extended): Adjust.
14242
14243 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
14244
14245         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
14246         timevar_id enumerations.
14247
14248 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14249
14250         * combine.c: Fix formatting.
14251
14252 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14253
14254         * doc/gccint.texi: Update the copyright.
14255
14256 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14257
14258         * doc/cpp.texi: Fix typos.
14259         * doc/extend.texi: Likewise.
14260         * doc/gty.texi: Likewise.
14261         * doc/install.texi: Likewise.
14262         * doc/passes.texi: Likewise.
14263         * doc/rtl.texi: Likewise.
14264         * doc/tm.texi: Likewise.
14265
14266 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14267
14268         * config/ia64/fde-glibc.c: Fix comment typos.
14269         * config/ia64/hpux.h: Likewise.
14270         * config/ia64/ia64.c: Likewise.
14271         * config/ia64/ia64.h: Likewise.
14272         * config/ia64/unwind-ia64.c: Likewise.
14273
14274 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14275
14276         * config/i386/i386-modes.def: Fix comment typos.
14277         * config/i386/i386.c: Likewise.
14278         * config/i386/i386.md: Likewise.
14279
14280 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
14281
14282         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
14283         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
14284         ASM_FINISH_DECLARE_OBJECT before defining it.
14285         * toplev.c (rest_of_decl_compilation):  Don't define
14286         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
14287         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
14288         parameters for DWARF2 targets because they _are_ used.
14289
14290 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
14291
14292         * fp-bit.h: Define macros for TFmode floating-point constants
14293         in IBM-extended TFmode types.
14294         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
14295         widths.
14296         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
14297         TFmode type.
14298
14299         * config/fp-bit.h: Define macros for TFmode floating-point
14300         constants in IEEE quad TFmode type.  Declare functions according
14301         to L_ macros.
14302         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
14303         (TFtype, TItype, UTItype): Define if TMODES is defined.
14304         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
14305         (F_T_BITOFF, D_T_BITOFF): Define.
14306         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
14307         guaranteed to be wide enough.
14308         * config/fp-bit.c: Check for L_ macros for tf functions.
14309         (__thenan_tf): New.
14310         (nan): Adjust.
14311         (pack_d, unpack_d): Support IEEE 854 quad type.
14312         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
14313         from FRAC_NBITS, FRAC_BITS and NGARDS.
14314         (usi_to_float): Cast constants to be shifted to fractype
14315         instead of assuming long long is wide enough.
14316         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
14317
14318 2003-01-26  Andreas Jaeger  <aj@suse.de>
14319
14320         * df.c: Remove prototype of unused function df_regno_rtl_debug.
14321
14322 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
14323
14324         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
14325         (DBBIT_FUNCS): Added _df_to_tf.
14326         (TPBIT_FUNCS): New.
14327         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
14328         (LIBGCC_DEPS): Added TPBIT.
14329         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
14330
14331         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
14332         been able to move the result to target.
14333
14334         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
14335         for the appropriate mode.
14336
14337         * calls.c (emit_library_call_value_1): Handle return values
14338         in a PARALLEL.
14339
14340         * rtl.c (get_mode_alignment): Moved to...
14341         * stor-layout.c: ... here.
14342
14343         * print-rtl.c (print_rtx): Don't print MEM details in
14344         GENERATOR_FILEs.
14345
14346 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
14347
14348         * df.h: Update comments, tidy formatting.
14349         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
14350         REVERSE, UNION, INTERSECTION.  All uses updated.
14351         (OLD_DF_INTERFACE): Remove.
14352         (struct insn_info): Remove commented out insn field.
14353         * df.c: Update comments, tidy formatting.
14354         (df_def_table_realloc): Remove.
14355
14356
14357 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
14358
14359         * calls.c (save_fixed_argument_area): Tidy.
14360         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
14361         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
14362         call chain loop at 1 if !try_tail_call.  Formatting.
14363         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
14364         Use save_fixed_argument_area and restore_fixed_argument_area.
14365
14366 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14367
14368         * df.c (df_uses_record): Handle CC0.
14369
14370 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
14371
14372         * reload.c (maybe_memory_address_p): New function.
14373         (find_reloads_address): Use it instead of memory_address_p.
14374
14375 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
14376
14377         * final.c (shorten_branches): Align the address of code label
14378         when computing initial lengths and addresses.
14379
14380 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14381
14382         * config/m68hc11/m68hc11.md: Fix a comment typo.
14383
14384 2003-01-25  Andreas Jaeger  <aj@suse.de>
14385
14386         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
14387         TARGET_MACHO.
14388
14389 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14390
14391         * gcse.c (bypass_last_basic_block): New global variable.
14392         (bypass_block):  Use redirect_edge_and_branch_force to redirect
14393         fall-through edges.  Use bypass_last_basic_block to determine
14394         which blocks have valid PRE information.
14395         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
14396
14397 2003-01-25  Jan Hubicka  <jh@suse.cz>
14398
14399         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
14400
14401 2003-01-25  Jan Hubicka  <jh@suse.cz>
14402                               Eric Botcazou <ebotcazou@libertysurf.fr>
14403         PR opt/8492
14404         * gcse.c (one_cprop_pass): Delete unreachable blocks.
14405
14406 2003-01-25  Richard Henderson  <rth@redhat.com>
14407
14408         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
14409         from ia64_aix_select_rtx_section.
14410         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
14411         instead of saving and restoring flag_pic.
14412         (ia64_rwreloc_unique_section): Similarly.
14413         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
14414         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
14415         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
14416         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
14417
14418 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14419
14420         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
14421         comment.
14422
14423 2003-01-25  Richard Henderson  <rth@redhat.com>
14424
14425         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
14426
14427 2003-01-25  Kelley Cook <kelleycook@comcast.net>
14428
14429         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
14430
14431 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
14432
14433         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
14434         type for bitmaps.  Use unsigned long.
14435         (nBITMAP_WORD_BITS): New macro.
14436         (BITMAP_WORD_BITS): New macro.
14437         (rest of file): Use it.
14438         * bitmap.c: Use it.
14439
14440 2003-01-25  Richard Henderson  <rth@redhat.com>
14441
14442         2002-02-19  Robert Lipe  <robertlipe@usa.net>
14443         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
14444
14445 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14446
14447         * builtins.c (purge_builtin_constant_p): Scan insn stream
14448         sequentially rather than by basic block.
14449         * function.c (purge_addressof): Simplify test with INSN_P.
14450
14451 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14452
14453         * combine.c (simplify_comparison, case AND): Remove a redundant test.
14454
14455 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14456
14457         * function.h (struct function): New field calls_constant_p.
14458         (current_function_calls_constant_p): New macro for above.
14459         * function.c (prepare_function_start): Initialize calls_eh_return
14460         and calls_constant_p.
14461         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
14462         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
14463         when the current_function_calls_constant_p.
14464         * integrate.c (expand_inline_function): Set calls_constant_p if
14465         the function being inlined has calls_constant_p set.
14466
14467 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14468
14469         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
14470         optimizing, even if flag_gcse is true.
14471         * toplev.c (rest_of_compilation): purge_builtin_constant_p
14472         only needs to be called when "optimize > 0 && flag_gcse".
14473
14474 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14475
14476         * stmt.c (emit_case_bit_tests): New routine to implement suitable
14477         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
14478         (case_bit_test_cmp): New comparison function for "qsort" to order
14479         case_bit_tests by decreasing number of destination nodes.
14480         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
14481         (expand_end_case_type): Use emit_case_bit_tests to implement
14482         suitable switch statments.
14483         (CASE_USE_BIT_TESTS): New target macro to disable the above.
14484         * Makefile.in (stmt.o): Add dependency on optab.h.
14485         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
14486
14487 2003-01-23  Andreas Schwab  <schwab@suse.de>
14488
14489         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
14490         __do_global_ctors_aux hidden global and don't put it in
14491         .init_array.
14492         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
14493         instead so that it comes first.
14494
14495 2003-01-25  Jan Hubicka  <jh@suse.cz>
14496
14497         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
14498         subreg is read/modify.
14499
14500 2003-01-25  Jan Hubicka  <jh@suse.cz>
14501
14502         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
14503         do libcall for large blocks.
14504         * i386.md (comi patterns): Set type to ssecomi.
14505         (sse2_unpck?pd): Fix mode of vec_select.
14506
14507         * cse.c: Include except.h
14508         (cse_set_around_loop):  Do not create new basic blocks.
14509         * Makefile.in (cse.o): Add dependnecy on except.h
14510
14511 2003-01-25  Jan Hubicka  <jh@suse.cz>
14512
14513         * builtins.c (fold_trunc_transparent_mathfn): New function.
14514         (fold_builtin): Use it.
14515         * convert.c (convert_to_real): Re-enable code to convert
14516         math functions; add support for floor familly functions.
14517
14518 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14519
14520         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
14521         dependencies on coretypes.h and $(TM_H).
14522
14523 2003-01-25  Jan Hubicka  <jh@suse.cz>
14524
14525         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
14526
14527 2003-01-24  Stuart Hastings  <stuart@apple.com>
14528
14529         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
14530
14531 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14532
14533         * config/c4x/c4x.md (UNSPEC_BU): New constants.
14534         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
14535         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
14536         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
14537         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
14538         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
14539         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
14540         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
14541
14542 2003-01-24  Jan Hubicka  <jh@suse.cz>
14543
14544         * emit-rtl.c (reg_attrs_htab): New static variable.
14545         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
14546         functions.
14547         (reg_rtx): Do not maintain regno_decl.
14548         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
14549         set_mem_attrs_from_reg): New global function.
14550         (init_emit): Do not initialize regno_decl.
14551         (init_emit_once): initialize reg_attrs_htab.
14552         * final.c (alter_subreg): Do not replace REG by SUBREG.
14553         (gen_mem_expr_from_op): Improve output.
14554         (output_asm_operands): Likewise.
14555         * function.c (assign_params): Do not set REGNO_DECL.
14556         * function.h (struct function): Kill regno_decl.
14557         (REGNO_DECL): Kill.
14558         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
14559         * print_rtl.c (print_rtx): Output REG information.
14560         * regclass.c (reg_scan_mark_refs): Update attrs.
14561         * reload1.c (alter_reg): Likewise.
14562         * simplify_rtx.c (simplify_subreg): Likewise.
14563         * stmt.c (expand_decl): Likewise.
14564         * rtl.def (REG): Add new field.
14565         * rtl.h (struct reg_attrs): New.
14566         (rtunion_def): At rtreg.
14567         (X0MEMATTR): Add checking.
14568         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
14569         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
14570         Declare.
14571         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
14572
14573 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
14574
14575         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
14576         (xtensa_emit_call, print_operand): Fix printf format strings
14577         to avoid compile warnings.
14578         (xtensa_function_prologue, xtensa_function_epilogue): Change type
14579         of "size" argument to HOST_WIDE_INT to fix compile warnings.
14580         * config/xtensa/xtensa-protos.h
14581         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
14582
14583 2003-01-24  Jan Hubicka  <jh@suse.cz>
14584
14585         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
14586         (implicit_built_in_decls): New global array.
14587         (mathfn_built_in): New global function.
14588         (fold_trunc_transparent_mathfn): New static function
14589         (expand_builtin_strstr, expand_bultin_strchr,
14590         expand_builtin_strpbrk, expand_builtin_strcpy,
14591         expand_builtin_strncpy, expand_bultin_strcmp,
14592         expand_bultin_strncat, expand_builtin_fputs): Use
14593         implicint_built_in_decls.
14594         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
14595         * builtins.def: Fix comments.
14596         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
14597         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
14598         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
14599         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
14600         (DEF_C99_C90RES_BULTIN): New.
14601         (*f, *l builtins): Update.
14602         * c-common.c (DEF_BUILTIN): Initialize implicit array.
14603         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
14604         * convert.c (strip_float_extensions): New global function.
14605         * tree.h (DEF_BUILTIN): Accept 10 arguments.
14606         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
14607         Declare.
14608         * java/builtins.c (define_builtin): Handle implicit.
14609         (DEF_BUILTIN): Update.
14610         * tm.texi (TARGET_C99_FUNCTIONS): Document.
14611         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
14612         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
14613         when using glibc2.
14614
14615 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
14616
14617         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
14618         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
14619         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
14620         * config/xtensa/crti.asm: New file.
14621         * config/xtensa/crtn.asm: New file.
14622         * config/xtensa/t-elf: New file.
14623         * config/xtensa/t-linux: New file.
14624         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
14625         Move various CFLAGS settings to new t-elf file.
14626
14627 2003-01-24  Richard Henderson  <rth@redhat.com>
14628
14629         PR optimization/4382
14630         * tree-inline.c (find_builtin_longjmp_call_1): New.
14631         (find_builtin_longjmp_call): New.
14632         (inlinable_function_p): Use it.
14633
14634 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14635
14636         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
14637         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
14638         * config/i386/i386.c (function_arg_pass_by_reference): New.
14639         (ix86_va_arg): Support arguments passed by reference.
14640
14641 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14642
14643         * cfgloopanal.c: New file.
14644         * cfgloopmanip.c: New file.
14645         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
14646         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
14647         cfglayout.o): Add dependency on cfgloop.h.
14648         (cfgloop.o): Add flags.h dependency.
14649         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
14650         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
14651         (struct loop, struct loops, flow_loops_find, flow_loops_update,
14652         flow_loops_free, flow_loops_dump, flow_loop_dump,
14653         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
14654         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
14655         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
14656         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
14657         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
14658         find_common_loop, verify_loop_structure): Declarations moved to ...
14659         * cfgloop.h: New file.
14660         * bb-reorder.c (reorder_basic_blocks): Modified.
14661         * cfglayout.c: Include cfgloop.h.
14662         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
14663         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
14664         (break_superblocks): New static function.
14665         (cfg_layout_finalize): Use it.
14666         (cfg_layout_split_block): New function.
14667         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
14668         fields.
14669         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
14670         changed.
14671         (cfg_layout_split_block): Declare.
14672         * cfgloop.c: Include cfgloop.h and flags.h.
14673         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
14674         get_loop_body): Avoid signed versus unsigned comparison warnings.
14675         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
14676         loop_latch_edge): Modified.
14677         (verify_loop_structure): Modified to use flags stored in loop structure;
14678         check irreducible loops.
14679         (cancel_loop, cancel_loop_tree): New functions.
14680         (estimate_probability): Use loop analysis code for predictions.
14681         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
14682         warnings.
14683         * doloop.c: Include cfgloop.h.
14684         * loop.c: Include cfgloop.h.
14685         * predict.c: Include cfgloop.h.
14686         * toplev.c: Include cfgloop.h.
14687         * unroll.c: Include cfgloop.h.
14688         * tracer.c (tracer): Modified.
14689
14690 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14691
14692         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
14693
14694 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
14695
14696         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
14697         * configure: Regenerate.
14698
14699         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
14700         (tls_symbolic_reference_mentioned_p): Add prototype.
14701         (s390_tls_get_offset): Add prototype.
14702         (emit_pic_move): Remove prototype, replace by ...
14703         (emit_symbolic_move): .. this new prototype.
14704
14705         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
14706         (tls_model_chars): New global variable.
14707         (s390_encode_section_info): Encode TLS model.
14708         Use targetm.binds_local_p to check for local symbols.
14709         (s390_strip_name_encoding): New function.
14710         (TARGET_STRIP_NAME_ENCODING): Define.
14711
14712         (get_thread_pointer): New function.
14713         (legitimize_tls_address): New function.
14714         (legitimize_address): Call it.
14715         (emit_pic_move): Remove, replace by ...
14716         (emit_symbolic_move): ... this new function.
14717
14718         (larl_operand): Handle TLS operands.
14719         (legitimate_constant_p): Likewise.
14720         (s390_decompose_address): Likewise.
14721         (s390_cannot_force_const_mem): New function.
14722         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
14723
14724         (s390_output_symbolic_const): Handle TLS unspecs.
14725         (print_operand): New code 'J'.
14726         (machine_function): Add struct member 'some_ld_name'.
14727         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
14728
14729         (enum s390_builtin): New type.
14730         (code_for_builtin_64, code_for_builtin_31): New global variables.
14731         (s390_init_builtins, s390_expand_builtin): New functions.
14732         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14733
14734         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
14735         (ASM_OUTPUT_LABELREF): Define.
14736         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
14737
14738         * config/s390/s390.md: Define TLS UNSPEC constants.
14739         ("movdi", "movsi"): Handle TLS operands.
14740         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
14741         ("*tls_load_64", "*tls_load_31"): New insns.
14742         ("call_value_tls", "call_value_tls_exp"): New expanders.
14743         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
14744         "bas_tls_64", "bas_tls_31"): New insns.
14745
14746 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
14747
14748         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
14749         spe ABI is configured, if requested.
14750
14751 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14752
14753         * doc/passes.texi: Fix typo.
14754
14755 2003-01-24  Andreas Schwab  <schwab@suse.de>
14756
14757         * stor-layout.c (excess_unit_span): Only define if used.
14758
14759 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
14760
14761         * gcc/doc/invoke.texi (Optimization Options): List -O levels
14762         for each optimization flag.
14763
14764 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14765
14766         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
14767
14768 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14769
14770         * doc/bugreport.texi: Use @command instead of @code for commands.
14771         * doc/collect2.texi: Likewise.
14772         * doc/headerdirs.texi: Likewise.
14773         * doc/invoke.texi: Likewise.
14774         * doc/standards.texi: Likewise.
14775         * doc/tm.texi: Likewise.
14776         * doc/trouble.texi: Likewise.
14777
14778 2003-01-24  Nick Clifton  <nickc@redhat.com>
14779
14780         * config/arm/arm.c (use_return_insn): Do not use a single return
14781         instruction for interrupt handelrs which have to create a stack
14782         frame.
14783         (arm_expand_prologue): Do not pre-bias the return address of
14784         interrupt handlers which create a stack frame.
14785
14786 2003-01-24  Nick Clifton  <nickc@redhat.com>
14787
14788         * Add sh2e support:
14789
14790         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
14791
14792                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
14793                 med_cbranches.  Fix logic in short_cbranches.
14794
14795         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
14796
14797                 * config/sh/sh.md (delay for cbranch): Don't annul delay
14798                 slots on SH2e.
14799                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
14800                 cbranch with unfilled delay slot on SH2e.
14801                 (output_branch): Fill with a nop the delay slot of a
14802                 branch that required a delay slot but didn't get one.
14803
14804         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
14805
14806                 * doc/invoke.texi (SH options): Document -m2e.
14807                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
14808                 * config/sh/lib1funcs.asm: Likewise.
14809                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
14810                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
14811                 not __sh1__.
14812                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
14813                 SH2E up.
14814                 (SH3E_BIT): Renamed to...
14815                 (SH_E_BIT): ... this.  Replace all uses.
14816                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
14817                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
14818                 (TARGET_SWITCHES): Added 2e.
14819                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
14820                 (processor_type): Added PROCESSOR_SH2E.
14821                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
14822                 TARGET_SH2E, except in sqrtsf2_i.
14823                 (attribute cpu): Added sh2e.
14824                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
14825                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
14826                 * config.gcc: Add sh2e target support.
14827
14828 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
14829
14830         Rename -W to -Wextra.
14831         * c-decl.c:  Update comments.
14832         * c-typeck.c:  Likewise.
14833         * flags.h:  Likewise.
14834         * function.c:  Likewise.
14835         * stmt.c:  Likewise.
14836         * toplev.c:  Update comments.
14837         (W_options):  Add 'extra'.
14838         (display_help):  Remove '-W'.
14839         (decode_W_option):  Special warn_uninitialized treatment in the case
14840         of -Wextra.
14841         * doc/invoke.texi:  Update with new entries.
14842
14843 2003-01-23  Richard Henderson  <rth@redhat.com>
14844
14845         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
14846         in no-else-block case.  Add commentary.
14847
14848 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14849
14850         * configure.in: Revert last change.
14851
14852 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14853
14854         * configure.in: Don't include ansidecl.h in tconfig.h.
14855         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED: Define if IN_LIBGCC2.
14856         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
14857         ATTRIBUTE_UNUSED.
14858
14859         * configure: Regenerate.
14860
14861 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14862
14863         PR java/6748
14864         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
14865         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
14866         kernels.
14867
14868 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14869
14870         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
14871
14872 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
14873
14874         * genattrtab.c (write_attr_get): Mark 'insn' paramter
14875         as ATTRIBUTE_UNUSED.
14876
14877 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
14878
14879         * arm.c (thumb_base_register_rtx_p): New function.
14880         (thumb_index_register_rtx_p): New function.
14881         (thumb_legitimate_address_p): New function.
14882         (thumb_legitimate_offset_p): New function.
14883         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
14884         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
14885         definitions.
14886         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
14887         (THUMB_LEGITIMATE_OFFSET): Delte.
14888         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
14889         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
14890         (thumb_legitimate_offset_p): Likewise.
14891
14892 2003-01-23  Andreas Schwab  <schwab@suse.de>
14893
14894         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
14895
14896 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14897
14898         * fixinc/Makefile.in (FL_LIST): Revert last change.
14899
14900 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14901
14902         PR other/7341
14903         * invoke.texi (ftest-coverage): Fix broken cross-reference.
14904         Change @code to @command for gcov command.
14905
14906         * gcc.texi: Adjust title of gcov section.
14907         Adjust copyright.
14908         * gcov.texi: Likewise.
14909
14910 2003-01-22  Roger Sayle  <roger@eyesopen.com>
14911
14912         PR optimization/8423
14913         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
14914         its argument is constant, or 0 if !flag_gcse.
14915         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
14916         if it's argument is constant.
14917         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
14918         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
14919         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
14920         * builtins.c (purge_builtin_constant_p): New function to force
14921         instantiation of any remaining CONSTANT_P_RTX nodes.
14922         * rtl.h (purge_builtin_constant_p): Prototype here.
14923         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
14924         pass after GCSE and before loop.
14925         (flag_gcse): No longer static.
14926         * flags.h (flag_gcse): Prototype here.
14927
14928 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14929
14930         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
14931         introduced by last change.
14932
14933 2003-01-22  Andreas Schwab  <schwab@suse.de>
14934
14935         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
14936
14937 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14938
14939         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
14940         request a scratch reg on H8S when the shift count is 8.
14941
14942 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14943
14944         * config/s390/s390-protos.h (preferred_la_operand_p):
14945         Remove second parameter.
14946         * config/s390/s390.c (preferred_la_operand_p): Likewise.
14947         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
14948         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
14949         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
14950         Add peepholes to transform ADD to LOAD ADDRESS.
14951
14952 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
14953
14954         * arm.c (arm_address_register_rtx_p): New function.
14955         (arm_legitimate_address_p): New function.
14956         (arm_legitimate_index_p): New function.
14957         (legitimize_pic_address): Use arm_legitimate_index_p.
14958         * arm-protos.h (arm_legtimate_address_p): Add prototype.
14959         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
14960         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
14961
14962 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
14963
14964         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
14965         * config/s390/2064.md (define_bypass): Correct 'Load' and
14966         'Load-address' bypass values.
14967
14968 2003-01-22  Andreas Schwab  <schwab@suse.de>
14969
14970         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
14971
14972 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
14973
14974         * genautomata.c (output_internal_insn_latency_func,
14975         output_print_reservation_func): Short circuit when there is no
14976         automaton to generate code for.
14977
14978 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14979
14980         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
14981         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
14982
14983 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
14984
14985         * config/rs6000/rs6000.md: Remove warning.
14986         (builtin_setjmp_receiver): Likewise.
14987         * config/darwin.c (update_stubs): Slightly improve terrible hack
14988         with identifiers.  Add comment pointing out problems with it.
14989         (update_non_lazy_ptrs): Likewise.
14990
14991 2003-01-21  Richard Henderson  <rth@redhat.com>
14992
14993         * dwarf2out.c (lookup_filename): Fix printf format warning.
14994         * system.h (fread_unlocked, fwrite_unlocked): Undef.
14995
14996         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
14997         (fixincl.o-warn, gnu-regex.o-warn): New.
14998         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
14999         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
15000         * fixinc/fixincl.c (process): Fix printf format warning.
15001
15002 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15003
15004         * dwarf2out (output_file_names): Don't crash if called
15005         with empty file_table.
15006
15007 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15008
15009         * genautomata.c (output_internal_insn_latency_func): Add
15010         missing break statement to generated code.
15011
15012 2003-01-21  Roger Sayle  <roger@eyesopen.com>
15013
15014         * stmt.c (same_case_target_p): New function to determine whether
15015         two case labels branch to the same target.  Split out from...
15016         (group_case_nodes): ... here.  Use same_case_target_p instead.
15017         (strip_default_case_nodes): Remove explicit case nodes
15018         that branch to the default destination.
15019         (expand_end_case_type): Call strip_default_case_nodes after
15020         group_case_nodes, to simplify the case-list before we count it.
15021         Only generate table_label RTX when actually needed.  Try to share
15022         thiscase->exit_label and thiscase->data.case_stmt.default_label
15023         when a switch has no explicit default case.  Simplify test for
15024         constant index.
15025
15026 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15027
15028         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
15029         \t.
15030         (*negsf2_h8300hs): Likewise.
15031         (*addsi3_lshiftrt_16_zexthi): Likewise.
15032         (*iorhi3_lshiftrt_8): Likewise.
15033
15034 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15035
15036         * dwarf2out.c (fde_table_in_use): Mark GTY.
15037         (dwarf2out_cfi_label_num): New variable, marked GTY.
15038         (dwarf2out_cfi_label): Use it instead of static label_num.
15039         * emit-rtl.c (label_num): Mark GTY.
15040
15041 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15042
15043         * config/h8300/h8300.c (output_plussi): Support H8/300.
15044         (compute_plussi_length): Likewise.
15045         (compute_plussi_cc): Likewise.
15046         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
15047         output assembly instructions.
15048
15049 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15050
15051         * calls.c (fix_unsafe_tree): Prototype.
15052
15053         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
15054         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
15055         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
15056         c-parse.o-warn): Add -Wno-error.
15057         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
15058
15059         * configure.in (--enable-werror): Add new flag.
15060         * doc/install.texi (--enable-werror): Document.
15061         * configure: Regenerate.
15062
15063         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
15064
15065 2003-01-21  Andreas Schwab  <schwab@suse.de>
15066
15067         * genautomata.c (output_internal_insn_latency_func): Fix missing
15068         close paren in output.
15069
15070 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15071
15072         * genautomata.c: Space savings in generated code:
15073         (output_dfa_insn_code_func): Split out the table-enlargement
15074         path to an out-of-line static function, dfa_insn_code_enlarge.
15075         (output_internal_insn_latency_func): Use a lookup table for the
15076         default latencies.
15077         (output_print_reservation_func): Use a lookup table for the
15078         strings.
15079
15080 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
15081
15082         PR opt/7507
15083         * calls.c (fix_unsafe_tree): Split out from ...
15084         (expand_call): ... here.  Use it on the function address too.
15085
15086 2003-01-20  Richard Henderson  <rth@redhat.com>
15087
15088         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
15089
15090 2003-01-20  Richard Henderson  <rth@redhat.com>
15091
15092         PR opt/7154
15093         * stmt.c (expand_asm_operands): Validize memory operands.
15094
15095 2003-01-20  Richard Henderson  <rth@redhat.com>
15096
15097         PR opt/8848
15098         * ifcvt.c (noce_process_if_block): Correct arguments to
15099         modified_between_p for no-else-block case.
15100
15101 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15102
15103         * config/h8300/h8300.c (const_costs): Remove a warning.
15104         (output_plussi): Likewise.
15105         (compute_plussi_length): Likewise.
15106         (compute_plussi_cc): Likewise.
15107
15108 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15109
15110         * config/h8300/h8300.md (addsi_h8300): Remove the last
15111         alternative.
15112
15113 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
15116
15117 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15118
15119         * system.h (__NO_STRING_INLINES): Define.
15120
15121 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15122
15123         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
15124         is not a scalar int mode.
15125
15126 2003-01-20  Roger Sayle  <roger@eyesopen.com>
15127
15128         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
15129         insn's notes following a substitution inside a libcall.
15130
15131 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
15132
15133         * configure.in: Check for system-provided 'uchar' type.
15134         * configure, config.in: Regenerate.
15135         * cpphash.h: Only typedef 'uchar' if the system doesn't.
15136
15137 2003-01-20  Richard Henderson  <rth@redhat.com>
15138
15139         * expr.h (MUST_PASS_IN_STACK): Move implementation...
15140         * calls.c (default_must_pass_in_stack): ... here.
15141
15142 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
15143
15144         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
15145
15146         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
15147
15148         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
15149         Wrap up definition of `insn_alts'.
15150
15151         * genattrtab.c (main): Wrap up `insn_alts'.
15152
15153 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15154
15155         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
15156         prototyping.
15157         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
15158
15159         * config.in, configure: Regenerate.
15160
15161 2003-01-20  Nick Clifton  <nickc@redhat.com>
15162
15163         * config/arm/arm.md (sibcall_epilogue): Add an
15164         UNSPEC_PROLOGUE_USE to prevent the link register from being
15165         considered dead.
15166
15167 2003-01-20  Jan Hubicka  <jh@suse.cz>
15168
15169         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
15170
15171 2003-01-20  Andreas Schwab  <schwab@suse.de>
15172
15173         * system.h: Don't declare strsignal if the decl test hasn't been
15174         run yet.
15175
15176 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15177
15178         * config/h8300/h8300.c (notice_update_cc): Don't assume that
15179         recog_data.operands[0] is always associated with cc0.
15180
15181 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
15182
15183         * collect2.c (ldgetname): Expand declaration to prototype.
15184         * read-rtl.c (atoll): Add prototype.
15185         * system.h (strsignal): Also declare if no declaration found.
15186
15187 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
15188
15189         * config.gcc (mips64*-*-linux*): Added.
15190         * config/mips/linux64.h, config/mips/t-linux64: New file.
15191         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
15192         * config/mips/mips.c (override_options): Use it.
15193         * config/mips/mips.h (TARGET_SWITCHES): Added...
15194         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
15195         * Makefile.in (SPECS): New.
15196         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
15197         * gcc.c (process_command): Move self-spec processing past spec
15198         file loading.
15199         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
15200         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
15201         CRTSTUFF_T_CFLAGS.
15202         (SPECS): Document.
15203         * doc/invoke.texi (-mabi-fake-default): Document.
15204
15205 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
15206
15207         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
15208         z_reg, z_reg_qi): Declare static and GTY().
15209         (da_reg): Remove.
15210         (create_regs_rtx): Don't create da_reg.
15211         ("gt-m68hc11.h"): Include for GTY roots.
15212         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
15213         and GTY() here.
15214         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
15215         (m68hc11_soft_tmp_reg): Likewise.
15216         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
15217
15218 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15219
15220         * basic-block.h: Fix comment formatting.
15221         * calls.c: Likewise.
15222         * combine.c: Likewise.
15223         * convert.c: Likewise.
15224         * gcov.c: Likewise.
15225         * haifa-sched.c: Likewise.
15226         * libgcc2.c: Likewise.
15227         * loop.c: Likewise.
15228         * profile.c: Likewise.
15229         * system.h: Likewise.
15230
15231 2003-01-18  Roger Sayle  <roger@eyesopen.com>
15232
15233         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
15234
15235 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15236
15237         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
15238
15239 2003-01-17  Dale Johannesen  <dalej@apple.com>
15240
15241         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
15242           (*floatunssidf2_internal):  Ditto.
15243
15244 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15245
15246         * alias.c: Fix comment typos.
15247         * basic-block.h: Likewise.
15248         * c-common.c: Likewise.
15249         * c-common.h: Likewise.
15250         * c-decl.c: Likewise.
15251         * c-opts.c: Likewise.
15252         * c-pragma.c: Likewise.
15253         * c-pretty-print.h: Likewise.
15254         * cfg.c: Likewise.
15255         * cfganal.c: Likewise.
15256         * cfgbuild.c: Likewise.
15257         * cfgcleanup.c: Likewise.
15258         * cfglayout.c: Likewise.
15259         * cfgrtl.c: Likewise.
15260         * convert.c: Likewise.
15261         * cpphash.h: Likewise.
15262         * cpplex.c: Likewise.
15263         * cpplib.h: Likewise.
15264         * df.h: Likewise.
15265         * diagnostic.c: Likewise.
15266         * diagnostic.h: Likewise.
15267         * dwarf2.h: Likewise.
15268
15269 2003-01-17  Stan Shebs  <shebs@apple.com>
15270
15271         * config/darwin-protos.h: Forward-declare struct cpp_reader.
15272
15273 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
15274
15275         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
15276         mistake in last checkin.
15277
15278 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15279
15280         * et-forest.c: Fix comment typos.
15281         * et-forest.h: Likewise.
15282         * except.c: Likewise.
15283         * expr.c: Likewise.
15284         * flags.h: Likewise.
15285         * flow.c: Likewise.
15286         * gcc.c: Likewise.
15287         * gcse.c: Likewise.
15288         * genattrtab.c: Likewise.
15289         * genautomata.c: Likewise.
15290         * gengtype.c: Likewise.
15291         * genrecog.c: Likewise.
15292         * global.c: Likewise.
15293         * gthr-rtems.h: Likewise.
15294
15295 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15296
15297         * i386.c (x86_function_profiler): Fix format specifier.
15298
15299 2003-01-17  Richard Henderson  <rth@redhat.com>
15300
15301         * gengtype.c (walk_type): Allow paramN_is.
15302
15303 2003-01-17  Nick Clifton  <nickc@redhat.com>
15304
15305         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
15306
15307 2003-01-16  Richard Henderson  <rth@redhat.com>
15308
15309         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
15310
15311 2003-01-16  Richard Henderson  <rth@redhat.com>
15312
15313         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
15314         (alpha_next_sequence_number): Likewise.
15315         (alpha_this_literal_sequence_number): Likewise.
15316         (alpha_this_gpdisp_sequence_number): Likewise.
15317         (struct alpha_funcs, alpha_funcs_num): Likewise.
15318         (struct alpha_links): Fix branch merge error.
15319         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
15320
15321 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
15322
15323         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
15324         R. Ghazi.
15325
15326 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15327
15328         * ifcvt.c: Fix comment typos.
15329         * lcm.c: Likewise.
15330         * libgcc2.c: Likewise.
15331         * local-alloc.c: Likewise.
15332         * loop.c: Likewise.
15333         * predict.c: Likewise.
15334         * ra-build.c: Likewise.
15335         * ra.c: Likewise.
15336         * ra-colorize.c: Likewise.
15337         * ra.h: Likewise.
15338         * ra-rewrite.c: Likewise.
15339         * regmove.c: Likewise.
15340         * reload.h: Likewise.
15341         * rtlanal.c: Likewise.
15342         * toplev.c: Likewise.
15343         * tree.h: Likewise.
15344         * unwind-dw2-fde-glibc.c: Likewise.
15345         * vmsdbgout.c: Likewise.
15346
15347 2003-01-16  Richard Henderson  <rth@redhat.com>
15348
15349         * dwarf2out.c (struct file_table): Remove.
15350         (FILE_TABLE_INCREMENT): Remove.
15351         (file_table): Make a varray; mark for GC.  Update all users.
15352         (file_table_last_lookup_index): Extract from struct file_table.
15353         (output_file_names): Fix unsigned compare warnings.
15354         (add_name_attribute): Remove inline marker.
15355         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
15356         (lookup_filename): Don't manage size of file_table.
15357         (init_file_table): Allocate file_table with GC.
15358         (dwarf2out_init): Don't record main_input_filename here.
15359         (dwarf2out_finish): Do it here instead.
15360
15361 2003-01-16  Bruce Korb  <bkorb@gnu.org>
15362
15363         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
15364
15365 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
15366
15367         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
15368         instead of rotldi3_mextr.
15369
15370 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
15371
15372         * haifa-sched.c (move_insn): Restore moving all schedule group.
15373         (set_priorities): Restore taking SCHED_GROUP_P into account.
15374
15375         * sched-deps.c (add_dependence): Restore processing the last group
15376         insn.
15377         (remove_dependence, group_leader): Restore the functions.
15378         (set_sched_group_p): Restore adding dependencies from previous insn
15379         in the group.
15380         (compute_forward_dependences): Restore usage of group_leader.
15381
15382         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
15383         account.
15384
15385         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
15386         account.
15387         (can_schedule_ready_p): Ditto.
15388         (add_branch_dependences): Restore skipping over the group insns.
15389
15390 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
15391
15392         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
15393         68HC12 pre/post inc/dec side effects.
15394
15395 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
15396
15397         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
15398
15399 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
15400
15401         * sh.md (mshflo_w_x): Fix description of operation.
15402
15403 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
15404
15405         * config/rs6000/rs6000.h: Mention Altivec registers in
15406         commentary.  Fix typo.
15407
15408 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
15409
15410         * config/rs6000/rs6000.md (movti_string): Remove clobber.
15411         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
15412         generate PARALLEL with clobber for TARGET_POWER.
15413
15414 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15415
15416         * ra-colorize.c (colorize_one_web): Initialize variable.
15417         * regmove.c (fixup_match_1): Likewise.
15418         * reload1.c (reload_as_needed): Likewise.
15419         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
15420
15421 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15422
15423         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
15424
15425 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15426
15427         * dbxout.c (lastfile, cwd): Fix `unused' warning.
15428         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
15429         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
15430         is_main_source, file_table, decl_die_table_in_use,
15431         abbrev_die_table_in_use, line_info_table_in_use,
15432         separate_line_info_table_in_use, pubname_table_in_use,
15433         arange_table_in_use, ranges_table_in_use,
15434         current_function_has_inlines): Likewise.
15435         * flow.c (life_analysis): Likewise.
15436         * genemit.c (gen_insn): Likewise.
15437         * protoize.c (cplus_suffix): Likewise.
15438
15439         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
15440         * arm.h (ROUND_UP_WORD): Likewise.
15441
15442         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
15443         warning.
15444         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
15445         init_emit_once): Likewise.
15446         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
15447         Likewise.
15448         * function.c (assign_stack_temp_for_type): Likewise.
15449         * loop.c (loop_invariant_p): Likewise.
15450         * recog.c (push_operand): Likewise.
15451         * regclass.c (init_reg_sets_1): Likewise.
15452         * reload.c (update_auto_inc_notes): Likewise.
15453         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
15454         * stmt.c (expand_asm_operands): Likewise.
15455         * stor-layout.c (start_record_layout): Likewise.
15456
15457 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
15458
15459         * config/c4x/c4x.md (epilogue): Correct last patch.
15460
15461 2003-01-15  Richard Henderson  <rth@redhat.com>
15462
15463         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
15464         also check that GP is being used.
15465         (alpha_find_lo_sum_using_gp): New.
15466         (alpha_does_function_need_gp): Use get_attr_usegp.
15467         * config/alpha/alpha-protos.h: Update.
15468         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
15469         as needed.
15470
15471 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15472
15473         * gcse.c (one_cprop_pass): Change function arguments to take both
15474         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
15475         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
15476         (bypass_jumps): New function to perform separate jump bypassing pass.
15477         * rtl.h (bypass_jumps): Add function prototype.
15478         * timevar.def (TV_BYPASS): New timing variable.
15479         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
15480         (dump_file): New entry for the bypass RTL dump file.
15481         (rest_of_compilation): Insert new jump bypassing optimization
15482         pass after loop.
15483         * doc/passes.texi: Document new pass.
15484
15485 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15486
15487         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
15488         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
15489         * pa.h (TARGET_SOM_SDEF): Define.
15490         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
15491
15492 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
15493
15494         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
15495         allocate 4-bytes of locals on 68HC11.
15496         (expand_epilogue): Likewise.
15497         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
15498
15499 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
15500
15501         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
15502         and -mshort-double to the assembler to specify the ABI.
15503         (LINK_SPEC): Likewise.
15504         (CPP_SPEC): Pass HCS12 specific define.
15505         (MASK_M68S12): New define.
15506         (TARGET_M68S12): Likewise.
15507         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
15508         (TARGET_VERSION): Update.
15509         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
15510         (LINK_SPEC): Update.
15511         (ASM_SPEC): Update.
15512         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
15513         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
15514
15515 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
15516
15517         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
15518         the return code.
15519
15520 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
15521
15522         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
15523         flag before setting it.
15524
15525 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15526
15527         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
15528         when loop condition is known true, i.e.  "while (1) { ... }".
15529         (genrtl_for_stmt): Similarly for "for" statements.
15530
15531 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15532
15533         * real.c (real_sqrt): Return a bool result indicating whether
15534         a floating point exception or trap should be raised.
15535         * real.h (real_sqrt): Update function prototype.
15536         * builtins.c (fold_builtin): Only fold non-trapping square
15537         roots unless we're ignoring errno and trapping math.
15538
15539 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
15540
15541         * expr.h (emit_conditional_add): Add PARAMS to declaration.
15542         * gengtype-lex.l (malloc, realloc): Move defines after include of
15543         system.h.  Remove duplicate include of system.h.
15544
15545 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15546
15547         PR middle-end/9009
15548         * optabs.c (expand_unop):  When manipulating the FP sign bit
15549         using integer operations, account for targets with different
15550         integer and FP word orders.
15551         (expand_abs): Likewise.
15552
15553 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
15554
15555         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
15556         file extension in section name.
15557
15558 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
15559
15560         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
15561         constant offset.
15562
15563 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
15564
15565         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
15566         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
15567         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
15568         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
15569
15570 2003-01-15  Jan Hubicka  <jh@suse.cz>
15571
15572         PR f/9258
15573         * global.c (struct allocno): Add no_stack_reg.
15574         (global_conflicts): Set no_stack_reg.
15575         (find_reg): Use it.
15576
15577         * convert.c (convert_to_real): Fold - and abs only when profitable.
15578         * fold-const.c (fold): Fold truncates in - and abs.
15579
15580 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
15581
15582         Segher Boessenkool  <segher@koffie.nl>
15583
15584         * predict.c (real_inv_br_prob_base): New variable.
15585         (propagate_freq): Use multiply by reciprocal instead of
15586         division.  Don't divide by 1.0 at all.
15587         (estimate_bb_frequencies): Similar.
15588
15589 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
15590
15591         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
15592         * configure: Rebuilt.
15593
15594 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
15595
15596         * config/s390/s390.c (s390_safe_attr_type): New function.
15597         (s390_use_dfa_pipeline_interface): New function, return true for z900.
15598         (s390_issue_rate): New function.
15599         (s390_agen_dep_p): New function.
15600         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
15601         (s390_adjust_cost): Return 'cost' if new DFA is used.
15602         (s390_adjust_priority): Delete function.
15603         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
15604         * config/s390/s390.md (atype attribute): Attribute 'atype' default
15605         determined by 'op_type'.
15606         (type attribute): Added more type attributes.
15607         * config/s390/2064.md: New DFA description for z900 pipeline.
15608
15609 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
15610
15611         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
15612         forced to memory.  Fixes PR bootstrap/9036.
15613
15614         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
15615         to set $gp before the call.
15616
15617 2003-01-14  Richard Henderson  <rth@redhat.com>
15618
15619         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
15620         for force_const_mem.
15621
15622 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15623
15624         * genattr.c (main): Rearrange output to avoid prototype warning.
15625         * genautomata.c (transform_3): Fix ambiguous-else warning.
15626         * local-alloc.c (requires_inout): Add parentheses around
15627         assignment used as truth-value.
15628         * timevar.c: Move system includes above local includes.  Include
15629         toplev.h
15630         * Makefile.in (timevar.o): Depend on toplev.h.
15631
15632 2003-01-14  Denis Chertykov  <denisc@overta.ru>
15633
15634         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
15635         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
15636
15637         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
15638         attributes.
15639         (TARGET_ATTRIBUTE_TABLE): New macro.
15640         (valid_machine_type_attribute): Remove.
15641         (valid_machine_decl_attribute): Remove.
15642         (ip2k_handle_progmem_attribute): New function.
15643         (ip2k_handle_fndecl_attribute): New function.
15644
15645 2003-01-10  Andrew Haley  <aph@redhat.com>
15646
15647         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
15648         registers to be in correct order.  Add rip.
15649
15650 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15651
15652         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
15653         (*iorsi3_and_lshiftrt_9_sb): Likewise.
15654
15655 2003-01-14  Jan Hubicka  <jh@suse.cz>
15656
15657         * convert.c (strip_float_extensions):  Look for narrowest type handling
15658         FP constants.
15659
15660         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
15661         float1 CMP float2.
15662         * convert.c (strip_float_extensions): Make global.
15663         * tree.h (strip_float_extensions): Declare.
15664
15665 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15666
15667         * timevar.def: define TV_NAME_LOOKUP.
15668         * timevar.c (timevar_pop): Be verbose when aborting.
15669
15670 2003-01-13  Andreas Schwab  <schwab@suse.de>
15671
15672         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
15673         $(parsedir), just move the temporary file at the end.
15674         ($(parsedir)/gengtype-yacc.c): Likewise.
15675
15676 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
15677
15678         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
15679         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
15680         splitting.
15681         * configure: Rebuilt.
15682
15683 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15684
15685         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
15686         internal_mcount): Don't use PARAMS.
15687         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
15688         ISO C style.
15689         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
15690
15691 2003-01-13  Andreas Schwab  <schwab@suse.de>
15692
15693         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
15694         directive.
15695
15696 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15697
15698         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
15699         (*iorsi3_and_lshiftrt_n_sb): Likewise.
15700
15701 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
15702
15703         PR c++/9264
15704         * c-lex.c (c_lex): Set the token value to error_mark_node for
15705         invalid numeric constants.
15706
15707 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15708
15709         * c-pch.c (asm_file_startpos): Change to `long'.
15710         (pch_init): Use ftell, not ftello.
15711         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
15712         Use `long' instead of `off_t'.
15713         (c_common_read_pch): Likewise.
15714         * ggc-common.c (gt_pch_save): Use long/ftell instead of
15715         off_t/ftello.
15716
15717 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
15718
15719         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
15720
15721 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
15722
15723         * arm-protos.h (struct cpp_reader): Add declaration.
15724
15725 2003-01-11  Jan Hubicka  <jh@suse.cz>
15726
15727         PR target/9068
15728         * i386.c (output_fp_compare): Fix typo.
15729
15730 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
15731
15732         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
15733
15734 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
15735
15736         * Makefile.in (parsedir): New variable.
15737         (docobjdir): New variable.
15738         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
15739         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
15740         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
15741         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
15742         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
15743         Use docobjdir.
15744         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
15745         objc.maintainer-clean): Use parsedir.
15746
15747         * varasm.c (struct constant_descriptor_rtx): Remove unused
15748         `label' field.
15749
15750         * toplev.c (documented_lang_options): Document -Winvalid-pch.
15751
15752 2003-01-10  Richard Henderson  <rth@redhat.com>
15753
15754         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
15755         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
15756
15757 2003-01-10  Richard Henderson  <rth@redhat.com>
15758
15759         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
15760         not INTEGRAL_MODE_P when widening extensions.
15761
15762 2003-01-10  Richard Henderson  <rth@redhat.com>
15763
15764         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
15765
15766 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
15767
15768         * ggc-page.c (ggc_collect): Avoid overflow computing
15769         min_expand.
15770
15771         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
15772         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
15773         Remove calls.
15774         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
15775
15776 2003-01-10  Jan Hubicka  <jh@suse.cz>
15777
15778         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
15779         with weird operands.
15780
15781 2003-01-10  Dale Johannesen <dalej@apple.com>
15782
15783         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
15784         parameters.  Call check_sibcall_argument_overlap if indicated.
15785         (check_sibcall_argument_overlap):  Add mark_stored_args_map
15786         parameter.  Don't mark parameter area as clobbered if not set.
15787         (expand_call):  Adjust calls to above.
15788
15789 2003-01-10 Kelley Cook <kelleycook@comcast.net>
15790
15791         * configure.in (linker read-only and read-write section mixing):
15792         Squelch some assembler warnings.
15793         * configure: Likewise.
15794
15795 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
15796
15797         * doc/invoke.texi: Document -mtune, delete -mcpu
15798         option for S/390 and zSeries.
15799         * config/s390/s390.c (s390_tune_string) New variable.
15800         (s390_cpu_string) Delete variable.
15801         (override_options): Use s390_tune_string instead of
15802         s390_cpu_string.
15803         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
15804
15805 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15806
15807         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
15808
15809 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
15810
15811         * jump.c (next_nonnote_insn_in_loop): New function.
15812         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
15813         next_nonnote_insn.
15814         (duplicate_loop_exit_test). Likewise.
15815
15816 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
15817
15818         Merge from pch-branch:
15819
15820         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
15821
15822         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
15823         load.
15824
15825         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
15826
15827         * cpplib.c (count_registered_pragmas): New function.
15828         (save_registered_pragmas): New function.
15829         (_cpp_save_pragma_names): New function.
15830         (restore_registered_pragmas): New function.
15831         (_cpp_restore_pragma_names): New function.
15832         * cpphash.h (_cpp_save_pragma_names): Prototype.
15833         (_cpp_restore_pragma_names): Likewise.
15834         * cpppch.c (struct save_macro_item): Split from save_macro_data.
15835         (struct save_macro_data): New field 'saved_pragmas'.
15836         (save_macros): Update for changes to struct save_macro_data.
15837         (cpp_prepare_state): Call _cpp_save_pragma_names, update
15838         for changes to struct save_macro_data.
15839         (cpp_read_state): Call _cpp_restore_pragma_names, update
15840         for changes to struct save_macro_data.
15841
15842         * cpppch.c (cpp_read_state): Restore the hashtable references
15843         in the cpp_reader.
15844
15845         * tree.h (built_in_decls): Mark for PCH.
15846
15847         * dbxout.c (lastfile): Don't mark for PCH.
15848
15849         * ggc.h: Document PCH calls into memory managers.
15850
15851         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
15852
15853         * doc/invoke.texi (Precompiled Headers): Document the
15854         directory form of PCH.
15855         * cppfiles.c (validate_pch): New function.
15856         (open_file_pch): Search suitably-named directories for PCH files.
15857
15858         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
15859
15860         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
15861         reorder options.
15862         (Type Information): Mention that the information is also
15863         used to implement PCH.
15864         * doc/passes.texi (Passes): Improve documentation of
15865         language-specific files.
15866
15867         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
15868
15869         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
15870         (struct walk_type_data): Add reorder_fn field.
15871         (walk_type): Process 'reorder' option.
15872         (write_types_process_field): Reorder parameters to gt_pch_note_object,
15873         call reorder_note_routine.
15874         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
15875         (ggc_wtd): Update for change to struct write_types_data.
15876         (pch_wtd): Likewise.
15877         * ggc.h (gt_pch_note_object): Reorder parameters.
15878         (gt_handle_reorder): New definition.
15879         (gt_pch_note_reorder): New prototype.
15880         * ggc-common.c (struct ptr_data): Add reorder_fn.
15881         (gt_pch_note_object): Reorder parameters.
15882         (gt_pch_note_reorder): New.
15883         (gt_pch_save): Call reorder_fn.
15884         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
15885
15886         * dbxout.c (cwd): Don't mark for PCH.
15887
15888         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
15889
15890         * gengtype.c (finish_root_table): Fix some warnings.
15891         (write_root): Handle TYPE_STRING.
15892         * ggc.h (gt_ggc_m_S): Add prototype.
15893         * stringpool.c (gt_ggc_m_S): New function.
15894
15895         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
15896
15897         * dwarf2out.c (dw2_string_counter): New.
15898         (AT_string_form): Use it.
15899         (same_dw_val_p): Update for removal of hashtable.h hash tables.
15900
15901         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
15902
15903         * dbxout.c: Include gt-dbxout.h.
15904         (lastfile): Mark for PCH/GGC.
15905         (cwd): Likewise.
15906         (struct typeinfo): Likewise.
15907         (typevec): Likewise.
15908         (typevec_len): Likewise.
15909         (next_type_number): Likewise.
15910         (struct dbx_file): Likewise.
15911         (current_file): Likewise.
15912         (next_file_number): Likewise.
15913         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
15914         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
15915         (dbxout_end_source_file): Don't free struct dbx_file.
15916         (dbxout_type): Use GGC to allocate typevec.
15917         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
15918         (GTFILES): Add dbxout.c.
15919         (gt-dbxout.h): New rule.
15920
15921         * Makefile.in (c-pch.o): Add debug.h as dependency.
15922         * c-pch.c: Include debug.h.
15923         (pch_init): Call start_source_file to keep nesting right.
15924         (c_common_read_pch): Add orig_name parameter.  Call
15925         start_source_file debug hook.  Call end_source_file debug hook.
15926         * c-common.h (c_common_read_pch): Update prototype.
15927         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
15928         callback.
15929         * cppfiles.c (struct include_file): Add new field `header_name'.
15930         (find_or_create_entry): Default it to `name'.
15931         (open_file_pch): Set it to the original header file searched for.
15932         (stack_include_file): Don't stack an empty buffer, just handle
15933         PCH files immediately.  Pass header_name field to read_pch callback.
15934
15935         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
15936
15937         * function.c (funcdef_no): Mark to be saved in a PCH.
15938
15939         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
15940
15941         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
15942
15943         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
15944
15945         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
15946
15947         * optabs.h (code_to_optab): Add GTY marker.
15948
15949         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
15950
15951         * Makefile.in (GTFILES): Add cpplib.h.
15952         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
15953         * c-decl.c (build_compound_literal): Don't use var_labelno.
15954         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
15955         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
15956         * varasm.c (const_labelno): Use gengtype to mark.
15957         (var_labelno): Likewise.
15958         (in_section): Likewise.
15959         (in_named_name): Likewise.
15960         (struct in_named_entry): Likewise.
15961         (in_named_htab): Likewise.
15962         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
15963         (init_varasm_once): Use GGC to allocate in_named_htab.
15964         * config/darwin.c (current_pic_label_num): Mark for PCH.
15965
15966         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
15967
15968         * ggc-simple.c (init_ggc_pch): New stub procedure.
15969         (ggc_pch_count_object): Likewise.
15970         (ggc_pch_total_size): Likewise.
15971         (ggc_pch_this_base): Likewise.
15972         (ggc_pch_alloc_object): Likewise.
15973         (ggc_pch_prepare_write): Likewise.
15974         (ggc_pch_write_object): Likewise
15975         (ggc_pch_finish): Likewise.
15976         (ggc_pch_read): Likewise.
15977
15978         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
15979
15980         * c-pch.c (c_common_write_pch): Write the macro definitions after
15981         the GCed data.
15982         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
15983         definitions after the GCed data.
15984         * cpplib.c (save_macros): New.
15985         (reset_ht): New.
15986         (cpp_write_pch_deps): Split out of cpp_write_pch.
15987         (cpp_write_pch_state): Split out of cpp_write_pch.
15988         (cpp_write_pch): Delete.
15989         (struct save_macro_data): Delete.
15990         (cpp_prepare_state): New.
15991         (cpp_read_state): Erase and restore initial macro definitions.
15992         * cpplib.h (struct save_macro_data): Forward-declare.
15993         (cpp_write_pch_deps): Prototype.
15994         (cpp_write_pch_state): Prototype.
15995         (cpp_write_pch): Delete prototype.
15996         (cpp_prepare_state): Prototype.
15997         (cpp_read_state): Add fourth argument.
15998
15999         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
16000
16001         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
16002         (write_array): Remove warning.
16003
16004         * gengtype.c (contains_scalar_p): New.
16005         (finish_root_table): Add the table to all languages, even if it's
16006         empty.
16007         (write_roots): Output gt_pch_scalar_rtab.
16008         * ggc-common.c (gt_pch_save): Write out scalars.
16009         (gt_pch_restore): Read scalars back.
16010
16011         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
16012         (struct page_entry): Delete pch_page field.
16013         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
16014         (clear_marks): Likewise.
16015         (sweep_pages): Likewise.
16016         (poison_pages): Likewise.
16017         (ggc_print_statistics): Likewise.
16018         (ggc_pch_read): Don't free objects read from a PCH.
16019         Properly set up in_use_p and page_tails.
16020
16021         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
16022
16023         * gengtype.c (struct write_types_data): New.
16024         (struct walk_type_data): Make `cookie' const; add extra
16025         prev_val item; add `orig_s' field.
16026         (walk_type): Update prev_val[3].
16027         (write_types_process_field): New.
16028         (write_func_for_structure): Take write_types_data structure.
16029         (write_types): New.
16030         (ggc_wtd): New.
16031         (pch_wtd): New.
16032         (write_types_local_process_field): New.
16033         (gc_mark_process_field): Delete.
16034         (write_local_func_for_structure): New.
16035         (gc_mark_func_name): Delete.
16036         (write_gc_types): Delete.
16037         (write_local): New.
16038         (finish_root_table): Don't include 'ggc_' in PFX.
16039         (write_root): Rename from write_root.  Fill pchw field of structures.
16040         (write_array): New.
16041         (write_roots): Rename from write_gc_roots.  Split out to write_array.
16042         Update to changes to other routines.  Write gt_pch_cache_rtab table.
16043         (main): Write PCH walking routines.
16044         * ggc-common.c: Include toplev.h, sys/mman.h.
16045         (ggc_mark_roots): For cache hashtables, also mark the hash table
16046         and the array of entries.
16047         (saving_htab): New.
16048         (struct ptr_data): New.
16049         (POINTER_HASH): New.
16050         (gt_pch_note_object): New.
16051         (saving_htab_hash): New.
16052         (saving_htab_eq): New.
16053         (struct traversal_state): New.
16054         (call_count): New.
16055         (call_alloc): New.
16056         (compare_ptr_data): New.
16057         (relocate_ptrs): New.
16058         (write_pch_globals): New.
16059         (struct mmap_info): New.
16060         (gt_pch_save): New.
16061         (gt_pch_restore): New.
16062         * ggc-page.c (ROUND_UP_VALUE): New.
16063         (ROUND_UP): New.
16064         (struct page_entry): Add field `pch_page'.
16065         (init_ggc): Use ROUND_UP.
16066         (struct ggc_pch_data): Declare.
16067         (init_ggc_pch): New.
16068         (ggc_pch_count_object): New.
16069         (ggc_pch_total_size): New.
16070         (ggc_pch_this_base): New.
16071         (ggc_pch_alloc_object): New.
16072         (ggc_pch_prepare_write): New.
16073         (ggc_pch_write_object): New.
16074         (ggc_pch_finish): New.
16075         (ggc_pch_read): New.
16076         * ggc.h (gt_pointer_operator): New.
16077         (gt_note_pointers): New.
16078         (gt_pch_note_object): New prototype.
16079         (gt_pointer_walker): New.
16080         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
16081         (LAST_GGC_ROOT_TAB): Update.
16082         (gt_pch_cache_rtab): Declare.
16083         (gt_pch_scalar_rtab): Declare.
16084         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
16085         (LAST_GGC_CACHE_TAB): Update.
16086         (gt_pch_save_stringpool): Declare.
16087         (gt_pch_restore_stringpool): Declare.
16088         (gt_pch_p_S): Declare.
16089         (gt_pch_n_S): Declare.
16090         (struct ggc_pch_data): Forward-declare.
16091         (init_ggc_pch): Declare.
16092         (ggc_pch_count_object): Declare.
16093         (ggc_pch_total_size): Declare.
16094         (ggc_pch_this_base): Declare.
16095         (ggc_pch_alloc_object): Declare.
16096         (ggc_pch_prepare_write): Declare.
16097         (ggc_pch_write_object): Declare.
16098         (ggc_pch_finish): Declare.
16099         (ggc_pch_read): Declare.
16100         (gt_pch_save): Declare.
16101         (gt_pch_restore): Declare.
16102         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
16103         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
16104         const_double_htab, mem_attrs_htab using GGC.
16105         * c-pch.c: Include ggc.h.
16106         (pch_init): Allow reading PCH file back.
16107         (c_common_write_pch): Call gt_pch_save.
16108         (c_common_read_pch): Call gt_pch_restore.
16109         * c-parse.in (init_reswords): Delete now-untrue comment.
16110         Allocate ridpointers using GGC.
16111         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
16112         calling expand_deferred_fns.
16113         * c-common.h (ridpointers): Mark for GTY machinery.
16114         * Makefile.in (stringpool.o): Update dependencies.
16115         (c-pch.o): Update dependencies.
16116         (ggc-common.o): Update dependencies.
16117         * stringpool.c: Include gt-stringpool.h.
16118         (gt_pch_p_S): New.
16119         (gt_pch_n_S): New.
16120         (struct string_pool_data): New.
16121         (spd): New.
16122         (gt_pch_save_stringpool): New.
16123         (gt_pch_restore_stringpool): New.
16124         * tree.c (init_ttree): Make type_hash_table allocated using GC.
16125
16126         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
16127
16128         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
16129         (output_mangled_typename): Don't pass size_t to printf.
16130
16131         * tree.h (union tree_type_symtab): Add tag to `address' field.
16132         (union tree_decl_u2): Add tag to 'i' field.
16133         * varasm.c (union rtx_const_un): Add tags to all fields.
16134         * gengtype.c (struct walk_type_data): New.
16135         (output_escaped_param): Take struct walk_type_data parameter.
16136         (write_gc_structure_fields): Delete.
16137         (walk_type): New.
16138         (write_gc_marker_routine_for_structure): Delete.
16139         (write_func_for_structure): New.
16140         (gc_mark_process_field): New.
16141         (gc_mark_func_name): New.
16142         (gc_counter): Delete.
16143         (write_gc_types): Use write_func_for_structure.
16144         (write_gc_roots): Use walk_type.
16145
16146         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
16147
16148         * ggc-common.c (ggc_mark_roots): Delete 'x'.
16149         (ggc_splay_dont_free): Fix warning about unused 'x'.
16150         (ggc_print_common_statistics): Remove warnings.
16151
16152         2002-10-01  Mike Stump  <mrs@apple.com>
16153
16154         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
16155         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
16156
16157         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
16158             Catherine Moore  <clm@redhat.com>
16159
16160         * Makefile (c-pch.o): Update dependencies.
16161         (LIBCPP_OBJS): Add cpppch.o.
16162         (cpppch.o): New.
16163         * c-common.c (c_common_init): Don't call pch_init here.
16164         * c-common.h (c_common_read_pch): Update prototype.
16165         * c-lex.c (c_common_parse_file): Call pch_init here.
16166         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
16167         (c_common_decode_option): Handle them.
16168         * c-pch.c: Include c-pragma.h.
16169         (save_asm_offset): Delete.
16170         (pch_init): Move contents of save_asm_offset into here, call
16171         cpp_save_state.
16172         (c_common_write_pch): Call cpp_write_pch.
16173         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
16174         cpp_valid_state.
16175         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
16176         * cppfiles.c (stack_include_file): Update for change to
16177         parameters of cb.read_pch.
16178         * cpphash.h (struct cpp_reader): Add `savedstate' field.
16179         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
16180         `restore_pch_deps' fields.
16181         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
16182         (cpp_save_state): Prototype.
16183         (cpp_write_pch): Prototype.
16184         (cpp_valid_state): Prototype.
16185         (cpp_read_state): Prototype.
16186         * cpppch.c: New file.
16187         * flags.h (version_flag): Remove prototype.
16188         * mkdeps.c (deps_save): New.
16189         (deps_restore): New.
16190         * mkdeps.h (deps_save): Prototype.
16191         (deps_restore): Prototype.
16192         * toplev.c (late_init_hook): Delete.
16193         (version_flag): Make static again.
16194         (compile_file): Don't call late_init_hook.
16195         * toplev.h (late_init_hook): Delete.
16196         * doc/cppopts.texi: Document -fpch-deps.
16197         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
16198
16199         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
16200
16201         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
16202         callers.
16203         (c_common_valid_pch): Rename from c_valid_pch, change callers.
16204         (c_common_read_pch): Rename from c_read_pch, change callers.
16205
16206         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
16207         a space between it and its argument.
16208
16209         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
16210
16211         * c-pch.c: New file.
16212         * toplev.h (late_init_hook): Declare.
16213         * toplev.c (late_init_hook): Define.
16214         (version_flag): Make globally visible.
16215         (compile_file): Call late_init_hook.
16216         (init_asm_output): Make output file seekable.
16217         * gcc.c (default_compilers): Update c-header rule.
16218         * flags.h (version_flag): Declare.
16219         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
16220         fields.
16221         * cppfiles.c (struct include_file): Add 'pch' field.
16222         (INCLUDE_PCH_P): New.
16223         (open_file_pch): New.
16224         (stack_include_file): Handle PCH files specially.
16225         (find_include_file): Call open_file_pch instead of open_file.
16226         (_cpp_read_file): Explain why open_file is used instead of
16227         open_file_pch.
16228         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
16229         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
16230         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
16231         in cpplib callbacks.
16232         * c-common.c (pch_file): Correct comment.
16233         (allow_pch): Define.
16234         (c_common_init): Call pch_init.
16235         * c-common.h (allow_pch): Declare.
16236         (pch_init): Declare.
16237         (c_valid_pch): Declare.
16238         (c_read_pch): Declare.
16239         (c_write_pch): Declare.
16240         * Makefile.in (c-pch.o): New.
16241         (C_AND_OBJC_OBJS): Add c-pch.o.
16242         * doc/invoke.texi (Precompiled Headers): Add index entries,
16243         complete truncated paragraph.
16244
16245         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
16246
16247         * c-common.c: (pch_file): Define.
16248         * c-common.h (pch_file): Declare.
16249         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
16250         (missing_arg): Require --output-pch= to have an argument.
16251         (c_common_decode_option): Handle --output-pch=.
16252         * gcc.c: Document new %V.
16253         (default_compilers): Handle compiling C header files.
16254         (do_spec_1): Implement %V.
16255         (main): Handle "gcc foo.h" without trying to run linker.
16256         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
16257         (Overall Options): Document what the driver does with header files,
16258         document new -x option possibilities.
16259         (Invoking G++): More documentation for PCH.
16260         (Precompiled Headers): New.
16261
16262         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
16263
16264         * ggc.h: Don't include varray.h.  Rearrange functions to be more
16265         organized.
16266         (ggc_add_root): Delete.
16267         (ggc_mark_rtx): Delete.
16268         (ggc_mark_tree): Delete.
16269         (struct ggc_statistics): Remove contents.
16270         * ggc-common.c: Remove unneeded includes.
16271         (struct ggc_root): Delete.
16272         (roots): Delete.
16273         (ggc_add_root): Delete.
16274         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
16275         (ggc_print_common_statistics): Remove most of the contents.
16276         * Makefile.in (GGC_H): No longer uses varray.h.
16277         (ggc-common.o): Update dependencies.
16278         (c-parse.o): Add varray.h to dependencies.
16279         (c-common.o): Add varray.h.
16280         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
16281         (mark_ident_hash): Rename to ggc_mark_stringpool.
16282         (init_stringpool): Don't use ggc_add_root.
16283         * c-parse.in: Include varray.h.
16284         * c-common.c: Include varray.h.
16285         * objc/Make-lang.in (objc-act.o): Add varray.h.
16286         * objc/objc-act.c: Include varray.h.
16287
16288         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
16289
16290         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
16291         (dw_cfi_oprnd1_desc): Likewise.
16292
16293         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
16294
16295         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
16296         move out of ifdef.
16297         (alpha_links): Use gengtype to mark; move out of ifdef.
16298         (mark_alpha_links_node): Delete.
16299         (mark_alpha_links): Delete.
16300         (alpha_need_linkage): Use GGC to allocate splay tree, struct
16301         alpha_links, strings.  Don't use ggc_add_root.
16302         * ggc-common.c (ggc_splay_alloc): New.
16303         (ggc_splay_dont_free): New.
16304         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
16305         (ggc_mark_tree): Likewise.
16306         (splay_tree_new_ggc): New.
16307         (ggc_splay_alloc): Declare.
16308         (ggc_splay_dont_free): Declare.
16309         * dwarf2asm.c: Include gt-dwarf2asm.h.
16310         (mark_indirect_pool_entry): Delete.
16311         (mark_indirect_pool): Delete.
16312         (indirect_pool): Use gengtype to mark.
16313         (dw2_force_const_mem): Don't use ggc_add_root.
16314         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
16315         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
16316         (gt-dwarf2asm.h): Depend on s-gtype.
16317
16318         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
16319
16320         * tree.h (union tree_type_symtab): Mark `die' field.
16321         * Makefile.in (dwarf2out.o): Update dependencies.
16322         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
16323         hash tables.
16324         (dw_cfi_oprnd1_desc): New function.
16325         (dw_cfi_oprnd2_desc): New function.
16326         (indirect_string_alloc): Delete.
16327         (debug_str_do_hash): New function.
16328         (debug_str_eq): New function.
16329         (mark_limbo_die_list): Delete.
16330         (dwarf2out_init): Don't call ggc_add_root.
16331
16332 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
16333
16334         The following changes are merged from itanium-sched-branch:
16335
16336         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
16337
16338         * doc/md.texi: Clarify assignment of units to automata description.
16339
16340         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
16341
16342         * genautomata.c (unit_decl): Remove members
16343         `the_same_automaton_unit' and
16344         `the_same_automaton_message_reported_p'.
16345         (process_unit_to_form_the_same_automaton_unit_lists,
16346         form_the_same_automaton_unit_lists_from_regexp,
16347         form_the_same_automaton_unit_lists, the_same_automaton_lists):
16348         Remove them.
16349         (annotation_message_reported_p): New global variable.
16350         (check_unit_distribution_in_reserv,
16351         check_regexp_units_distribution): New functions.
16352         (check_unit_distributions_to_automata): Rewrite it.
16353
16354         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
16355
16356         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
16357         Use continue instead of break if cycle is too big.
16358
16359         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
16360
16361         * genautomata.c (check_unit_distributions_to_automata): Output at
16362         most one message for a unit.
16363         (process_unit_to_form_the_same_automaton_unit_lists): Check
16364         automaton of units instead of units themself.
16365
16366         * doc/md.texi: Describe the constraint about assigning unit to
16367         automata.
16368
16369         2002-12-20  Jan Hubicka  <jH@suse.cz>
16370                     Vladimir Makarov  <vmakarov@redhat.com>
16371
16372         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
16373         and `in_set_p'.
16374         (gen_cpu_unit): Initialize the new members.
16375         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
16376         up `min_occ_cycle_num'.
16377         (evaluate_max_reserv_cycles): Change the function call.
16378         (CLEAR_BIT): New macro.
16379         (states_union, state_shift): Use the mask.
16380         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
16381         (form_reservs_matter): New function.
16382         (make_automaton): Call the function and use the mask.
16383         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
16384         account.
16385
16386         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16387
16388         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
16389
16390         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16391
16392         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
16393         for Itanium.
16394
16395         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16396
16397         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
16398         default cpu.
16399
16400         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16401                 2002-10-31  Dale Johannesen <dalej@apple.com>
16402
16403         * haifa-sched.c (find_set_reg_weight): New function.
16404         (find_insn_reg_weight): Use the new function.
16405         (schedule_block): Do sorting ready queue always
16406         after insn issue.
16407
16408         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
16409
16410         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
16411
16412         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
16413
16414         * haifa-sched.c (choice_entry): New structure.
16415         (choice_stack, cycle_issued_insns): New variables.
16416         (max_issue): Rewrite it.
16417         (choose_ready): Set up ready_try for unknown insns too.
16418         (schedule_block): Allocate and free choice_stack.  Set up
16419         and modify cycle_issued_insns.
16420
16421         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
16422         with and without filling the bundle.
16423         (bundling): Combine calls of issue_nops_and_insn.
16424
16425         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
16426
16427         * config/ia64/itanium1.md: New file.
16428
16429         * config/ia64/itanium2.md: New file.
16430
16431         * config/ia64/ia64.md: Move DFA descriptions into the new files.
16432         Remove the old pipeline description.
16433
16434         * config/ia64/ia64.c (ia64_override_options): Add aliases of
16435         itanium processor names.
16436
16437         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
16438
16439         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
16440         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
16441
16442         * config/ia64/ia64.md: Add descriptions for Itanium2.
16443
16444         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
16445
16446         * config/ia64/ia64.h (processor_type): New enumeration.
16447         (ia64_tune, ia64_tune_string): New external declarations.
16448         (TARGET_OPTIONS): Add option `tune='.
16449
16450         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
16451         variables.
16452         (ia64_override_options): Set up `ia64_tune'.
16453         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
16454         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
16455         (bundling): Add nops for MM-insns only for Itanium.
16456         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
16457         Itanium.
16458
16459         * config/ia64/ia64.md (cpu): New attribute.
16460         (DFA description): Enable it only for Itanium.
16461
16462         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
16463                     Richard Henderson  <rth@redhat.com>
16464
16465         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
16466         MASK_EARLY_STOP_BITS.
16467         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
16468         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
16469         `early-stop-bits'.
16470
16471         * config/ia64/ia64.c (ia64_dfa_new_cycle,
16472         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
16473         instead of TARGET_TUNE_STOP_BITS.
16474
16475         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
16476         `-mearly-stop-bits'.
16477
16478         * config/ia64/ia64.c (automata_option "v"): Comment it.
16479
16480         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
16481
16482         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
16483         New macros.
16484         (TARGET_SWITCHES): Add entries for the new option.
16485
16486         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
16487         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
16488         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
16489         global variables.
16490         (ia64_sched_reorder2): Set up `clocks'.
16491         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
16492         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
16493         queue when TARGET_TUNE_STOP_BITS.
16494         (bundling): Insert additional nops for MM-insns.
16495         (final_emit_insn_group_barriers): Add insertion of stop bits
16496         according `stops_p'.
16497         (ia64_reorg): Initiate the new varibales.
16498
16499         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
16500
16501         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
16502
16503         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
16504         insns at the end of block insn scheduling.
16505
16506         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
16507
16508         * sched-deps.c (remove_dependence, group_leader): Remove it.
16509         (add_dependence): Add dependence to group leader to.
16510         (set_sched_group_p): Add dependence to the first insn of the
16511         schedule group too.
16512         (sched_analyze_insn): Make dependence to jump as anti-dependence.
16513         Change true dependence by anti-dependence when
16514         `reg_pending_barrier'.
16515
16516         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
16517         add_branch_dependences): Ignore schedule groups.
16518
16519         * sched-ebb.c (init_ready_list): Ditto.
16520
16521         * (move_insn, set_priorities): Ditto.
16522
16523         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
16524         flag is clear after reload.
16525         (adjust_cost): Change cost only for output dependencies.
16526
16527         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
16528
16529         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
16530
16531         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
16532
16533         * target.h (gcc_target): Add member
16534         `dependencies_evaluation_hook'.
16535
16536         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
16537         macro.
16538         (TARGET_SCHED): Add initiatialization of the new member.
16539
16540         * sched-ebb.c: Include `target.h'.
16541         (schedule_ebb): Call `dependencies_evaluation_hook'.
16542
16543         * sched-rgn.c (schedule_region): Call
16544         `dependencies_evaluation_hook'.
16545
16546         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
16547         New macro.
16548         (ia64_dependencies_evaluation_hook): New function.
16549
16550         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
16551         Describe the new hook.
16552
16553         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
16554
16555         * target.h (gcc_target): Add members
16556         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
16557
16558         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
16559         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
16560         macros.
16561         (TARGET_SCHED): Add initiatialization of the new members.
16562
16563         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
16564         insn scheduling too.
16565         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
16566         initialize `ready_try'.
16567         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
16568         `dfa_new_cycle' says not to do it.
16569
16570         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
16571         bundling.
16572
16573         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
16574
16575         * config/ia64/ia64.c: Include `hashtab.h'.
16576         (ia64_first_cycle_multipass_dfa_lookahead_guard,
16577         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
16578         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
16579         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
16580         bundle_state_eq_p, insert_bundle_state,
16581         initiate_bundle_state_table, finish_bundle_state_table,
16582         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
16583         get_template, get_next_important_insn, bundling): New functions.
16584         (ia64_internal_sched_reorder): Remove it.
16585         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
16586         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
16587         (ia64_safe_itanium_requires_unit0): Remove it.
16588         (group_barrier_needed_p): Place group barrier right before a real
16589         insn.
16590         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
16591         Remove them.
16592         (bundle_name): New variable.
16593         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
16594         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
16595         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
16596         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
16597         temp_dfa_state, prev_cycle_state): New global variables.
16598         (insn_matches_slot, maybe_rotate, finish_last_head,
16599         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
16600         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
16601         find_best_packet, itanium_reorder, dump_current_packet,
16602         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
16603         (sched_data, sched_ready, sched_types): Remove them.
16604         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
16605         `init_insn_group_barriers'.
16606         (ia64_sched_reorder, ia64_sched_reorder2): Call
16607         ia64_dfa_sched_reorder.
16608         (ia64_variable_issue): Rewrite it.
16609         (bundle_state): New structure.
16610         (index_to_bundle_states, bundle_states_num,
16611         allocated_bundle_states_chain, free_bundle_state_chain): New
16612         global variables.
16613         (ia64_sched_finish): Add stop bits and call `bundling' after the
16614         2nd insn scheduling.
16615         (ia64_use_dfa_pipeline_interface): Return zero always.
16616         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
16617         insn scheduling.
16618         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
16619         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
16620         (ia64_reorg): Add bundling insns.
16621
16622         * doc/tm.texi
16623         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
16624         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
16625
16626         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
16627
16628         * config/ia64/ia64.md: Add Itanium1 DFA description.
16629         (itanium_class): Add `nop' and `pre_cycle'.  Add
16630         define_function_unit for `nop'.
16631         (nop): Change attribute `itanium_class'.
16632         (pre_cycle): New define_insn.
16633
16634         * config/ia64/ia64-protos.h (bundling_p): New external variable.
16635         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
16636         ia64_produce_address_p): New function prototypes.
16637
16638         * config/ia64/ia64.c (bundling_p): New global variable.
16639         (ia64_use_dfa_pipeline_interface,
16640         ia64_first_cycle_multipass_dfa_lookahead,
16641         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
16642         functions.
16643         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
16644         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
16645         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
16646         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
16647         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
16648         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
16649         (dfa_pre_cycle_insn): New variable.
16650
16651         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
16652
16653         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
16654         constructions.
16655
16656         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
16657         New function prototypes.
16658
16659         * genattrtab.c (main): Process the new constructions.
16660
16661         * genautomata.c (gen_presence_absence_set,
16662         process_presence_absence_names, process_presence_absence_patterns,
16663         add_presence_absence, check_absence_pattern_sets): Add parameter
16664         `final_p'.
16665         (unit_decl): Add new members `final_presence_list' and
16666         `final_absence_list'.
16667         (unit_pattern_rel_decl): Add new member `final_p'.
16668         (gen_final_presence_set, gen_final_absence_set): New functions.
16669         (process_decls): Use member `final_p'.
16670         (temp_reserv): New global variable.
16671         (reserv_sets_are_intersected): Add processing `final_presence_set'
16672         and `final_absence_set'.
16673         (initiate_states): Allocate `temp_reserv'.
16674         (unit_final_presence_set_table, unit_final_absence_set_table): New
16675         gloabal variables.
16676         (initiate_presence_absence_pattern_sets): Initiate them.
16677         (NDFA_to_DFA): Fix typo.
16678         (output_description): Output `final_presence_set' and
16679         `final_absence_set'.
16680
16681         * doc/md.texi (final_presence_set, final_absence_set): Describe
16682         them.
16683
16684         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
16685
16686         * genautomata.c (transform_3): Process a missing case (nothing on
16687         unit place).
16688
16689         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
16690
16691         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
16692         comments about queried units and the minimization.
16693
16694         * doc/md.texi: Ditto.
16695
16696         * genautomata.c (create_composed_state): Return nonzero if the new
16697         state has been created.
16698         (first_cycle_unit_presence): New function.
16699         (state_is_differed): Add new parameter.  Use the new function.
16700         Take queried units into account.
16701         (partition_equiv_class): Pass additional parameter to
16702         `state_is_differed'.
16703         (merge_states): Process composed states too.
16704         (build_automaton, create_automata, output_min_issue_delay_table,
16705         output_tables, output_statistics): Output more information.
16706         (output_reserved_units_table): Use function
16707         `first_cycle_unit_presence'.
16708         (output_tables): Output table of queried units even if the
16709         minimization is switched on.
16710         (write_automata): Output code for querying units even if the
16711         minimization is switched on.
16712
16713         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
16714
16715         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
16716         syntax of the constructions.
16717
16718         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
16719         extended syntax of the constructions.
16720
16721         * genautomata.c (unit_rel_decl): Rename it to
16722         `unit_pattern_rel_decl'.
16723         (pattern_set_el, pattern_reserv): New structures.
16724         (pattern_set_el_t, pattern_reserv_t): New types.
16725         (gen_presence_absence_set): New function.
16726         (process_presence_absence): Remove it.
16727         (process_presence_absence_names,
16728         process_presence_absence_patterns): New functions.
16729         (get_presence_absence_set): Remove it.
16730         (initiate_presence_absence_sets): Rename it on
16731         `initiate_presence_absence_pattern_sets'.  Use new function
16732         `form_reserv_sets_list'.
16733         (form_reserv_sets_list, check_presence_pattern_sets,
16734         check_absence_pattern_sets, output_pattern_set_el_list): New
16735         functions.
16736         (unit_decl): Change types of members `presence_list' and
16737         `absence_list'.
16738         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
16739         (decl): Change types of members `excl', `presence', and `absence'.
16740         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
16741         at the end of the vector.
16742         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
16743         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
16744         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
16745         (gen_presence_set, gen_absence_set): Use new function
16746         `gen_presence_absence_set'.
16747         (add_presence_absence): Process `pattern_list' instead of
16748         `source_list'.
16749         (process_decls): USe new functions
16750         `process_presence_absence_names' and
16751         `process_presence_absence_patterns'.
16752         (reserv_sets_are_intersected): Use new function
16753         `check_presence_pattern_sets'.
16754         (presence_set, absence_set): Remove them.
16755         (unit_presence_set_table, unit_absence_set_table): New global
16756         variables.
16757         (output_description): Use new function
16758         `output_pattern_set_el_list'.
16759         (generate): Use `initiate_presence_absence_pattern_sets'.
16760
16761         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
16762
16763         * genattr.c (main): Add output of prototype of new interface
16764         function `dfa_clean_insn_cache'.
16765
16766         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
16767         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
16768         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
16769         the generated code.
16770         (write_automata): Call the new function.
16771
16772 2003-01-09  Jan Hubicka  <jh@suse.cz>
16773
16774         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
16775         correctly.
16776
16777 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
16778
16779         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
16780
16781 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
16782
16783         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
16784         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
16785         (CONSTRAINT_LEN): Provide default definition.
16786         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
16787         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
16788         (EXTRA_CONSTRAINT_STR): Likewise.
16789         (REG_CLASS_FROM_CONSTRAINT): Define.
16790         * genoutput.c (check_constraint_len, constraint_len): New functions.
16791         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
16792         constraint / modifier.
16793         (gen_insn): Call check_constraint_len.
16794         * local-alloc.c (block_alloc): Update to use new macros / pass
16795         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
16796         * ra-build.c (handle_asm_insn): Likewise.
16797         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16798         (constrain_operands, peep2_find_free_register): Likewise.
16799         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
16800         * regmove.c (find_matches): Likewise.
16801         * reload.c (push_secondary_reload, find_reloads): Likewise.
16802         (alternative_allows_memconst): Likewise.
16803         * reload1.c (maybe_fix_stack_asms): Likewise.
16804         (reload_cse_simplify_operands): Likewise.
16805         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
16806         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
16807         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
16808         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
16809         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
16810         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
16811
16812         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
16813
16814 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16815
16816         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
16817         length.
16818         (*extzv_1_r_h8300hs): Likewise.
16819         (*extzv_1_r_inv_h8300): Likewise.
16820         (*extzv_1_r_inv_h8300hs): Likewise.
16821
16822 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16823
16824         * config/h8300/h8300.h (PREDICATE_CODES): New.
16825
16826 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16827
16828         * config/h8300/h8300.md (*addsi3_upper): New.
16829         (*iorsi3_shift): Likewise.
16830         (two splitters): Likewise.
16831         (*addsi3_shift): Likewise.
16832         (two splitters): Likewise.
16833
16834 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
16835
16836         * Makefile.in (optabs.o): Add dependency on basic-block.h.
16837         * basic-block.h (control_flow_insn_p): Fuction was exported.
16838         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
16839         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
16840         notes only when the region is contained in a single basic block.
16841
16842 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16843
16844         PR inline-asm/8832
16845         * tree.h (expand_asm): New prototype.
16846         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
16847         to do so.
16848         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
16849         down to expand_asm.
16850         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
16851         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
16852         (volatile_refs_p) [ASM_INPUT]: Likewise.
16853         (side_effects_p) [ASM_INPUT]: Likewise.
16854
16855 2003-01-09  Jan Hubicka  <jh@suse.cz>
16856
16857         * i386.md (*mul*): FIx constraints; remove confused comment; fix
16858         athlon_decode attributes
16859         (imul/k8 optimization peep2s): New.
16860
16861         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
16862         * i386.md (type attribute): Add ssecomi.
16863         (unit, memory, prefix attributes): Handle ssecomi.
16864         (cvt?2? patterns): Fix athlon_decode attribute
16865         (comi patterns): Set attribute to ssecomi.
16866
16867         PR target/8343
16868         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
16869
16870 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
16871
16872         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
16873         that match register_operands.
16874         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
16875         register_operand the default case.
16876
16877 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16878
16879         PR c/8032
16880         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
16881         an empty element, do not advance the pointer to unfilled
16882         fields if there are pending initializers.
16883
16884 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
16885
16886         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
16887         (install-gcc-tooldir, install-cpp, installdirs,
16888         install-common, install-driver, install-info, install-man,
16889         install-headers, install-include-dir, install-headers-tar,
16890         install-headers-cpio, install-headers-cp, install-mkheaders,
16891         install-collect2, uninstall): Prepend $(DESTDIR) to
16892         destination paths in all (un)installation commands.
16893         (install-driver): Rewrite $(LN) commands to support DESTDIR
16894         with "ln" as well as with "ln -s".
16895         (installdirs): Simply use mkinstalldirs.
16896         (install-libgcc, install-multilib): Also pass DESTDIR.
16897         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
16898         installation destination variable ldir.
16899         * config/alpha/t-osf4, config/arm/t-netbsd,
16900         config/ia64/t-hpux, config/mips/t-iris5-6,
16901         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
16902         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
16903         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
16904         in the definition of SHLIB_INSTALL.
16905         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
16906         $(libsubdir) in the installation commands.
16907
16908 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
16909
16910         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
16911         non-optimizing compile.
16912         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
16913         compile.
16914
16915 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
16916
16917         * config/i386/i386.c (ix86_attribute_table): Add new attributes
16918         ms_struct and gcc_struct.
16919         (ix86_handle_struct_attribute): New function.
16920         (ix86_ms_bitfield_layout_p): Update to take new attributes
16921         into account.
16922         * doc/extend.texi: Document new attributes.
16923         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
16924
16925 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
16926
16927         PR optimization/8750
16928         * config/i386/i386.c (ix86_expand_prologue): Don't allow
16929         scheduling pass to move insns across __alloca call.
16930
16931 2003-01-08  Dale Johannesen  <dalej@apple.com>
16932
16933         * config/rs6000/rs6000.md:  Replace *store_multiple_string
16934         with *stmsi[3-8].
16935
16936 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
16937
16938         PR target/9210
16939         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
16940         Set SYMBOL_REF_FLAG on local data sym_ref.
16941
16942 2003-01-08  Dale Johannesen  <dalej@apple.com>
16943
16944         * function.c (assign_parms):  Don't set pretend_args_size if
16945           REG_PARM_STACK_SPACE.
16946           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
16947           pretend_args_size.
16948
16949 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
16950
16951         * gcc.hlp: Delete.
16952
16953 2003-01-09  Jan Hubicka  <jh@suse.cz>
16954
16955         * i386.c  (ix86_expand_int_addcc): Fix thinko.
16956
16957 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
16958
16959         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
16960         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
16961         as hook_bool_tree_hwi_hwi_tree_true.
16962         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
16963         (rs6000_emit_epilogue): Same.
16964         (rs6000_output_mi_thunk): Re-implement as RTL.
16965         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
16966         xcoffout_declare_function if any debugging enabled.
16967
16968 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
16969
16970         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
16971         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
16972         * config/mips/mips.h (enum processor_type): Rename
16973         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
16974         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
16975         Add PROCESSOR_M4K.
16976         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
16977         (ISA_MIPS32R2): New define.
16978         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
16979         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
16980         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
16981         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
16982         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
16983         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
16984         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
16985         compiling MIPS16 code.
16986         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
16987         comment.
16988         (ISA_HAS_SEB_SEH): New define.
16989         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
16990         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
16991         processor_type value renaming.  Add support for MIPS32R2.
16992         Clean up comments, and move "sb1" entry with other MIPS64 CPU
16993         entries.
16994         (override_options): Reimplement -mipsN option handling so that
16995         it will work correctly for -mips32r2.  Avoid branch-likely
16996         instructions on MIPS32R2.
16997         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
16998         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
16999         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
17000         (extendhisi2_hw, extendqisi2_hw): New.
17001         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
17002         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
17003         MIPS32R2, and MIPS64.
17004         (LINK_SPEC): Pass -mips32r2 to linker.
17005         * config/mips/t-isa3264: Built -mips32r2 multilibs.
17006         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
17007         for mips32r2 in the -march description.  Alphabetically sort
17008         CPU names in the -march description.  Add long-missed -mips32
17009         and -mips64 to MIPS option summary.
17010
17011         * config.gcc: Update copyright years to include 2003.
17012         * config/mips/mips.c: Likewise.
17013         * config/mips/mips.h: Likewise.
17014         * config/mips/mips.md: Likewise.
17015         * config/mips/netbsd.h: Likewise.
17016         * doc/invoke.texi: Likewise.
17017
17018 2003-01-08  Andreas Schwab  <schwab@suse.de>
17019
17020         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
17021         variable.
17022         * configure: Regenerated.
17023
17024 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
17025
17026         * config/h8300/h8300.c (output_logical_op): Replace byte/word
17027         extraction of det with b0, b1, w0, w2, etc.
17028         (compute_logical_op_length): Likewise.
17029         (compute_logical_op_cc): Likewise.
17030
17031 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
17032
17033         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
17034         HIGH on all variants.
17035
17036 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
17037
17038         * Makefile.in (PARTITION_H): New.
17039         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
17040         * basic-block.h: Include hard-reg-set.h.
17041
17042 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
17043
17044         * arm.h (ENABLE_XF_PATTERNS): Delete.
17045         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
17046         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
17047         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
17048         (cmpxf_trap): Delete.
17049         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
17050
17051 2003-01-08  Jan Hubicka  <jh@suse.cz>
17052
17053         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
17054         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
17055         (add??cc): New expanders.
17056         * i386.c (expand_int_addcc): New function.
17057         * i386-protos.h (expand_int_addcc): Declare.
17058
17059         * alias.c (memory_modified_1): New static function.
17060         (memory_modified): New static varaible.
17061         (memory_modified_in_insn_p): New global function.
17062         * rtl.h (memory_modified_in_insn_p): Declare.
17063         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
17064         references.
17065
17066         * expr.h (emit_conditional_add): Declare.
17067
17068 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
17069
17070         PR other/8947
17071         * doc/invoke.texi (-malign-double): Explain that the option breaks
17072         binary compatibility.
17073
17074 2003-01-08  Andreas Schwab  <schwab@suse.de>
17075
17076         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
17077         should come from the generic *-*-linux* entry.
17078
17079 2003-01-07  Jan Hubicka  <jh@suse.cz>
17080
17081         * cselib.c (cselib_current_insn_in_libcall): New static variable.
17082         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
17083         we are inside libcall.
17084         * cselib.h (elt_loc_list): Add in_libcall.
17085         * gcse.c (do_local_cprop): Do not copy propagate using insns
17086         in libcalls.
17087
17088 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
17089
17090         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
17091         not normally affect to issue rate.
17092
17093 2003-01-07  Jan Hubicka  <jh@suse.cz>
17094
17095         * genopinit.c (optabs): Add addc_optab.
17096         * ifcvt.c (noce_try_store_flag): Rename to ...
17097         (noce_try_addcc): ... this one; handle generic conditional increment.
17098         (noce_process_if_block): Update noce_try_addcc call.
17099         * optabs.c (emit_conditional_add): New.
17100         (init_obtabs): Initialize addc_optab.
17101         * optabs.h (optab_index): Add OTI_addcc.
17102         (addcc_optab): New macro.
17103         * md.texi: Document addMcc
17104
17105         PR target/8322
17106         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
17107         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
17108         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
17109
17110         * reload1.c (delete_output_reload): Avoid repeated attempts
17111         to delete insn.
17112
17113 2003-01-07  Andreas Schwab  <schwab@suse.de>
17114
17115         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
17116         Move --enable-initfini-array check ...
17117         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
17118         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
17119         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
17120         * configure: Rebuild.
17121
17122 2003-01-07  Richard Henderson  <rth@redhat.com>
17123
17124         * alias.c (find_base_value): Only use new_reg_base_value shortcut
17125         if the register is set once.
17126
17127 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
17128
17129         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
17130         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
17131         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
17132
17133 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
17134             Sunil Davasam  <sunil.k.davasam@intel.com>
17135
17136         PR libstdc++/9076
17137         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
17138         DW_CFA_same_value, read next and ignore.
17139
17140 2003-01-07  Richard Henderson  <rth@redhat.com>
17141
17142         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
17143
17144 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
17145
17146         * cfg.c: Include alloc-pool.h
17147         (edge_pool): New pool.
17148         (bb_pool): New pool.
17149         (first_deleted_edge): Remove.
17150         (first_deleted_block): Remove.
17151         (init_flow): Alloc/free the pools.
17152         (free_edge): Use pools.
17153         (alloc_block): Ditto.
17154         (expunge_block): Ditto.
17155         (cached_make_edge): Ditto.
17156
17157         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
17158
17159 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
17160
17161         * et-forest.c: Include alloc-pool.h.
17162         (struct et_forest): Add node_pool and occur_pool.
17163         (et_forest_create): Create the new pools.
17164         (et_forest_delete): Delete them.
17165         (et_forest_add_node): Allocate and free using pools.
17166         (et_forest_add_edge): Ditto.
17167         (et_forest_remove_node): Ditto.
17168         (et_forest_remove_edge): Ditto.
17169
17170         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
17171
17172 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
17173
17174         * config/h8300/h8300.c (output_logical_op): Simplify and
17175         optimize the handling of SImode.
17176         * config/h8300/h8300.c (compute_logical_op_length): Update
17177         accordingly.
17178         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
17179
17180 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
17181
17182         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
17183         big-endian correction to indirect arguments too.
17184
17185 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
17186
17187         Segher Boessenkool  <segher@koffie.nl>
17188
17189         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
17190         (alt_reg_names): Ditto, fix formatting.
17191         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
17192
17193 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17194
17195         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
17196         (output_logical_op): Constify intval and det.
17197         (compute_logical_length): Likewise.
17198         (compute_logical_cc): Likewise.
17199         (output_a_shift): Constify mask.
17200         (h8300_encode_label): Constify len.
17201
17202 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17203
17204         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
17205         (h8300_expand_epilogue): Likewise.
17206
17207 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
17208
17209         Segher Boessenkool  <segher@koffie.nl>
17210
17211         * config/rs6000/altivec.md: Remove spaces from assembler
17212         instruction argument lists.
17213
17214 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17215
17216         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
17217         c4x_assembler_function_p.
17218         (c4x_null_epilogue_p): Complement return value, all uses updated.
17219         (c4x_insert_attributes): Add naked.
17220         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
17221         * doc/extend.texi: Update C4x function attributes.
17222
17223 2003-01-06  Richard Henderson  <rth@redhat.com>
17224
17225         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
17226         properly when changing "local-ness".
17227         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
17228
17229 2003-01-06  Dale Johannesen  <dalej@apple.com>
17230
17231         * config/darwin-protos.h:  Add prototypes for new section functions.
17232
17233 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
17234
17235         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
17236         to EABI.
17237
17238 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
17239
17240         * hwint.h: If the current compiler has no 64-bit type at all,
17241         make HOST_WIDEST_INT 32 bits.
17242
17243 2003-01-06  Eric Christopher  <echristo@redhat.com>
17244
17245         * config/mips/mips.md (movdf_internal2): Fix constraints.
17246
17247 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17248
17249         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
17250
17251 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
17252
17253         * config/mips/mips.md (leadi): Use dla rather than la.
17254
17255 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
17256
17257         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
17258         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
17259
17260 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
17261
17262         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
17263         redefinition.
17264
17265 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17266
17267         * config/h8300/h8300.md (*extzv_8_23): New.
17268
17269 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17270
17271         * pa64-hpux.h (JCR_SECTION_NAME): Define.
17272         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
17273         USE_EH_FRAME_REGISTRY when defining.
17274
17275 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17276
17277         * config/h8300/h8300.c (output_a_shift): Do not output a
17278         variable shift.
17279         * config/h8300/h8300.md (two splitters): New.
17280
17281 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
17282
17283         * config/mips/mips.md: Disable the movstrsi define_split.
17284
17285 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17286
17287         * alloc-pool.c: Don't include "libiberty.h".
17288         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
17289         * convert.c (convert_to_real): Hide unused variable.
17290
17291 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17292
17293         * Makefile.in (gtyp-gen.h): Const-ify.
17294         * gcov-dump.c (tag_table): Likewise.
17295
17296 2003-01-04  Bruce Korb  <bkorb@gnu.org>
17297
17298         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
17299         of *both* the file name and the fix name.
17300
17301 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
17302
17303         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
17304         collect2.
17305         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
17306         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
17307         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
17308         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
17309         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
17310         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
17311         elfos.h.
17312         (EH_FRAME_IN_DATA_SECTION): Delete define.
17313         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
17314         (STARTFILE_SPEC): Use crtbegin.o.
17315         (ENDFILE_SPEC): Use crtend.o.
17316         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
17317         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
17318         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
17319         DTOR_LIST_BEGIN): Define.
17320         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
17321         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
17322         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
17323
17324 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
17325
17326         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
17327         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
17328         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
17329         Cleanup handling of replacement text.
17330         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
17331
17332 2003-01-04  Bruce Korb  <bkorb@gnu.org>
17333
17334         * fixinc/tests/base/math.h: removed obsolete results
17335         * fixinc/tests/base/stdlib.h: ditto
17336         * fixinc/tests/base/sys/param.h: ditto
17337         * fixinc/tests/base/sys/stat.h: ditto
17338         * fixinc/tests/base/time.h: ditto
17339         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
17340         * fixinc/tests/base/sys/byteorder.h: ditto
17341         * fixinc/inclhack.def: Remove superfluous backslashes
17342
17343 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
17344
17345         * config/h8300/h8300-protos.h: Add prototypes for
17346         the new functions defined below.
17347         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
17348         define.
17349         (dosize): Emit RTL instead of assembly code.
17350         (push): Likewise.
17351         (pop): Likewise.
17352         (h8300_output_function_prologue): Remove.
17353         (h8300_expand_prologue): New.
17354         (h8300_expand_epilogue): New.
17355         (h8300_output_function_epilogue): Do only the reset of
17356         pragma_saveall.
17357         * config/h8300/h8300.md (push_h8300): New.
17358         (push_h8300hs): Likewise.
17359         (pop_h8300): Likewise.
17360         (pop_h8300hs): Likewise.
17361         (*stm_h8300s_2): Change the name to stm_h8300s_2.
17362         (*stm_h8300s_3): Change the name to stm_h8300s_3.
17363         (*stm_h8300s_4): Change the name to stm_h8300s_4.
17364         (*ldm_h8300s_2): New.
17365         (*ldm_h8300s_3): Likewise.
17366         (*ldm_h8300s_4): Likewise.
17367         (return): Likewise.
17368         (*return_1): Likewise.
17369         (prologue): Likewise.
17370         (epilogue): Likewise.
17371         (monitor_prologue): Likewise.
17372
17373 2003-01-03  Dale Johannesen  <dalej@apple.com>
17374
17375         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
17376           machopic_picsymbol_stub1.
17377           (EXTRA_SECTION_FUNCTIONS):  Ditto.
17378         * rs6000/rs6000.c:  Update copyright.
17379           (machopic_output_stub):  Use them.  Remove an insn from stub code.
17380
17381 2003-01-02  Jason Merrill  <jason@redhat.com>
17382
17383         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
17384
17385         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
17386         static/external decls.
17387
17388         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
17389         outermost scope.
17390         * c-decl.c (c_make_fname_decl): Push the decls there, too.
17391
17392 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17393
17394         * config/h8300/h8300-protos.h: Add a prototype for
17395         h8300_current_function_interrupt_function_p.
17396         * config/h8300/h8300.c (interrupt_handler): Remove.
17397         (os_task): Likewise.
17398         (monitor): Likewise.
17399         (pragma_interrupt): New.
17400         (WORD_REG_USED): Use
17401         h8300_current_function_interrupt_function_p.
17402         (dosize): Likewise.
17403         (h8300_output_function_prologue): Likewise.
17404         Do not set interrupt_handler, os_task, monitor.
17405         (h8300_output_function_prologue): Use
17406         h8300_current_function_interrupt_function_p.
17407         Do not set interrupt_handler, os_task, monitor.
17408         (h8300_current_function_interrupt_function_p): New.
17409         (h8300_pr_interrupt): Set pragma_interrupt.
17410         (h8300_insert_attributes): Reset pragma_interrupt.
17411
17412 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17413
17414         * doc/install.texi (Configuration): Fix markup for reference to
17415         gcc/config.gcc.
17416
17417 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17418
17419         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
17420         (*iorhi3_two_qi): Likewise.
17421         (*iorsi3_zexthi): Likewise.
17422         (*xorhi3_zextqi): Likewise.
17423         (*xorsi3_zexthi): Likewise.
17424         (*xorsi3_zextqi): Likewise.
17425
17426 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17427
17428         * config/h8300/h8300.c (stack_pointer_operand): New.
17429         (const_int_gt_2_operand): Likewise.
17430         (const_int_ge_8_operand): Likewise.
17431         * config/h8300/h8300.md (a splitter): Likewise.
17432         (a peephole2): Likewise.
17433         * config/h8300/h8300-protos.h: Add prototypes for the new
17434         functions above.
17435
17436 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
17437
17438         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
17439         objc/objc-act.h: Fix copyright years.
17440
17441 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
17442
17443         * doc/passes.texi: Fix documentation for -fssa-ccp
17444
17445 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
17446
17447         * gccbug.in: Update for new categories.
17448
17449 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17450
17451         * config/h8300/h8300.md: Reorder some patterns.
17452
17453 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17454
17455         * config/h8300/h8300.c (output_logical_op): Fix a warning.
17456
17457 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
17458
17459         * config/darwin-protos.h, config/c4x/c4x-protos.h,
17460         config/cris/cris-protos.h, config/i370/i370-protos.h,
17461         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
17462         config/v850/v850-protos.h: Use struct, and don't conditionally
17463         compile on GCC_C_PRAGMA_H.
17464
17465 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17466
17467         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
17468         * config/h8300/h8300-protos.h: Likewise.
17469         * config/sh/sh-protos.h: Likewise.
17470
17471 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17472
17473         * config/arm/arm-protos.h: Use struct cpp_reader instead of
17474         cpp_reader.
17475         * config/h8300/h8300-protos.h: Likewise.
17476         * config/sh/sh-protos.h: Likewise.
17477
17478 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
17479
17480         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
17481         arm_pr_long_calls_off): Use struct.
17482         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
17483         : Similarly.
17484         Don't include cpplib.h.
17485         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
17486         sh_pr_nosave_low_regs): Similarly.
17487
17488 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17489
17490         * config/h8300/h8300.c: Include cpplib.h.
17491
17492 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
17493
17494         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
17495           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
17496           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
17497           "GCC" in the copyright header.
17498
17499 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
17500
17501         * c-pragma.c (c_register_pragma): New.
17502         (init_pragma): Use it.
17503         * c-pragma.h (cpp_register_pragma): Don't declare.
17504         (c_register_pragma): New.
17505         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
17506         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
17507         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
17508         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
17509         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
17510         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
17511         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
17512         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
17513         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
17514         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
17515         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
17516         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
17517
17518 See ChangeLog.8 for earlier changes.