OSDN Git Service

be17acc1eaa512680acdcfcacf41fb8e32cc8d78
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-06-07  Kelley Cook  <kelleycook@wideopenwest.com>
2
3         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in
4         section names.
5         * configure: Regenerate.
6
7 2003-06-07  Alan Modra  <amodra@bigpond.net.au>
8
9         * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
10
11 2003-06-06  James E Wilson  <wilson@tuliptree.org>
12
13         PR inline-asm/10890
14         * reload1.c (merge_assigned_reloads): Abort only if two reloads have
15         different in fields.
16
17 2003-06-06  Nathanael Nerode  <neroden@gcc.gnu.org>
18
19         * configure.in: Make $(target_subdir) correspond with top level usage.
20         * Makefile.in: Likewise.
21         * configure: Regenerate.
22
23 2003-06-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24
25         * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
26         ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
27         unsigned HOST_WIDE_INT.
28         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
29         Likewise.
30         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
31         Likewise.
32
33 2003-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34
35         * doc/install.texi (Prerequisites): New section documenting
36         tools and packages necessary prior to building and/or
37         modifying GCC.
38         * doc/install.texi2html: Also generate prerequisites.html.
39
40 2003-06-06  Richard Earnshaw  <rearnsha@arm.com>
41
42         PR target/11052
43         * ifcvt.c (noce_process_if_block): Fail if the destination has
44         side-effects.
45
46 2003-06-06  Jason Merrill  <jason@redhat.com>
47
48         * stmt.c (resolve_asm_operand_names): Rename from
49         resolve_operand_names.  No longer static.  Avoid needless copying.
50         Don't build array of constraints.
51         (expand_asm_operands): Build it here.
52         * tree.h: Declare resolve_asm_operand_names.
53
54         * stmt.c (expand_decl): Put artificial vars into registers even
55         when not optimizing, and don't mark the regs as user vars.
56
57 2003-06-06  J"orn Rennecke <joern.rennecke@superh.com>
58
59         * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode
60         of the generated register.
61
62 2003-06-06  Daniel Jacobowitz  <drow@mvista.com>
63
64         * config.gcc: Add a missing sparc64 case.
65
66 2003-06-06  Jakub Jelinek  <jakub@redhat.com>
67
68         * mklibgcc.in: Propagate .note.GNU-stack section if needed into
69         the .hidden assembly stubs.
70
71 2003-06-06  H.J. Lu <hongjiu.lu@intel.com>
72
73         * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
74         and x86_64-*-*.
75
76         * config/i386/mmintrin.h: Update version and add alternate
77         intrinsic names.
78         * config/i386/xmmintrin.h: Likewise.
79
80         * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
81         intrinsics to ...
82         * config/i386/emmintrin.h: Here. New file.
83
84 2003-06-06  Roger Sayle  <roger@eyesopen.com>
85
86         * fold-const.c (fold <ABS_EXPR>):  Re-fold the result of folding
87         fabs(-x) into fabs(x).  Use tree_expr_nonnegative_p to determine
88         when the ABS_EXPR (fabs or abs) is not required.
89         (tree_expr_nonnegative_p): Move the logic that sqrt and exp are
90         always nonnegative from fold to here.  Additionally, cabs and fabs
91         are always non-negative, and pow and atan are non-negative if
92         their first argument is non-negative.
93
94         * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
95         Evaluate cabs of a constant at compile-time.  Convert cabs of a
96         non-complex argument into fabs.  Convert cabs(z) into
97         sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
98         -funsafe-math-optimizations or -ffast-math.
99         (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
100         Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.
101
102 Thu Jun  5 20:51:09 CEST 2003  Jan Hubicka  <jh@suse.cz>
103
104         * sourcebuild.texi (Front End Directory): Document new hooks.
105
106 Fri Jun  6 11:02:35 CEST 2003  Jan Hubicka  <jh@suse.cz>
107
108         * function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
109         * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic
110         stack frames.
111         (pro_epilogue_adjust_stack_rex64_2): New pattern
112
113 Fri Jun  6 11:03:14 CEST 2003  Jan Hubicka  <jh@suse.cz>
114                                Pop Sebastian
115                                Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
116
117         * cfghooks.h, cfghooks.c: New files.
118         * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
119         (OBJS): Add cfghooks.o.
120         (cfghooks.o): New rule.
121         * basic-block.h (split_edge): Rename to rtl_split_edge.
122         (verify_flow_info): Rename to rtl_verify_flow_info.
123         (cfghooks.h): Included here.
124         * cfgrtl.c (split_edge): Renamed rtl_split_edge.
125         (verify_flow_info): Renamed rtl_verify_flow_info.
126         * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
127
128         * basic-block.h (split_block, split_edge, flow_delete_block,
129         redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
130         (flow_delete_block_noexpunge):  Return void.
131         * cfg.c (verify_flow_info): New function.
132         * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
133         try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
134         Use delete_block.
135         * cfglayout.c (function_footer): Rename to...
136         (cfg_layout_function_footer): ... this variable
137         (unlink_insn_chain): Make global.
138         (fixup_reorder_chain, record_effective_endpoints): Update.
139         (cleanup_unconditional_jumps): Use delete_block.
140         (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
141         (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
142         (cfg_layout_initialize, cfg_layout_finalize): Update hooks.
143         * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block):  Delete.
144         (cfg_layout_function_footer): Declare.
145         * cfgloopmanip (split_loop_bb): Do not update RBI.
146         (remove_bbs): Use delete_block.
147         (loop_reidrect_edge, loop_delete_branch_edge): Use
148         redirect_edge_and_branch.
149         (create_preheader): Use split_block and redirect_edge_and_branch_force.
150         (split_edge_with): Likewise.
151         * cfgrtl.c: Include cfglayout.h
152         (split_edge): Rename to ...
153         (rtl_split_edge) ... this one; make local.
154         (redirect_edge_and_branch): Rename to ...
155         (rtl_redirect_edge_and_branch) ... this one; make local.
156         (redirect_edge_and_branch_force): Rename to ...
157         (rtl_redirect_edge_and_branch_force) ... this one; make local.
158         (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
159         (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
160         cfglayout.c; update to directly call RTL counterparts.
161         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
162         * ifcvt.c (find_cond_trap): Use delete_block.
163         (find_if_case_1): Use delete_block.
164         (find_if_case_2): Use delete_block.
165         * rtl.h (unlink_insn_chain): Declare.
166         * toplev.c (rtl_reigster_cfg_hooks): New.
167
168 2003-06-05  Richard Henderson  <rth@redhat.com>
169
170         * recog.c (peephole2_optimize): Revert last change.
171
172 2003-06-05  Richard Henderson  <rth@redhat.com>
173
174         * recog.c (peephole2_optimize): Don't split block unless
175         can_throw_internal.
176
177 2003-06-06  Kazu Hirata  <kazu@cs.umass.edu>
178
179         * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl.
180         * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise.
181
182 2003-06-05  Kelley Cook  <kelleycook@wideopenwest.com>
183
184         PR optimization/4490
185         * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
186         * doc/invoke.texi (m96bit-long-double, m128bit-long-double):  Reword
187         documentation to accurately reflect what these options do.
188
189 2003-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
190
191         * config/sh/linux.h (STARTFILE_SPEC): Handle -pie.  Simplify.
192         (ENDFILE_SPEC): Redefine to handle -pie.
193
194 2003-06-05  Phil Edwards <phil@jaj.com>
195
196         * Makefile.in (qmtest-g++): Use target_alias, not target.
197
198 2003-06-05  Per Bothner  <pbothner@apple.com>
199
200         * toplev.c (push_srcloc):  Simplify behavior to save current location
201         and set current location to parameters.
202         (pop_srcloc):  Simplify semantics.
203         (lang_dependent_init):  Remove now-useless initial push_srcloc.
204
205 2003-05-06  Richard Henderson  <rth@redhat.com>
206
207         * dwarf2out.c (loc_descriptor_from_tree): Return 0 for 
208         language-specific tree codes.
209
210 2003-06-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
211
212         PR middle-end/9986
213         * pa.c (pa_init_builtins): Also set implicit_built_in_decls for
214         BUILT_IN_FPUTC_UNLOCKED to NULL_TREE.
215
216 Thu Jun  5 18:32:46 CEST 2003  Jan Hubicka  <jh@suse.cz>
217
218         * install.tex: Document profiledbootstrap.
219
220         * configure.in:  Add support for lang.stageprofile and
221         lang.stagefeedback
222         * Makefile.in (clean, distclean): Kill new stages
223         (POSTSTAGE1_FLAGS_TO_PASS): Break from ...
224         (STAGE2_FLAGS_TO_PASS): ... this one.
225         (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New.
226         (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS.
227         (stageprofile_build, stageprofile_copy, stagefeedback_build,
228         stagefeedback_copy): New.
229         (restageprofile, restagefeedback, stageprofile-start, 
230         stageprofile, stagefeedback-start): Likewise.
231
232 2003-06-05  David Miller  <davem@redhat.com>
233             Richard Henderson  <rth@redhat.com>
234
235         * optabs.c (HAVE_conditional_trap): Provide default.
236         (gen_conditional_trap): Likewise.
237         (init_optabs): Merge init_traps.
238         (gen_cond_trap): Use prepare_operand.  Restructure and avoid ifdef.
239
240 Thu Jun  5 14:59:44 CEST 2003  Jan Hubicka  <jh@suse.cz>
241
242         * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
243         is REG for nonzero_bits (REG) == 8.  
244
245 Thu Jun  5 13:23:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
246
247         * i386.md (align): Fix warning; clarify what to do when no p2align
248         is available.
249
250 2003-06-05  Nick Clifton  <nickc@redhat.com>
251
252         * config.gcc (m32r-elf): Revert previous delta.
253         * config/m32r/t-m32r (crtinit.o): Fix rule to work with
254         multilibs.  Remove m32rx specific version.
255         (crtfini.o): Likewise.
256         (EXTRA_MULTILIB_PARTS): Define.
257         
258 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
259
260         * doc/md.texi (Machine Constraints): Correct the meaning of
261         constraints related to floating-point registers on SPARC.
262
263 2003-06-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
264             Paolo Bonzini  <bonzini@gnu.org>
265
266         PR target/10663
267         * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
268         assembler and linker output to /dev/null.
269         Use a 'sed' construct instead of 'grep -A1'.
270         * configure: Regenerate.
271
272 2003-06-04  Richard Henderson  <rth@redhat.com>
273
274         * config/i386/i386.c (struct ix86_address): Add seg.
275         (no_seg_address_operand): New.
276         (ix86_decompose_address): Restructure PLUS loop.  Accept one
277         UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS.  Adjust ESP swap test
278         to test for a regnum, not stack_pointer_rtx.
279         (ix86_address_cost): Reduce cost if non-default segment.
280         (legitimate_address_p): Remove UNSPEC_TP check.
281         (get_thread_pointer): Add to_reg argument.  Don't represent
282         the thread pointer as a memory load.
283         (legitimize_tls_address): Split out of ...
284         (legitimize_address): ... here.
285         (print_operand_address): Handle parts.seg.
286         (ix86_expand_move): Use legitimize_tls_address.
287         (ix86_rtx_costs): Handle UNSPEC_TP.
288         * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New.
289         (TARGET_TLS_DIRECT_SEG_REFS): New.
290         (TARGET_SWITCHES): Add tls-direct-seg-refs.
291         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default.
292         (PREDICATE_CODES): Add no_seg_address_operand.
293         * config/i386/i386.md (lea_1): Use it.
294         (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise.
295         (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New.
296         * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
297         * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
298         * doc/invoke.texi: Add -mtls-direct-seg-refs.
299
300 2003-06-04  Mark Mitchell  <mark@codesourcery.com>
301
302         * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation.
303         (QMTEST_GPP_TESTS): Use "g++" by default.
304         (stamp-qmtest): Tweak database creation.
305         (QMTEST_DIR/context): Update context file format.
306         (qmtest-g++): Tweak command-line.
307
308 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
309
310         * Makefile.in (varasm.o): Don't set -Wno-error.
311         * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear.
312
313 2003-06-04  Zack Weinberg  <zack@codesourcery.com>
314
315         PR bootstrap/3163
316         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
317         (gcc_AC_FUNC_MMAP_BLACKLIST): New.
318         * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
319         and AC_CHECK_FUNCS lists, respectively.  Use
320         gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
321         AC_FUNC_MMAP_FILE.
322         * configure, config.in: Regenerate.
323
324 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
325
326         * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning.
327         * arm.c (arm_output_function_prologue): Fix format specifiers.
328         * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise.
329         * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of
330         HOST_WIDE_INT_PRINT_DEC.
331         * vax.c (vax_output_function_prologue): Fix format specifiers.
332
333 2003-06-04  Richard Henderson  <rth@redhat.com>
334
335         * cse.c (find_best_addr): Consider binary operators even if second
336         argument is not CONST_INT.
337
338 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
339
340         * doc/invoke.texi (max-cse-path-length): Document.
341
342 2003-06-04  Richard Henderson  <rth@redhat.com>
343
344         * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
345
346 2003-06-04  Andrew Pinski <pinskia@physics.uc.edu>
347
348         * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
349         Remove semi-colon at the end of the expression.
350
351 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
352
353         * i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
354         * i370.h (mvs_function_name_length): Likewise.
355         * i960.h (CONSTANT_ALIGNMENT): Likewise.
356         * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
357         * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
358         * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
359         * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
360         variable.
361
362 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
363
364         * config.gcc: Reorganize --with-cpu logic.  Set
365         configure_default_options according to the default CPU, --with-cpu,
366         --with-arch, --with-tune, --with-schedule, --with-abi, and
367         --with-float.  Check for legal values of various options.
368         * configure.in: Define configure_default_options in configargs.h.
369         * configure: Regenerated.
370         * config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
371         (TARGET_DEFAULT_FLOAT_P): New macros.
372         * gcc.c (do_option_spec): New function.
373         (struct default_spec, option_default_specs): New.
374         (main): Call do_option_spec.
375         * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
376         config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
377         config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
378
379         * doc/install.texi: Update --with-cpu documentation.  Mention
380         --with-arch, --with-schedule, --with-tune, --with-abi, and
381         --with-float.
382         * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
383
384 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
385
386         * config.gcc: Only process --with-cpu logic in the third pass.
387
388 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
389
390         * config.gcc: Reorganize --with-cpu section.  Remove an
391         obsolete comment about the default CPU for x86-64.  Fix
392         a typo for the ep9312.  Update the list of supported PowerPC
393         CPUs.  Support a limited set of new --with-cpu options
394         for i386.
395
396 2003-06-04  Aldy Hernandez  <aldyh@redhat.com>
397
398         * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
399         complex numbers <= 32 bits into two registers.
400
401 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
402
403         * alpha.c (print_operand_address): Fix format specifier warnings.
404         * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
405         * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
406         * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
407         * arm/pe.h (ASM_OUTPUT_COMMON): Likewise.
408         * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL,
409         ASM_OUTPUT_SKIP): Likewise.
410         * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
411         * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
412         * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON):
413         Likewise.
414         * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
415         * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise.
416         * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise.
417         * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
418         * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise.
419         * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
420         * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
421         * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
422         * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
423         * svr3.h (ASM_OUTPUT_COMMON): Likewise.
424
425 2003-06-04  J"orn Rennecke <joern.rennecke@superh.com>
426
427         * c-decl.c (c_init_decl_processing): Clear input_file_name
428         while building common nodes.
429         * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
430         Don't add working directory for strings like <built-in> .
431
432 2003-06-04  David Edelsohn  <edelsohn@gnu.org>
433
434         * doc/install.texi (*-ibm-aix*): Native as and ld required
435         to bootstrap on AIX 5L.
436
437 2003-06-04  Richard Henderson  <rth@redhat.com>
438
439         * c-common.c (handle_cleanup_attribute): New.
440         (c_common_attributes): Add it.
441         * c-decl.c (finish_decl): Honor the cleanup attribute.
442         * doc/extend.texi (Variable Attributes): Document it.
443
444         * unwind-c.c: New file.
445         * Makefile.in (LIB2ADDEH): Add it.
446         * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
447         config/ia64/t-ia64: Likewise.
448
449 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
450
451         * function.c (trampolines_created): New variable.
452         (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
453         * function.h (trampolines_created): Add.
454         * config/s390/linux.h (ASM_FILE_END): Define.
455         * config/alpha/linux-elf.h (ASM_FILE_END): Define.
456         * config/m68k/linux.h (ASM_FILE_END): Define.
457         * config/rs6000/linux.h (ASM_FILE_END): Define.
458         * config/rs6000/linux64.h (ASM_FILE_END): Define.
459         * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
460         * config/sparc/linux.h (ASM_FILE_END): Define.
461         * config/sparc/linux64.h (ASM_FILE_END): Define.
462         * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
463         * config/i386/linux.h (SUBTARGET_FILE_END): Define.
464         * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
465
466 Wed Jun  4 18:39:33 CEST 2003  Jan Hubicka  <jh@suse.cz>
467
468         * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions
469         (ix86_reorg): Use it.
470         * i386.md (align): New insn pattern.
471
472 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
473
474         * toplev.c (rest_of_type_compilation): Fix typo.
475
476 2003-06-04  Jakub Jelinek  <jakub@redhat.com>
477             Alan Modra  <amodra@bigpond.net.au>
478
479         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
480         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
481         * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
482         * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
483         * config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
484         * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
485         (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
486         * config/rs6000/rs6000.c (output_profile_hook): Likewise.
487
488         * configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
489         Pass it to $gcc_cv_as.
490         * configure: Rebuilt.
491
492         * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
493         (print_operand): Allow TARGET_AIX to be non-constant.
494         (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
495         Define unconditionally.
496         (rs6000_elf_declare_function_name): New function.
497         * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
498         non-constant.
499         * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
500         to 1.
501         (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
502         [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
503         is defined.
504         (TARGET_AIX): Define to 1 if TARGET_64BIT.
505         (PROCESSOR_DEFAULT): Remove.
506         (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
507         INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
508         [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
509         (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
510         -m32 and -m64.
511         (MULTILIB_DEFAULTS): Define.
512         (SUBSUBTARGET_EXTRA_SPECS): Define.
513         (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
514         (TARGET_TOC): Define only if !RS6000_BI_ARCH.
515         (TARGET_NO_TOC): Remove.
516         [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
517         TARGET_PROTOTYPE): Define to 0.
518         (NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
519         (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
520         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
521         if !TARGET_64BIT.
522         (USER_LABEL_PREFIX): Remove.
523         (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
524         (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
525         if TARGET_64BIT.
526         (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
527         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
528         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
529         (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
530         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
531         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
532         TARGET_64BIT.
533         (RS6000_CALL_GLUE): Likewise.
534         (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
535         RESTORE_FP_SUFFIX): Likewise.
536         (ASM_DECLARE_FUNCTION_NAME): Remove.
537         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
538         DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
539         name if TARGET_64BIT.
540         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
541         !TARGET_64BIT.
542         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
543         (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
544         (DRAFT_V4_STRUCT_RET): Define.
545         (SIGNAL_FRAMESIZE): New enum value.
546         (MD_FALLBACK_FRAME_STATE_FOR): Define.
547         * config/rs6000/default64.h: New file.
548         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
549         options.
550         (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
551         to RS6000_ABI_NAME.  Only disallow mixing of -fPIC with -mcall-aixdesc
552         if !TARGET_64BIT.
553         [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
554         (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
555         function.
556         (TARGET_OS_SYSV_CPP_BUILTINS): Define.
557         (TARGET_OS_CPP_BUILTINS): Use it.
558         (CPP_SYSV_SPEC): Remove.
559         (CPP_SPEC): Remove cpp_sysv.
560         (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
561         Add SUBSUBTARGET_EXTRA_SPECS.
562         (SUBSUBTARGET_EXTRA_SPECS): Define.
563         * config/rs6000/biarch64.h: New file.
564         * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
565         New prototype.
566         * config/rs6000/x-linux64: New file.
567         * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
568         multilibs.
569         * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
570         * config/rs6000/eabi-cn.asm: Likewise.
571         * config/rs6000/tramp.asm: Likewise.
572         * config/rs6000/sol-ci.asm: Likewise.
573         * config/rs6000/sol-cn.asm: Likewise.
574         * config/rs6000/linux.h (TARGET_64BIT): Define to 0.
575         (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
576         * config/rs6000/ppc-asm.h: Move __powerpc64__ section before
577         _CALL_AIXDESC section.
578         * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
579         defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
580         or default32.
581
582 2003-06-04  Daniel Jacobowitz  <drow@mvista.com>
583
584         * config.gcc: Revert accidentally committed ARM changes.
585
586 2003-06-04  Roger Sayle  <roger@eyesopen.com>
587
588         * builtins.c (dconstpi, dconste): New mathematical constants.
589         (init_builtin_dconsts): New function to initialize dconstpi
590         and dconste.
591         (fold_builtin): Optimize exp(1.0) = e.  Evaluate exp(x) at
592         compile time with -ffast-math when x is an integer constant.
593         Optimize tan(0.0) = 0.0.  Optimize atan(0.0) = 0.0,
594         atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math.
595
596 2003-06-04  Roger Sayle  <roger@eyesopen.com>
597
598         * calls.c (expand_call): Avoid calling pure or const functions
599         when the result is ignored (or void) and none of the arguments
600         are volatile.  Move warning diagnostic earlier in function.
601
602 2003-06-04  Andreas Jaeger  <aj@suse.de>
603
604         * system.h: Do not poison TDESC_SECTION_ASM_OP,
605         RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE.
606
607 2003-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
608
609         * final.c (asm_fprintf): Update comments, accept "-+ #0" flags,
610         optimize '%' case, handle %c, don't accept %p, %e, %f or %g,
611         handle %ll, optimize regular character case.
612
613 2003-06-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
614
615         * Makefile.in (cse.o): Add params.h dependency.
616         * cse.c: Include params.h.
617         (PATHLENGTH): Removed.
618         (struct cse_basic_block_data): Make path array dynamic.
619         (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead
620         of PATHLENGTH.
621         (cse_main, cse_basic_block): Allocate path array.
622         * params.def (PARAM_MAX_CSE_PATH_LENGTH): New.
623
624 Wed Jun  4 09:49:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
625
626         * i386.c (ix86_reorg): Replace the jump instead of adding nop.
627         * i386.md (UNSPEC_REP): New constant.
628         (return_internal_long): New pattern.
629
630 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
631
632         PR optimization/11018
633         * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
634         consistently to decide whether the scratch register is really
635         required.
636
637 2003-06-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
638
639         PR optimization/10876
640         * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
641         new 'O' constraint for constant 4096.
642         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
643         * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
644         Do not transform into MINUS insn for constant 4096.
645         (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
646         for constant 4096 as third operand.
647         (addsi3 expander): Remove.
648         (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
649         new alternative for constant 4096 as third operand.
650         (subdi3 expander): Do not transform into PLUS insn for constant 4096.
651         (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
652         operand.
653         (subsi3 expander): Remove.
654         (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
655         constant 4096 as third operand.
656         * doc/md.texi (Machine Constraints): Document new 'O' constraint for
657         the SPARC port.
658
659 2003-06-03  Chris Demetriou  <cgd@broadcom.com>
660
661         * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define.
662
663 2003-06-04  Andreas Jaeger  <aj@suse.de>
664
665         * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
666
667         * config/i386/i386.c (ix86_expand_prologue): Do not use
668         SUBTARGET_PROLOGUE.
669
670         * system.h: Poision SUBTARGET_PROLOGUE.
671
672         * config/arm/arm-protos.h: Remove unused rdate_section prototype.
673
674         * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
675         dependend code.
676
677         * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
678
679         * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
680         INSN_CACHE_LINE_WIDTH.
681
682         * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
683         (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
684         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
685
686         * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
687         INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
688
689         * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
690         (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
691         (dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
692         (dbxout_block): Remove usage of DBX_LBRAC_FIRST.
693         (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
694         (dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
695
696         * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
697         DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
698         DBX_WORKING_DIRECTORY.
699
700         * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
701         DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
702
703         * config/frv/frv-protos.h: Remove unused const_section
704         declaration.
705         * config/vax/vax-protos.h: Likewise.
706
707         * output.h: Remove CONST_SECTION_ASM_OP usage.
708
709         * system.h: Poison CONST_SECTION_ASM_OP.
710
711         * crtstuff.c (__do_global_dtors_aux): Remove usage of
712         CRT_GET_RFIB_TEXT.
713         (frame_dummy): Likewise.
714         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
715         * system.h: Poison CRT_GET_RFIB_TEXT.
716
717         * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code.
718
719         * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables.
720         (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code.
721         (recognized_function): Likewise.
722         (read_scan_file): Likewise.
723
724 2003-06-03  Roger Sayle  <roger@eyesopen.com>
725
726         * optabs.c (expand_binop): Optimize complex multiplication for
727         the case of squaring a complex argument.
728
729 2003-06-03  Roger Sayle  <roger@eyesopen.com>
730
731         * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
732         non-volatile operands of binary operations.
733         (prepare_cmp_insn): Likewise.
734
735 2003-06-03  Roger Sayle  <roger@eyesopen.com>
736
737         * varasm.c (force_const_mem): Handle alignment of constants not
738         representable as a type in the front-end language.
739
740 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
741
742         * flow.c (initialize_uninitialized_subregs): Use
743         emit_move_insn instead of emitting a hardcoded move.
744
745 2003-06-03  Richard Henderson  <rth@redhat.com>
746
747         * optabs.c (expand_abs_nojump): Split out from ...
748         (expand_abs): ... here.
749         * optabs.h (expand_abs_nojump): Declare.
750         * ifcvt.c: (noce_try_abs): Use expand_abs_nojump.
751         * Makefile.in (ifcvt.o): Depend on optabs.h.
752
753 2003-06-03  Alan Modra  <amodra@bigpond.net.au>
754
755         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
756
757 2003-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
758
759         * config.gcc (default_use_cxa_atexit): New variable, defaults to no.
760         (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit
761         to yes.
762         * configure.in: Allow default_use_cxa_atexit to determine the
763         value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or
764         disabled.
765         * configure: Regenerate.
766
767 2003-06-03  Douglas B Rupp  <rupp@gnat.com>
768
769         * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
770         * doc/gcc.texi: Remove vms.texi section.
771         * doc/vms.texi: Remove obsolete file.
772
773 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
774
775         * configure.in (inhibit_libc): Don't define when configuring
776         with --with-newlib --with-headers.
777         * configure: Regenerate.
778
779         * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules.
780
781 2003-06-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
782
783         * configure.in (gcc_cv_as_hidden): Disable .hidden completely on
784         IRIX 6 without GNU ld.
785         * configure: Regenerate.
786
787 2003-06-03  Roger Sayle  <roger@eyesopen.com>
788
789         * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
790         of a complex number rather than invoke mov_optab directly.
791
792 2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
793
794         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
795         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
796
797 2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>
798
799         * config/i386/x86-64.h: Remove two target-independent comments;
800          replace "GNU CC" with "GCC".
801
802 2003-06-03  Anthony Green  <green@redhat.com>
803
804         * config/frv/t-frv (EXTRA_HEADERS): Remove media.h
805
806 2003-06-03  Roger Sayle  <roger@eyesopen.com>
807
808         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
809         New builtins representing ISO C99's cabs, cabsf and cabsl.
810         * builtins.c (expand_builtin_fabs): New function.
811         (expand_builtin_cabs): New function.
812         (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L}
813         using expand_builtin_fabs and expand_builtin_cabs respectively.
814
815         * doc/extend.texi: Document new cabs, cabsf and cabsl builtins.
816
817 2003-06-03  Aldy Hernandez  <aldyh@redhat.com>
818
819         * function.c (assign_parms): Split complex arguments.
820
821         * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
822
823         * expr.h (SPLIT_COMPLEX_ARGS): Define.
824         (split_complex_types): Protoize.
825         (split_complex_values): Protoize.
826
827         * calls.c (expand_call): Split complex arguments on architectures
828         that require it.
829         (split_complex_values): New.
830         (split_complex_types): New.
831
832         * config/rs6000/rs6000.c (rs6000_libcall_value): New.
833         (rs6000_function_value): Handle complex values on AIX.
834         (rs6000_complex_function_value): New.
835
836         * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
837
838         * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
839         (SPLIT_COMPLEX_ARGS): New.
840
841 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
842
843         * configure.in (HAVE_LD_PIE): Check for ld -pie.
844         * config.in: Rebuilt.
845         * configure: Rebuilt.
846         * toplev.c (flag_pie, flag_shlib): New variables.
847         (f_options): Add -fpie and -fPIE.
848         (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
849         Set flag_shlib if flag_pic and not -fpie/-fPIE.
850         * flags.h (flag_pic, flag_shlib): Add.
851         * varasm.c (default_binds_local_p): Use flag_shlib instead of
852         flag_pic.
853         * gcc.c (LINK_PIE_SPEC): Define.
854         (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
855         (option_map): Add --pie -> -pie mapping.
856         * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
857         and -fPIE the same way as -fPIC.
858         * config/openbsd.h (ASM_SPEC): Likewise.
859         * config/frv/frv.h (ASM_SPEC): Likewise.
860         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
861         * config/arm/semi.h (ASM_SPEC): Likewise.
862         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
863         * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
864         * config/i386/beos-elf.h (CC1_SPEC): Likewise.
865         * config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
866         * config/m68k/linux.h (CPP_SPEC): Likewise.
867         * config/m68k/netbsd.h (ASM_SPEC): Likewise.
868         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
869         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
870         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
871         * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
872         * config/pa/pa-linux.h (CPP_SPEC): Likewise.
873         * config/netbsd-aout.h (ASM_SPEC): Likewise.
874         * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
875         * config/rs6000/vxworks.h (CPP_SPEC): Likewise.
876         * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
877         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
878         * config/sparc/sparc.h (ASM_SPEC): Likewise.
879         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
880         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
881         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
882         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
883         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
884         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
885         Simplify.
886         * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
887         * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
888         * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
889         * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
890         * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
891         * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
892         * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
893         * doc/invoke.texi: Document -pie, -fpie and -fPIE options.
894
895 2003-06-03  Jakub Jelinek  <jakub@redhat.com>
896
897         * builtins.c (expand_builtin_memcpy): Remove endp argument and endp
898         != 0 handling.  Pass 0 to store_by_pieces.
899         (expand_builtin_mempcpy): Add endp argument.  Don't call
900         expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
901         directly.  If ignoring result, only do expand_call.
902         (expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
903         otherwise.
904         (expand_builtin_strncpy, expand_builtin_memset): Adjust
905         store_by_pices callers.
906         (expand_builtin): Adjust expand_builtin_memcpy and
907         expand_builtin_mempcpy callers.
908         * expr.c (can_move_by_pieces): New function.
909         (move_by_pieces): Add endp argument, return to resp. memory at end
910         or one byte earlier depending on endp.
911         (store_by_pieces): Likewise.
912         (emit_block_move): Adjust call to move_by_pieces.
913         (emit_push_insn): Adjust move_by_pieces caller.
914         * expr.h (can_move_by_pieces): New prototype.
915         (store_by_pieces): Adjust prototypes.
916         * rtl.h (move_by_pieces): Adjust prototype.
917         * config/mips/mips.c (expand_block_move): Adjust move_by_pieces
918         caller.
919
920 2003-06-03  Ben Elliston  <bje@wasabisystems.com>
921
922         * doc/md.texi (Processor pipeline description): Improve wording.
923
924 2003-06-03  Neil Booth  <neil@daikokuya.co.uk>
925
926         * c-opts.c (c_common_handle_option): New, pulled out of
927         c_common_decode_option.  Substitute uses of argv.
928         (c_common_decode_option): Broken into two.
929
930 2003-06-02  Roger Sayle  <roger@eyesopen.com>
931             Zack Weinberg  <zack@codesourcery.com>
932
933         * emit-rtl.c (gen_complex_constant_part):  Remove unnecessary
934         test of TREE_CONSTANT_POOL_ADDRESS_P.
935
936 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
937
938         * mips.c: Don't include output.h twice.
939         * stormy16.c: Likewise.
940         * xtensa.c: Likewise.
941         * output.h: Protect against multiple inclusion.
942
943 2003-06-02  J"orn Rennecke <joern.rennecke@superh.com>
944
945         * sh.h (OLD_ARG_MODE): New macro.
946         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
947         (FUNCTION_ARG_1): Break out of:
948         (FUNCTION_ARG).  Use OLD_ARG_MODE.
949
950 2003-06-02  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
951
952         * gcc/config.gcc Add support multilib parts for m32rx processor.
953
954 2003-06-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
955
956         * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh.
957         (mostlyclean): Delete c-options.c and c-options.h.
958
959 2003-06-02  Neil Booth  <neil@daikokuya.co.uk>
960
961         * c-opts.c (CL_REJECT_NEGATIVE): New.
962         (c_common_decode_option): Update to use it.
963         * c.opt: Update documentation; use RejectNegative.
964         * opts.sh: Handle RejectNegative.
965
966 2003-06-01  Zack Weinberg  <zack@codesourcery.com>
967
968         * ggc-page.c (init_ggc): Give better diagnostics on failure to
969         open /dev/zero.
970         * toplev.c (crash_signal): Reset handling for received signal
971         to SIG_DFL.
972
973 2003-06-02  Ben Elliston  <bje@wasabisystems.com>
974
975         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare.
976         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already.
977         (arm_use_dfa_pipeline_interface): Implement.
978         * config/arm/arm.md (arm): New automaton.
979         (write_buf): Remove function units; new cpu unit.
980         (write_blockage): Remove function units; new cpu unit.
981         (core): Remove function units; new cpu unit.
982         (r_mem_f_wbuf): New instruction reservation.
983         (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise.
984         (store1_ldsched, store2, store3, store4): Likewise.
985         (load_ldsched, load_ldsched_xscale, load_or_store): Likewise.
986         (mult, mult_ldsched, mult_ldsched_strongarm): Likewise.
987         (multi_cycle, single_cycle): Likewise.
988         * config/arm/fpa.md (armfp): New automaton.
989         (fpa): Remove function units; new cpu unit.
990         (fpa_mem): Remove function unit; new cpu unit.
991         (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations.
992         (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise.
993
994 2003-06-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
995
996         * builtin-attrs.def (ATTR_ASM_FPRINTF): New.
997         * c-format.c (enum format_type): Add asm_fprintf_format_type.
998         (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs,
999         asm_fprintf_flag_pairs, asm_fprintf_char_table): New.
1000         (format_types_orig): Renamed from format_types.  Add new data.
1001         (format_types): Declare as pointer.
1002         (handle_format_attribute): Move later in file so we have all
1003         necessary declarations.  Add section to capture HOST_WIDE_INT.
1004         * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New.
1005         (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF.
1006
1007 2003-06-01  Andreas Jaeger  <aj@suse.de>
1008
1009         * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and
1010         ROUND_TYPE_SIZE_UNIT.
1011
1012         * stor-layout.c (finalize_record_size): Remove usages of
1013         ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1014         (finalize_type_size): Likewise.
1015         (layout_type): Likewise.
1016
1017         * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT.
1018
1019         * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro.
1020
1021         * config/d30v/d30v.h: Remove text copied from the manual.
1022
1023 2003-06-01  Roger Sayle  <roger@eyesopen.com>
1024             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1025             Geoffrey Keating  <geoffk@apple.com>
1026
1027         * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
1028         constants as condition code values.
1029
1030 2003-06-01  DJ Delorie  <dj@redhat.com>
1031
1032         * cppmacro.c (warn_of_redefinition): Handle cases where the two
1033         definitions have different numbers of tokens.
1034
1035 2003-06-01  Andreas Jaeger  <aj@suse.de>
1036
1037         * gen-protos.c (main): Readd unused attribute for argc.
1038
1039 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1040
1041         * Makefile.in (c-options.c, c-options.h): Parallel make safe.
1042         * c.opt: End in blank line.
1043         * opts.sh: Take AWK from environment if available; use C locale.
1044
1045 2003-06-01  Andreas Schwab  <schwab@suse.de>
1046
1047         * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1.
1048
1049 2003-06-01  Andreas Jaeger  <aj@suse.de>
1050
1051         * gen-protos.c (main): Revert patch to check for argument.
1052
1053 2003-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1054
1055         PR target/11044
1056         * config/i386/i386.md (length attribute): Set length to 4
1057         for instructions of type "fcmp".
1058
1059 2003-06-01  Andreas Jaeger  <aj@suse.de>
1060
1061         * toplev.c: Use ISO C90 prototypes.
1062
1063         * toplev.h: Use ISO C90 prototypes.
1064
1065         * genrecog.c: Use ISO C90 prototypes.
1066         (nodes_identical): Correct declaration to match prototype.
1067         (maybe_both_true): Likewise.
1068         (merge_trees): Likewise.
1069
1070         * genpeep.c (gen_peephole): Remove #if 0 code.
1071         Use ISO C90 prototypes.
1072
1073         * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code.
1074         Remove #if 0'ed function simplify_by_alternatives.
1075         (optimize_attrs): Remove #if 0'ed code.
1076         Remove ^L.
1077         Use ISO C90 prototypes.
1078         (make_canonical): Remove #if 0'ed code.
1079         (convert_const_symbol_ref): Remove #if 0'ed function.
1080
1081         * gen-protos.c (main): Check for argument.
1082
1083         * rtl.h: Use ISO C90 prototypes for functions from lists.c.
1084
1085         * params.h: Use ISO C90 prototypes.
1086         * params.c: Likewise.
1087         * intl.c: Likewise.
1088         * intl.h: Likewise.
1089         * lists.c: Likewise.
1090         * errors.c: Likewise.
1091         * errors.h: Likewise.
1092         * gencodes.c: Likewise.
1093         * genpreds.c: Likewise.
1094         * genattr.c: Likewise.
1095         * gen-protos.c: Likewise.
1096         * genflags.c: Likewise
1097         * genconditions.c: Likewise.
1098         * genautomata.c: Likewise.
1099         * gencheck.c: Likewise.
1100         * genconfig.c: Likewise.
1101         * genconstants.c: Likewise.
1102         * genemit.c: Likewise.
1103         * genextract.c: Likewise.
1104         * gengenrtl.c: Likewise.
1105         * gengtype.c: Likewise.
1106         * gengtype.h: Likewise.
1107         * genopinit.c: Likewise.
1108         * genoutput.c: Likewise.
1109         * gensupport.c: Likewise.
1110         * gensupport.h: Likewise.
1111
1112         * sdbout.h: Use ISO C90 prototypes.
1113
1114         * sdbout.c (CONTIN): Removed empty macro.
1115         (sdbout_one_type): Remove CONTIN usages.
1116         Remove ^Ls.
1117         (tag_of_ru_type): Remove #if 0'ed function.
1118         (sdbout_symbol): Remove #if 0'ed code.
1119         (sdbout_one_type): Remove a #if 1.
1120         (sdbout_one_type): Remove #if 0'ed code.
1121         (sdbout_init): Remove RMS_QUICK_HACK_1 code.
1122         Remove PARAMS, use ISO C90 prototypes for all functions.
1123
1124 2003-06-01  Josef Zlomek  <zlomekj@suse.cz>
1125
1126         * rtl.def (CONST_DOUBLE): Update comment.
1127
1128 2003-06-01  Neil Booth  <neil@daikokuya.co.uk>
1129
1130         * opts.sh: Remove path from sort.
1131
1132 2003-06-01  Aldy Hernandez  <aldyh@redhat.com>
1133
1134         PR/9680
1135         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require
1136         TARGET_SPE for SPE_VECTOR_MODE.
1137
1138 2003-05-31  Aldy Hernandez  <aldyh@redhat.com>
1139
1140         * toplev.c (botch): Remove.
1141         (do_abort): Remove.
1142         (set_Wunused): Comment.
1143         (set_Wextra): Comment.
1144         Remove ^L's.
1145         (rest_of_compilation): Factor out common code into functions.
1146         (rest_of_handle_inlining): New.
1147         (rest_of_handle_ssa): New.
1148         (rest_of_handle_cse): New.
1149         (rest_of_handle_gcse): New.
1150         (rest_of_handle_loop_optimize): New.
1151         (rest_of_handle_jump_bypass): New.
1152         (rest_of_handle_sibling_calls): New.
1153         (rest_of_handle_null_pointer): New.
1154         (rest_of_handle_addresof): New.
1155         (rest_of_handle_flow): New.
1156         (rest_of_handle_branch_prob): New.
1157         (rest_of_handle_if_conversion): New.
1158         (rest_of_handle_tracer): New.
1159         (rest_of_handle_loop2): New.
1160         (rest_of_handle_cse2): New.
1161         (rest_of_handle_life): New.
1162         (rest_of_handle_combine): New.
1163         (rest_of_handle_if_after_combine): New.
1164         (rest_of_handle_regmove): New.
1165         (rest_of_handle_sched): New.
1166         (rest_of_handle_old_regalloc): New.
1167         (rest_of_handle_new_regalloc): New.
1168         (rest_of_handle_regrename): New.
1169         (rest_of_handle_reorder_blocks): New.
1170         (rest_of_handle_sched2): New.
1171         (rest_of_handle_new_regalloc): New.
1172         (rest_of_handle_old_regalloc): New.
1173         (rest_of_handle_regrename): New.
1174         (rest_of_handle_reorder_blocks): New.
1175         (rest_of_handle_stack_regs): New.
1176         (rest_of_handle_machine_reorg): New.
1177         (rest_of_handle_delay_slots): New.
1178         (rest_of_handle_final): New.
1179
1180         * toplev.h (botch): Remove prototype.
1181         (do_abort): Same.
1182
1183 2003-05-31  Neil Booth  <neil@daikokuya.co.uk>
1184
1185         * Makefile.in (c-opts.o, c-options.h): Update dependencies.
1186         * c-opts.c: Include c-options.h and c-options.c.
1187         (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY):
1188         Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX.
1189         (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option,
1190         OPT, opt_comp): Remove.
1191         (missing_arg, c_common_init_options, c_common_decode_option,
1192         write_langs): Update for macro redefinitions and enumeration
1193         name changes.
1194         * c.opt, opts.sh: New files.
1195         * doc/passes.texi: Update.
1196
1197 2003-05-31  Andreas Jaeger  <aj@suse.de>
1198
1199         * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE
1200         usage.
1201
1202         * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE.
1203
1204         * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE.
1205
1206         * system.h: Poison ALLOCATE_TRAMPOLINE.
1207
1208         * doc/tm.texi (Misc): Remove HANDLE_PRAGMA.
1209         * system.h: Poison HANDLE_PRAGMA.
1210
1211 2003-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1212
1213         * doc/invoke.texi: Update dump file names.
1214
1215 2003-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1216
1217         * c-format.c (format_length_info, format_char_info,
1218         format_flag_spec, format_flag_pair, format_kind_info):
1219         De-const-ify structure members.
1220
1221 2003-05-31  Roger Sayle  <roger@eyesopen.com>
1222
1223         * flags.h (flag_wrapv): New flag controlling overflow semantics.
1224         * toplev.c (flag_wrapv): Declare the variable with default false.
1225         (lang_independent_options): New option "-fwrapv" to set the above.
1226
1227         * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
1228         as x, when signed arithmetic overflow wraps around.
1229         (fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
1230         * loop.c (basic_induction_var): Ignore BIVs that rely on undefined
1231         overflow when flag_wrapv is true.
1232
1233         * doc/invoke.texi: Document new -fwrapv command line option.
1234         * doc/c-tree.texi: Mention that the overflow semantics of
1235         NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
1236         upon both flag_wrapv and flag_trapv.
1237
1238 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1239
1240         * doc/install.texi (mips-sgi-irix5): Add missing
1241         HTML <hr> marker.
1242
1243 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1244
1245         * doc/md.texi (Machine Constraints): Document
1246         missing SPARC constraints.
1247
1248 2003-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1249
1250         * doc/md.texi (Automaton pipeline description): Use
1251         "type" instead of "cpu" as the attribute in the examples.
1252
1253 2003-05-30  Stan Shebs  <shebs@apple.com>
1254
1255         * system.h: Poison OBJC_PROLOGUE.
1256
1257 2003-05-30  Roger Sayle  <roger@eyesopen.com>
1258
1259         * emit-rtl.c (gen_complex_constant_part): New function for getting
1260         the constant real or imaginary part of a complex constant.
1261         (gen_realpart): Use it.
1262         (gen_imagpart): Likewise.
1263
1264 2003-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1265
1266         * doc/invoke.texi: Fix typos.
1267         * doc/rtl.texi: Likewise.
1268
1269 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
1270
1271         * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal
1272         mode.
1273         * config/h8300/crtn.asm: Likewise.
1274         * config/h8300/lib1funcs.asm: Likewise.
1275         * config/h8300/h8300.c (asm_file_start): Likewise.
1276         * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and
1277         h8300snelf emulations for normal mode.
1278         * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn
1279         emulations for normal mode.
1280
1281 2003-05-30  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
1282
1283         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return
1284         true if TARGET_NORMAL_MODE.
1285
1286 2003-05-30  Roger Sayle  <roger@eyesopen.com>
1287
1288         * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when
1289         making a substitution.
1290         (dead_libcall_p): If directly replacing a libcall with a
1291         constant value produces an invalid instruction, also try forcing
1292         the constant into the constant pool.
1293         * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not
1294         obvious that the source is a constant.
1295         (compress_float_constant): Use set_unique_reg_note to place
1296         REG_EQUAL notes on instructions.
1297
1298 2003-05-30  Eric Christopher  <echristo@redhat.com>
1299
1300         * config/mips/mips.c (extern_list): Add GTY marker.
1301         (extern_head): Separate out definition. Add marker.
1302         (mips_output_external): Use ggc_alloc for extern_list
1303         allocation.
1304         (mips_output_external_libcall): Ditto.
1305
1306 2003-05-30  Florian Weimer  <fw@deneb.enyo.de>
1307
1308         * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or
1309         later.
1310
1311 2003-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1312
1313         * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
1314         warnings.
1315         (PRINT_OPERAND): Likewise.
1316
1317 2003-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1318
1319         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
1320         -mdebug/-no-mdebug switches ...
1321         (MDEBUG_ASM_SPEC): ... here.
1322         Use only with gas.
1323         (EXTRA_SPECS): Initialize mdebug_asm_spec.
1324
1325 2003-05-29  Matt Kraai  <kraai@alumni.cmu.edu>
1326
1327         * gthr-gnat.c: Remove #undef UNUSED.
1328         (__gnat_default_lock, __gnat_default_unlock): Prototype.
1329         (__gnat_task_lock, __gnat_task_unlock): Make declarations
1330         prototypes.
1331         (__gnat_install_locks): Convert declaration to ISO C90, make
1332         parameter declarations prototypes, and remove blank line.
1333         * gthr-gnat.h (__gnat_install_locks): Make parameter
1334         declarations prototypes.
1335
1336 2003-05-29  Jason Merrill  <jason@redhat.com>
1337
1338         * Makefile.in (unstrap): Remove stage_last after make unstage1.
1339
1340 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1341
1342         * mips-tfile.c (PAGE_SIZE): Increase page size to 32K.
1343
1344 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1345             Kaveh Ghazi  <ghazi@caip.rutgers.edu>
1346
1347         PR bootstrap/10169
1348         * mips-tfile.c (main): Use getopt_long instead of getopt.
1349         Add new command line option --version to display version.
1350         Treat --verbose like -v to report a single line version.
1351         (options): New global variable for getopt_long.
1352         * mips-tdump.c (main): Use getopt_long instead of getopt.
1353         New command line options -v, --version and -verbose to display
1354         the program version number (to match mips-tfile's behavior).
1355         (options): New global variable for getopt_long.
1356
1357         * gcov.c (options): Zero-terminate getopt_long array.
1358         * gcov-dump.c (options): Likewise.
1359
1360         * Makefile.in (mips-tdump.o): Add dependency on version.h.
1361
1362 2003-05-29  Stan Shebs  <shebs@apple.com>
1363
1364         Remove OBJC_PROLOGUE everywhere.
1365         * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE.
1366         * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE.
1367         * config/d30v/d30v.h: Similarly.
1368         * config/ip2k/ip2k.h: Similarly.
1369         * doc/tm.texi: Remove doc of OBJC_PROLOGUE.
1370
1371 2003-05-29  Roger Sayle  <roger@eyesopen.com>
1372
1373         * c-semantics.c (genrtl_do_stmt_1): New function split out from...
1374         (gen_rtl_do_stmt): ... here.  Call genrtl_do_stmt_1.
1375         (expand_unreachable_stmt): Expand unreachable while statements
1376         using genrtl_do_stmt_1.
1377
1378 2003-05-29  Richard Sandiford  <rsandifo@redhat.com>
1379
1380         * config/mips/mips-protos.h (mips_output_load_label): Declare.
1381         * config/mips/mips.c (mips_output_load_label): New function.
1382         (mips_output_conditional_branch): Use it.
1383         * config/mips/mips.md (jump): And here.
1384
1385 2003-05-28  Bob Wilson  <bob.wilson@acm.org>
1386
1387         * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete.
1388         (xtensa_split_operand_pair): New proto.
1389         * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode.
1390         (smalloffset_double_mem_p): Delete.
1391         (gen_float_relational, printx, print_operand, xtensa_va_arg):
1392         Fix whitespace.
1393         (xtensa_split_operand_pair): New.
1394         (xtensa_dbx_register_number): Fix formatting.
1395         * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint.
1396         * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory
1397         instead of splitting them into single-word moves.  Remove unnecessary
1398         checks for reload_in_progress and reload_completed.
1399         (movdi_internal, movdf_internal): Change to post-reload split patterns.
1400         Add constraints to allow constant operands.
1401         (movsf_internal): Allow CONST_INT operands.
1402
1403 2003-05-27  Danny Smith   <dannysmith@users.sourceforge.net>
1404
1405         * config.gcc (i[34567]86-*-mingw32*): Add host makefile
1406         fragment i386/x-mingw32.
1407         * config/i386/x-mingw32: New file. Make local_includedir
1408         relative to EXEC_PREFIX.
1409
1410 2003-05-27  Aaron W. LaFramboise  <awlaframboise@aol.com>
1411
1412         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update.
1413         (MD_STARTFILE_PREFIX): Define.
1414
1415 2003-05-27  Denis Chertykov  <denisc@overta.ru>
1416
1417         * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
1418         VOIDmode.
1419         * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
1420         call of cselib_invalidate_regno.
1421
1422 2003-05-28  Daniel Jacobowitz  <drow@mvista.com>
1423
1424         * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct
1425         -lthread to -lpthread.
1426
1427 2003-05-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1428             Bruce Korb  <bkorb@gnu.org>
1429             Arno Klaassen  <arno@heho.snv.jussieu.fr>
1430
1431         * fixinc/inclhack.def: Add missing declaration of getpagesize()
1432         to unistd.h on Solaris 2.5.1.
1433         Fix prototype of recv() and send() in sys/socket.h on
1434         Solaris 2.5.1 and 2.6.
1435         * fixinc/tests/base/unistd.h: Add solaris_unistd fix test.
1436         * fixinc/tests/base/sys/socket.h: Add solaris_socket test.
1437         * fixinc/check.tpl: Use 'diff -c', not 'diff -u'.
1438         * fixinc/fixincl.x: Regenerate.
1439
1440 2003-05-27  Jason Merrill  <jason@redhat.com>
1441
1442         * tree.c (expr_first, expr_length): New fns.
1443         * tree.h: Declare them.
1444
1445         * tree.c (iterative_hash_expr): Hash commutative expressions
1446         consistently.
1447
1448 2003-05-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1449
1450         * tree.h (contains_placeholder_p): Now returns bool.
1451         (CONTAINS_PLACEHOLDER_P): New macro.
1452         (type_contains_placeholder_p): New function.
1453         * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF.
1454         (contains_placeholder_p): Now returns bool.
1455         Rework to use CONTAINS_PLACEHOLDER_P macro.
1456         (type_contains_placeholder_p): New function.
1457         * fold-const.c (fold, case COMPONENT_REF): Don't fold if
1458         type_contains_placeholder_p.
1459         (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold):
1460         Use CONTAINS_PLACEHOLDER_P macro.
1461         * builtins.c (fold_builtin): Likewise.
1462         * calls.c (initialize_argument_information): Likewise.
1463         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1464         * explow.c (expr_size): Likewise.
1465         * expr.c (store_constructor, get_inner_reference): Likewise.
1466         * function.c (assign_parms): Likewise.
1467         * stor-layout.c (variable_size): Likewise.
1468
1469 2003-05-25  Gabriel Dos Reis <gdr@integrable-solutions.net>
1470
1471         * diagnostic.h (output_verbatim, verbatim):  Remove  printf
1472         attribute.
1473
1474 2003-05-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1475
1476         * doc/contrib.texi (Contributors): Update Kean Johnston.
1477
1478 2003-05-24  David Edelsohn  <edelsohn@gnu.org>
1479
1480         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute.
1481
1482 2003-05-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1483
1484         * config/rs6000/440.md, config/stormy16/stormy16protos.h,
1485         config/stormy16/stormy16.c, config/stormy16/stormy16.md:
1486         Replace "GNU CC" with "GCC".
1487
1488 2003-05-24  Matt Kraai  <kraai@alumni.cmu.edu>
1489
1490         * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for
1491         intermediate computation.
1492
1493 2003-05-23  Eric Christopher  <echristo@redhat.com>
1494
1495         * config/mips/mips.md (clzsi, clzdi): New patterns.
1496
1497 2003-05-23  Geoffrey Keating  <geoffk@apple.com>
1498
1499         * gcc.c (default_compilers): Use -o to specify preprocessor's output
1500         file.  Make -no-integrated-cpp work when building PCH files.
1501         * objc/lang-specs.h: Likewise.
1502
1503 2003-05-23  Nathanael Nerode  <neroden@gcc.gnu.org>
1504
1505         * fixinc/Makefile.in: Correct description.
1506         * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c,
1507         fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c,
1508         fixinc/genfixes: Replace "GNU CC" with "GCC".
1509
1510 2003-05-23  Roger Sayle  <roger@eyesopen.com>
1511
1512         * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl
1513         builtin functions (and their __builtin_* variants).
1514         * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}.
1515         (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not
1516         optimizing.
1517
1518         * doc/extend.texi: Document new tan and atan builtins, and
1519         their float and long double variants.
1520
1521 2003-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1522
1523         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
1524         __sparcv9 in the TARGET_ARCH64 case.
1525
1526 Fri May 23 22:17:32 CEST 2003  Jan Hubicka  <jh@suse.cz>
1527
1528         * i386.c (ix86_reorg): Calls are also jumps.
1529
1530 2003-05-23  J"orn Rennecke <joern.rennecke@superh.com>
1531
1532         * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL
1533         note containing an EXPR_LIST, process all the arguments.
1534
1535 Fri May 23 21:19:31 CEST 2003  Jan Hubicka  <jh@suse.cz>
1536                                Andreas Jaeger  <aj@suse.de>
1537
1538         * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
1539         do not use assertion.
1540
1541 2003-05-23  Mike Stump  <mrs@apple.com>
1542
1543         * tlink.c (scan_linker_output): Add support for darwin linker, as it
1544         emits unresolved symbols one per line, consuming the entire line.
1545
1546 2003-05-23  Larin Hennessy <larin@science.oregonstate.edu>
1547             Zack Weinberg <zack@codesourcery.com>
1548
1549         * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe.
1550         * config/m68k/m68k.c (m68k_output_function_prologue):
1551         Remove code under #if NEED_PROBE.
1552         * config/m68k/m68k.h: Don't define NEED_PROBE.
1553         * config/m68k/m68k.md: Remove "probe" insn.
1554         * doc/md.texi: Remove documentation of "probe" pattern.
1555
1556 2003-05-23  Dorit Naishlos  <gcchaifa@il.ibm.com>
1557
1558         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute.
1559
1560 2003-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1561
1562         * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
1563         Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
1564
1565 2003-05-22  Roger Sayle  <roger@eyesopen.com>
1566
1567         * real.c (real_maxval): New function to return the largest finite
1568         value representable in a given mode (i.e. FLT_MAX and DBL_MAX).
1569         * real.h (real_maxval): Prototype here.
1570         * fold-const.c (fold_inf_compare): Transform comparisons against
1571         +-Infinity into comparisons against DBL_MAX (or equivalent).
1572
1573 2003-05-22  Mike Stump  <mrs@apple.com>
1574
1575         * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the
1576         default.
1577
1578 2003-05-22  DJ Delorie  <dj@redhat.com>
1579
1580         * calls.c (expand_call): If the arg block is going to grow
1581         downward, we need argblock to point to the top of the block,
1582         not the bottom.
1583
1584 2003-05-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1585
1586         * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
1587
1588         * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if
1589         constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER.
1590
1591 2003-05-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1592
1593         * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
1594         * m68k.c: Likewise.
1595         * m68k.h: Likewise.
1596
1597 2003-05-22  Zack Weinberg  <zack@codesourcery.com>
1598
1599         PR other/2873
1600         * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
1601         expressions to prevent triggering on recent curses.h,
1602         linux/nls.h, or X11/Xlib.h.
1603         (stdio_va_list): Add _G_va_list to bypass pattern.
1604         (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
1605         * fixinc/fixincl.x: Regenerate.
1606
1607 2003-05-22 Rekha Bhintade <rekhad@kpitcummins.com>
1608
1609         * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target
1610         switches when --target-help option is specified.
1611
1612 2003-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1613
1614         PR bootstrap/10805
1615         * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
1616         failure with Sun assembler 5.0 Alpha 03/27/98.
1617
1618 2003-05-21  Loren James Rittle  <ljrittle@acm.org>
1619
1620         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
1621         to match system compiler convention.
1622
1623 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
1624
1625         * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for non-zero
1626         value, not just if defined.
1627         Update copyright year.
1628
1629 2003-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1630
1631         PR target/6428
1632         * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling
1633         directories from LIB_SPEC to LINK_SPEC.  Emit warning if `-p' or `-pg'
1634         option is used without `-static'.
1635         * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise.
1636         * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise.
1637
1638 2003-05-21  Bob Wilson  <bob.wilson@acm.org>
1639
1640         * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE,
1641         TARGET_SERIALIZE_VOLATILE): Delete.
1642         (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits.
1643         (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE.
1644         (TARGET_SWITCHES): Remove "-mserialize-volatile" and
1645         "-mno-serialize-volatile".
1646         * config/xtensa/xtensa.c (print_operand): Remove checks of
1647         TARGET_SERIALIZE_VOLATILE.
1648         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
1649         * doc/invoke.texi (Option Summary, Xtensa Options): Remove
1650         "-mserialize-volatile" and "-mno-serialize-volatile" options.
1651
1652 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
1653
1654         * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier.
1655         (nested_function): Likewise.
1656         (notype_nested_function): Likewise.
1657
1658 2003-05-21  Nick Clifton  <nickc@redhat.com>
1659
1660         * config/stormy16/stormy-abi: Update overflow type for
1661         R_XSTORMY16_16 reloc.
1662
1663 2003-05-21  Nathan Sidwell  <nathan@codesourcery.com>
1664
1665         * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED.
1666         * c-parse.in (reswords): Remove __bounded__ and __unbounded__.
1667         (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots.
1668         * print-tree.c (print_node): Remove ambient-boundedness.
1669         * tree.h (tree_common): Remove bounded_flag.
1670         (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P,
1671         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
1672         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
1673         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
1674         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED):
1675         Remove.
1676         (TYPE_QUALS): Remove BOUNDED.
1677         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove.
1678         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
1679         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
1680         TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT,
1681         VA_LIST_POINTER_DEPTH): Remove.
1682         (struct tree_type): Remove pointer_depth.
1683
1684 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1685
1686         * c-pretty-print.c (pp_c_integer_literal): Use
1687         HOST_WIDE_INT_PRINT_DOUBLE_HEX.
1688
1689 2003-05-20  Roger Sayle  <roger@eyesopen.com>
1690             Kazu Hirata  <kazu@cs.umass.edu>
1691             Joern Rennecke  <joern.rennecke@superh.com>
1692
1693         * gcse.c (cprop_jump):  Make use of REG_EQUAL notes on both
1694         setcc and jump, if they exist.  If substituted instruction
1695         fails to validate, store current effort in a REG_EQUAL note.
1696         (cprop_insn): Don't attempt further substitutions if the
1697         current instruction has been deleted.
1698         (local_cprop_pass): Likewise.
1699
1700         * jump.c (redirect_jump):  Also update REG_EQUAL note, if
1701         one is attached to the jump instruction.
1702         (invert_jump): Delete REG_EQUAL note on jump, if one exists.
1703
1704 2003-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
1705
1706         PR c++/9738
1707         * config/i386/winnt.c (i386_pe_encode_section_info): Enable
1708         even if not first.
1709
1710 2003-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1711
1712         * genautomata.c (output_description, output_automaton_units,
1713         output_state_arcs): Add missing specifiers.
1714
1715 2003-05-20  Bob Wilson  <bob.wilson@acm.org>
1716
1717         * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives.
1718         (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros.
1719         (__mulsi3): Use do_addx* instead of ADDX* instructions.  Formatting.
1720         (nsau): Rename to do_nsau.  Provide alternate version for use when
1721         the NSAU instruction is available.
1722         (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro.
1723         (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction.
1724         * config/xtensa/xtensa-config.h: Update comments to match binutils.
1725         (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define.
1726         * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define.
1727         (TARGET_ABS, TARGET_ADDX): Define.
1728         (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX.
1729         (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx".
1730         * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4,
1731         *subx8): Set predicate condition to TARGET_ADDX.
1732         (abssi2): Set predicate condition to TARGET_ABS.
1733         * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs",
1734         "-maddx", and "-mno-addx" options.
1735         (Xtensa Options): Likewise.  Also tag some opcode names with @code.
1736
1737 2003-05-20  Kevin Ryde <user42@zip.com.au>
1738             Wolfgang Bangerth <bangerth@dealii.org>
1739
1740         PR/10355
1741         * doc/extend.texi: Put a warning into the documentation
1742         of attribute regparm.
1743
1744 2003-05-20  Jason Merrill  <jason@redhat.com>
1745
1746         * tree.c (expr_last): New fn.
1747         * tree.h: Declare it.
1748         * objc/objc-act (expr_last): Rename to objc_expr_last.
1749
1750 2003-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1751
1752         * sh.c (sh_register_move_cost): Add clase for moving between
1753         FP registers and MAC registers.
1754
1755 2003-05-19  John David Anglin  <dave.anglin@nrc-gnrc.gc.ca>
1756
1757         * pa/milli64.S ($$mulI): Fix typo.
1758
1759 2003-05-19  Matt Kraai  <kraai@alumni.cmu.edu>
1760
1761         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p)
1762         (nonlocal_set_p): Remove initial blank line.
1763         * dwarf2out.c (simple_type_size_in_bits): Likewise.
1764         * et-forest.c (et_forest_create): Likewise.
1765         * explow.c (stabilize): Likewise.
1766         * fix-header.c (write_lbrac): Likewise.
1767         * graph.c (start_fct, node_data): Likewise.
1768         * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise.
1769         * rtlanal.c (global_reg_mentioned_p): Likewise.
1770         * tree.c (bit_position): Likewise.
1771
1772 2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
1773
1774         * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct
1775         -lthread to -lpthread.
1776
1777 2003-05-19  Neil Booth  <neil@daikokuya.co.uk>
1778
1779         * c-opts.c (c_common_decode_option): Don't accept dollars
1780         as identifier characters in assembly.
1781         * doc/cpp.texi: Document this.
1782
1783 2003-05-19  Seth Arnold  <sarnold@wirex.com>
1784             Aldy Hernandez  <aldyh@redhat.com>
1785
1786         * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
1787         vrsave_size twice.
1788
1789 2003-05-19  Aldy Hernandez  <aldyh@redhat.com>
1790
1791         * doc/tm.texi (function_arg): Fix typo.
1792
1793 2003-05-19  Matt Austern  <austern@apple.com>
1794
1795         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option.
1796         * c-common.h (warn_invalid_offsetof): Declare.
1797         * c-common.c (warn_invalid_offsetof): Define.
1798         * doc/invoke.texi: Document -Winvalid-offsetof.
1799         * testsuite/g++.dg/other/offsetof3.C: New.
1800         * testsuite/g++.dg/other/offsetof4.C: New.
1801
1802 2003-05-19  Kevin B. Hendricks  <kevin.hendricks@sympatico.ca>
1803             David Edelsohn  <edelsohn@gnu.org>
1804
1805         * config/rs6000/rs6000.c (rs6000_alignment_string,
1806         rs6000_alignment_flags): New variables.
1807         (rs6000_parse_alignment_option): New function.
1808         (rs6000_override_options): Call it.
1809         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option.
1810         (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New
1811         macros.
1812         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED
1813         natural alignment if TARGET_NATURAL_ALIGNMENT
1814         (ROUND_TYPE_ALIGN): Always use default record alignment if
1815         TAGET_NATURAL_ALIGNMENT.
1816         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same
1817         (ROUND_TYPE_ALIGN): Same.
1818         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same
1819         (ROUND_TYPE_ALIGN): Same.
1820         * doc/invoke.texi (Option Summary, PowerPC Options): Document
1821         new options.
1822
1823 2003-05-19  J"orn Rennecke <joern.rennecke@superh.com>
1824
1825         * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME
1826         of a function using ASMSPEC, prepend a star.
1827
1828 2003-05-19  Jason Merrill  <jason@redhat.com>
1829
1830         * tree-inline.c (copy_body_r): Avoid generating &* during inline
1831         substitution.
1832
1833 2003-05-19  Andrew Macleod  <amacleod@redhat.com>
1834
1835         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do
1836         not mark assignments to the hard frame pointer as being stack
1837         frame related.
1838         (xstormy16_expand_epilogue): Mark adjustments to the stack
1839         pointer as being stack frame related.
1840
1841 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1842
1843         * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY,
1844         ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros.
1845         (PREDICATE_CODES): Add hilo_operand.
1846         * config/mips/mips.c (hilo_operand): New predicate.
1847         (mips_adjust_insn_length): Account for the number nops that might
1848         be needed to avoid hardware hazards.
1849         * config/mips/mips.md (dslot): Remove attribute.
1850         (hazard): New attribute.
1851         (can_delay): Use it.  Check for calls, branches & jumps.
1852         (muldi3): Use the standard dmult pattern for mips16 code.
1853         (muldi3_internal, muldi3_internal2): Adjust conditions accordingly.
1854
1855 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1856
1857         * config/mips/mips-protos.h (final_prescan_insn,
1858         mips_count_memory_refs, mips_fill_delay_slot): Remove.
1859         * config/mips/mips.h (delay_type, dslots_load_total,
1860         dslots_load_filled, dslots_jump_total, dslots_jump_filled,
1861         dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2,
1862         mips_load_reg3, mips_load_reg4): Remove.
1863         (MASK_STATS): Remove.
1864         (MASK_EXPLICIT_RELOCS): Reuse its value.
1865         (TARGET_STATS): Remove.
1866         (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops.
1867         Warn that -mstats is now ignored.
1868         (FINAL_PRESCAN_INSN): Undefine.
1869         (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics.
1870         (ASM_OUTPUT_REG_POP): Likewise.
1871         * config/mips/mips.c (dslots_load_total, dslots_load_filled,
1872         dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs,
1873         mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4,
1874         mips_fill_delay_slot, mips_count_memory_refs,
1875         final_prescan_insn): Remove.
1876         (output_block_move): Remove calls to mips_count_memory_refs.
1877         (print_operand): Remove printing of #nop for TARGET_STATS.
1878         (mips_output_function_epilogue): Remove TARGET_STATS code.
1879         Reorganize setting of fnnmae.
1880         * config/mips/mips.md: Remove handling of dslot statistics
1881         throughout file.  Change all fcmp patterns into normal asm
1882         templates, removing calls to mips_fill_delay_slot.
1883         * doc/invoke.texi: Remove documentation of -mstats.
1884
1885 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1886
1887         * config/mips/mips.c (mips_class_max_nregs): Return the number of
1888         words in the mode.
1889
1890 2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
1891
1892         * config/mips/mips.c (override_options): Disable explicit
1893         relocs for old ABIs unless using gas.
1894
1895 2003-05-18  Eric Christopher  <echristo@redhat.com>
1896
1897         * config/mips/mips.h: Remove definition of g_switch_value.
1898
1899 2003-05-18  Matt Kraai  <kraai@alumni.cmu.edu>
1900
1901         * flags.h (g_switch_value): Change to an unsigned
1902         HOST_WIDE_INT.
1903         * toplev.c (g_switch_value): Likewise.
1904
1905         * config/alpha/alpha.c (small_symbolic_operand): Remove
1906         g_switch_value cast.
1907         (alpha_in_small_data_p): Cast size to an unsigned
1908         HOST_WIDE_INT.
1909
1910         * config/frv/frv.c (frv_in_small_data_p): Cast size to an
1911         unsigned HOST_WIDE_INT.
1912         * config/frv/frv.h (g_switch_value, g_switch_set): Remove.
1913         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set.
1914
1915         * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an
1916         unsigned HOST_WIDE_INT.
1917         (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED.
1918         * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove.
1919         (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value.
1920
1921         * config/rs6000/rs6000.c (rs6000_file_start): Use
1922         HOST_WIDE_INT_PRINT_UNSIGNED.
1923         (small_data_operand): Cast summand to unsigned HOST_WIDE_INT.
1924         (rs6000_elf_in_small_data_p): Cast size to unsigned
1925         HOST_WIDE_INT.
1926         * config/rs6000/sysv4.h (g_switch_value, g_switch_set):
1927         Remove.
1928         (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and
1929         g_switch_set.
1930         (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove
1931         g_switch_value cast.
1932
1933 2003-05-18  Roger Sayle  <roger@eyesopen.com>
1934             Zack Weinberg  <zack@codesourcery.com>
1935
1936         PR middle-end/10472
1937         * builtins.c (expand_builtin_memcpy):  Call force_operand on
1938         expressions and use simplify_gen_binary to create the addition.
1939
1940 2003-05-18  Andreas Schwab  <schwab@suse.de>
1941
1942         * config/m68k/m68k.md: Use define_constants for unspec numbers.
1943
1944 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
1945
1946         * config/sparc/sparc.h: Define sparc for now.
1947 2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
1948
1949         * config.gcc: Clear xm_file, md_file at the beginning of each pass.
1950
1951         * config/stormy16/stormy16.h: Remove about 3000 lines of
1952         target-independent comments.  Update copyright notice.
1953
1954         * doc/collect2.texi: GNU CC -> GCC.
1955         * doc/headerdirs.texi: GNU CC -> GCC.
1956
1957 2003-05-18  Gabriel Dos Reis <gdr@integrable-solutions.net>
1958
1959         * hashtable.h (struct ht_identifier): Add data member "hash_value".
1960         * hashtable.c (ht_lookup): Use it when searching, remember.
1961         (ht_expand): Do not recompute.
1962         * tree.h (IDENTIFIER_HASH_VALUE): New macro.
1963
1964 2003-05-18  Nathan Sidwell  <nathan@codesourcery.com>
1965
1966         * gcov-io.c (gcov_read_bytes): Fix fread thinko.
1967
1968 2003-05-18  Neil Booth  <neil@daikokuya.co.uk>
1969
1970         * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS):
1971         Default here.
1972         (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS().
1973         * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here.
1974         * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__.
1975         * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h,
1976         config/arm/linux-elf.h, config/arm/rtems-elf.h,
1977         config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h,
1978         config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h,
1979         config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h,
1980         config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h,
1981         config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h,
1982         config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h,
1983         config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h,
1984         config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h,
1985         config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h,
1986         config/sparc/openbsd64.h, config/sparc/sp64-elf.h,
1987         config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h:
1988         Don't define __ELF__.
1989         * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS):
1990         Define __ELF__.
1991         * doc/cpp.texi: Document __ELF__.
1992         * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS.     *
1993
1994 2003-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1995
1996         * builtins.c (validate_arglist): Eliminate libiberty VA_ macros,
1997         always use stdarg.
1998         * c-errors.c (pedwarn_c99): Likewise.
1999         * c-format.c (status_warning): Likewise.
2000         * c-semantics.c (build_stmt): Likewise.
2001         * calls.c (emit_library_call, emit_library_call_value): Likewise.
2002         * collect2.c (notice, fatal_perror, fatal, error): Likewise.
2003         * cpperror.c (cpp_error, cpp_error_with_line): Likewise.
2004         * diagnostic.c (build_message_string, output_printf,
2005         output_verbatim, verbatim, inform, warning, pedwarn, error, sorry,
2006         fatal_error, internal_error, warning_with_decl, pedwarn_with_decl,
2007         error_with_decl, fnotice): Likewise.
2008         * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta,
2009         dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr,
2010         dw2_asm_output_addr_rtx, dw2_asm_output_nstring,
2011         dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128,
2012         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
2013         dw2_asm_output_encoded_addr_rtx): Likewise.
2014         * emit-rtl.c (gen_rtx, gen_rtvec): Likewise.
2015         * errors.c (warning, error, fatal, internal_error): Likewise.
2016         * final.c (output_operand_lossage, asm_fprintf): Likewise.
2017         * fix-header.c (fatal): Likewise.
2018         * gcc.c (fatal, error, notice): Likewise.
2019         * gcov.c (fnotice): Likewise.
2020         * genattrtab.c (attr_rtx, attr_printf): Likewise.
2021         * gengtype.c (error_at_line, xasprintf, oprintf): Likewise.
2022         * gensupport.c (message_with_line): Likewise.
2023         * mips-tfile.c (fatal, error): Likewise.
2024         * protoize.c (notice): Likewise.
2025         * ra-debug.c (ra_debug_msg): Likewise.
2026         * read-rtl.c (fatal_with_file_and_line): Likewise.
2027         * rtl-error.c (error_for_asm, warning_for_asm): Likewise.
2028         * tree.c (build, build_nt, build_function_type_list): Likewise.
2029
2030 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2031
2032         * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove.
2033         * gcc.c (cpp_predefines): Remove.
2034         (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES.
2035         (static_specs): Remove predefines.
2036         * system.h: Poison CPP_PREDEFINES.
2037         * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h,
2038         config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES.
2039
2040 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2041
2042         * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h,
2043         config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h,
2044         config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES,
2045         use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead.
2046
2047 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2048
2049         PR c/9209
2050         * c-common.c, c-common.h (dollars_in_ident): Remove.
2051         * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
2052         (c_common_init_options, c_common_decode_option): Set dollars_in_ident.
2053         * cpphash.h (warned_dollar): Rename warn_dollars.
2054         * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
2055         Permit dollars regardless of -std=.
2056         (post_options): Set warn_dollars.
2057         * cpplex.c (forms_identifier_p): Use warn_dollars.
2058         * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
2059         Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
2060         * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
2061         Update documentation.
2062
2063 2003-05-17  Andreas Schwab  <schwab@suse.de>
2064
2065         * config/m68k/m68k.c (m68k_output_function_prologue): Use
2066         HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when
2067         formatting a HOST_WIDE_INT.
2068         (m68k_output_function_epilogue): Likewise.
2069
2070 2003-05-17  Zack Weinberg  <zack@codesourcery.com>
2071
2072         * doc/install.texi: Remove information about desupported targets.
2073
2074 2003-05-17  Andreas Schwab  <schwab@suse.de>
2075
2076         * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board.
2077         * config/m68k/linux.h: Likewise.
2078         * config/m68k/m68k-none.h: Likewise.
2079         * config/m68k/netbsd-elf.h: Likewise.
2080         * config/m68k/sgs.h: Likewise.
2081         * config/m68k/m68k.h: Likewise.
2082         * config/m68k/m68k.md: Likewise.
2083         * config/m68k/m68k.c: Likewise.
2084         * doc/md.texi (Machine Constraints): Remove Sun FPA specific
2085         constraints.
2086         * doc/invoke.texi (Option Summary): Remove -mfpa.
2087         (M680x0 Options): Likewise.
2088
2089 2003-05-17  David Edelsohn  <edelsohn@gnu.org>
2090
2091         * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
2092
2093 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2094
2095         * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
2096         * config/sparc/liteelf.h, config/sparc/openbsd64.h,
2097         config/sparc/rtemself.h, config/sparc/sol2-64.h,
2098         config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h:
2099         Update for use of TARGET_SUB_OS_CPP_BUILTINS.
2100
2101 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2102
2103         * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and
2104         TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES.
2105
2106 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
2107
2108         * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h.
2109         * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h,
2110         sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h,
2111         sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h,
2112         sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h,
2113         sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h,
2114         sparc/sysv4.h,
2115         * sparc/sysv4-only.h: New.
2116
2117 2003-05-17  Alan Modra  <amodra@bigpond.net.au>
2118
2119         * function.c (assign_parms): Check for zero size args.
2120
2121 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2122
2123         * cfgloopanal.c (test_for_iteration): Use string concatentation on
2124         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2125         function calls into one.
2126         * dbxout.c (dbxout_symbol): Likewise.
2127         * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise.
2128         * dwarf2asm.c (dw2_asm_output_data_uleb128,
2129         dw2_asm_output_data_sleb128): Likewise.
2130         * genrecog.c (debug_decision_2): Likewise.
2131         * loop.c (emit_prefetch_instructions): Likewise.
2132         * print-rtl.c (print_rtx): Likewise.
2133         * print-tree.c (print_node_brief, print_node): Likewise.
2134         * ra-debug.c (dump_igraph, dump_graph_cost,
2135         dump_static_insn_cost): Likewise.
2136         * ra-rewrite.c (dump_cost): Likewise.
2137         * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2138         * sreal.c (dump_sreal): Likewise.
2139         * unroll.c (unroll_loop, precondition_loop_p): Likewise.
2140         * varasm.c (assemble_vtable_entry): Likewise.
2141
2142         * avr.c (avr_output_function_prologue,
2143         avr_output_function_epilogue, print_operand): Fix format specifier
2144         warnings.
2145         (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED.
2146         * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings.
2147
2148 2003-05-16  Geoffrey Keating  <geoffk@apple.com>
2149
2150         * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING
2151         and ! TARGET_STRING cases.
2152
2153         * doc/cppopts.texi (-undef): Fix texinfo warning.
2154
2155         * doc/cppopts.texi (-H): Document that -H works for PCH files too.
2156         * cppfiles.c (validate_pch): When -H is used, print some information
2157         about PCH files found.
2158
2159 2003-05-16  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2160
2161         * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h.
2162         * config/mips/t-isa3264, config/mips/t-r3900: Likewise.
2163         * config/mips/t-sr71k: Likewise.
2164
2165 2003-05-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2166
2167         * arc.c (arc_output_function_prologue,
2168         arc_output_function_epilogue): Fix format specifier warnings.
2169         * arc.h (LARGE_INT): Fix signed/unsigned warnings.
2170
2171         * v850.c (print_operand): Fix format specifier warnings.
2172
2173         * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format
2174         specifier warnings.
2175
2176         * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix
2177         format specifier warnings.
2178
2179         * ip2k.c (function_prologue, function_epilogue, print_operand):
2180         Fix format specifier warnings.
2181         * ip2k.md: Likewise.
2182
2183         * i960.c (i960_output_function_prologue, i960_print_operand,
2184         i960_print_operand_addr): Fix format specifier warnings.
2185
2186         * i370.c (ascebc, ebcasc): Wrap in macros controlling usage.
2187         (i370_output_function_prologue): Fix format specifier warnings.
2188         * i370.h (PRINT_OPERAND): Likewise.
2189
2190         * fr30.c (fr30_print_operand): Fix format specifier warnings.
2191
2192         * dsp16xx.c (print_operand_address): Fix format specifier warning.
2193         * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers.
2194
2195         * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format
2196         specifier warnings.
2197
2198         * alpha.c (print_operand_address, alpha_start_function,
2199         unicosmk_output_ssib): Use string concatentation on
2200         HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
2201         function calls into one.
2202         * arm.c (arm_print_operand): Likewise.
2203         * cris.c (cris_asm_output_mi_thunk): Likewise.
2204         * frv.c (frv_asm_output_mi_thunk): Likewise.
2205         * ia64.c (ia64_print_operand, process_set): Likewise.
2206         * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk):
2207         Likewise.
2208         * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
2209         * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
2210         * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise.
2211         * pa.h (PRINT_OPERAND_ADDRESS): Likewise.
2212         * rs6000.c (rs6000_va_start, print_operand_address): Likewise.
2213         * s390.c (s390_assemble_integer): Likewise.
2214         * sparc.c (sparc_flat_function_prologue,
2215         sparc_flat_function_epilogue): Likewise.
2216         * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise.
2217         * vax.c (vax_output_mi_thunk): Likewise.
2218
2219         * frv.c (frv_print_operand_memory_reference): Fix format specifier
2220         warning.
2221         (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED.
2222
2223         * m68k.c (m68k_output_function_epilogue): Fix format specifier
2224         warnings.
2225
2226         * stormy16-protos.h (xs_hi_general_operand,
2227         xs_hi_nonmemory_operand): Prototype.
2228         * stormy16.c (xstormy16_output_shift): Fix format specifier
2229         warnings.
2230
2231         * cris.c: Fix format specifier warnings.
2232
2233 2003-05-16  Nick Clifton  <nickc@redhat.com>
2234
2235         * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM.
2236
2237 2003-05-16  Wolfgang Bangerth <bangerth@dealii.org>
2238
2239         * doc/bugreport.texi: Remove most of the of the preface of the
2240         bugs section.
2241
2242 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
2243
2244         * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
2245         .save XX, r0.
2246
2247 2003-05-15  Roger Sayle  <roger@eyesopen.com>
2248
2249         * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo.
2250
2251 2003-05-15  Eric Christopher  <echristo@redhat.com>
2252
2253         * cfgcleanup.c (merge_blocks): Fix return value.
2254
2255 2003-05-15 Eric Christopher <echristo@redhat.com>
2256
2257         * combine.c (expand_compound_operation): Make sure
2258         that zero_extend operation is profitable.
2259
2260 2003-05-15  Richard Henderson  <rth@redhat.com>
2261
2262         * config/alpha/linux.h, config/alpha/linux-elf.h: Remove
2263         code protected by USE_GNULIBC_1.
2264
2265 2003-05-15  Zack Weinberg  <zack@codesourcery.com>
2266
2267         * config.gcc: Purge all targets obsoleted in GCC 3.3.  Also
2268         remove hppa*-*-mpeix* which could not be built, and prune
2269         files from tmake_file= or tm_file= lists that don't exist.
2270
2271         * config/alpha/alpha-interix.h, config/alpha/alpha32.h
2272         * config/alpha/t-interix, config/arm/conix-elf.h
2273         * config/arm/t-arm-aout, config/arm/t-strongarm-coff
2274         * config/arm/unknown-elf-oabi.h, config/i386/win32.h
2275         * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h
2276         * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h
2277         * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h
2278         * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h
2279         * config/m68k/m68k-psos.h, config/m68k/mot3300.h
2280         * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h
2281         * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h
2282         * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h
2283         * config/m68k/t-mot3300, config/m68k/t-mot3300-gald
2284         * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld
2285         * config/m68k/tower-as.h, config/m68k/tower.h
2286         * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h
2287         * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh
2288         * config/m88k/m88k-protos.h, config/m88k/m88k.c
2289         * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h
2290         * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas
2291         * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h
2292         * config/mips/rtems64.h, config/mips/sni-gas.h
2293         * config/mips/sni-svr4.h, config/mips/t-ecoff
2294         * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h
2295         * config/mn10200/mn10200.c, config/mn10200/mn10200.h
2296         * config/mn10200/mn10200.md, config/mn10200/t-mn10200
2297         * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h
2298         * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h
2299         * config/romp/romp-protos.h, config/romp/romp.c
2300         * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h
2301         * config/rs6000/aix3newas.h, config/rs6000/mach.h
2302         * config/sparc/bsd.h, config/sparc/hal.h
2303         * config/sparc/linux-aout.h, config/sparc/lynx-ng.h
2304         * config/sparc/lynx.h, config/sparc/netbsd.h
2305         * config/sparc/sp86x-aout.h, config/sparc/splet.h
2306         * config/sparc/sun4gas.h, config/sparc/sun4o3.h
2307         * config/sparc/sunos4.h, config/sparc/t-chorus-elf
2308         * config/sparc/t-halos, config/sparc/t-sparcbare
2309         * config/sparc/t-splet, config/sparc/t-sunos41
2310         * config/v850/rtems.h: Delete file.
2311
2312 2003-05-15  Aldy Hernandez  <aldyh@redhat.com>
2313
2314         * config/rs6000/rs6000-protos.h (function_value): Protoize.
2315
2316         * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function.
2317
2318         * config/rs6000/rs6000.c (rs6000_function_value): New.
2319
2320 2003-05-15  Philip Blundell  <philb@gnu.org>
2321
2322         * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
2323         All uses updated.
2324         (arm_tune_xscale): New variable.
2325         (arm_override_options): Set it.
2326         (arm_adjust_cost): Use it in place of arm_arch_xscale.
2327         (arm_gen_load_multiple): Likewise.
2328         (arm_gen_store_multiple): Likewise.
2329         * config/arm/arm.md (is_xscale): Likewise.
2330         * config/arm/arm.h (arm_tune_xscale): Declare.
2331
2332 2003-05-15  Philip Blundell  <philb@gnu.org>
2333
2334         PR target/10730
2335         * config/arm/arm.c (adjacent_mem_locations): Reject offsets
2336         involving invalid constants.
2337
2338 2003-05-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2339
2340         * pa.c (hppa_expand_prologue): Remove blockage.
2341
2342 2003-05-15  Wolfgang Bangerth <bangerth@dealii.org>
2343
2344         * doc/bugreport.texi: Remove most of the bug reporting
2345         instructions and merge them into bugs.html.
2346
2347 2003-05-14  Matt Kraai  <kraai@alumni.cmu.edu>
2348
2349         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
2350         g_switch_value to unsigned HOST_WIDE_INT.
2351
2352 2003-05-14  Eric Christopher  <echristo@redhat.com>
2353
2354         * combine.c: Fix header comments.
2355         (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
2356         to all calls and prototype.
2357
2358 2003-05-14  Roger Sayle  <roger@eyesopen.com>
2359
2360         PR optimization/10764
2361         * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3):
2362         Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1).
2363         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3):  Likewise,
2364         add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1).
2365         (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match
2366         the corresponding *fyl2x_?fxf3 instructions.
2367
2368 2003-05-14  Bob Wilson  <bob.wilson@acm.org>
2369
2370         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59.
2371         * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16,
2372         XCHAL_HAVE_L32R): New.
2373         * config/xtensa/xtensa-protos.h (non_const_move_operand,
2374         xtensa_load_constant, xtensa_function_prologue,
2375         xtensa_function_epilogue): Delete prototypes.
2376         (xtensa_expand_prologue): New.
2377         * config/xtensa/xtensa.c (frame_size_const,
2378         TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG,
2379         non_const_move_operand, xtensa_load_constant, xtensa_reorg,
2380         xtensa_function_prologue): Delete.
2381         (add_operand, xtensa_mem_offset): Formatting.
2382         (move_operand): If the const16 option is available, allow any SFmode
2383         and SImode constants.
2384         (xtensa_emit_move_sequence): Inline the former contents of
2385         xtensa_load_constant with modifications to handle the const16 option.
2386         (override_options): Add xtensa_char_to_class['W'] and set it to
2387         the general register class only if the const16 option is enabled.
2388         Fix formatting.  Disallow PIC when using the const16 option.
2389         (print_operand): Reorganize to switch on "letter" instead of the
2390         RTL code.  Add output_operand_lossage calls for invalid cases.
2391         Add support for 't' and 'b' letters.
2392         (xtensa_expand_prologue): New function to replace
2393         xtensa_function_prologue and xtensa_reorg.
2394         (xtensa_function_epilogue): Declare this as static.  Delete code
2395         to print the retw.n or retw instruction.
2396         (xtensa_return_addr): Use A0_REG instead of 0.
2397         (xtensa_rtx_costs): Add costs for using the const16 option.
2398         * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New.
2399         (TARGET_DEFAULT): Add CONST16 if L32R instructions not available.
2400         (TARGET_SWITCHES): Add "const16" and "no-const16".
2401         (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter.
2402         (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not
2403         using the const16 option.
2404         (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn.
2405         (TRAMPOLINE_SIZE): Change from 49 to 59.
2406         (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline.
2407         (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses
2408         when using the const16 option.
2409         (PREDICATE_CODES): Delete non_const_move_operand.
2410         * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and
2411         UNSPECV_ENTRY.
2412         (movdi, movdf): If the source is a constant, always expand to a
2413         sequence of movsi insns.
2414         (movdi_internal, movdf_internal): Remove alternative using l32r insns.
2415         (movsi_internal, movsf_internal): Add alternative using const16 insns.
2416         (movsf): Add const16 support.
2417         (entry, prologue, epilogue): New.
2418         (set_frame_ptr): Add missing mode for unspec_volatile operation.
2419         Likewise for subsequent split pattern.
2420         * doc/invoke.texi (Option Summary, Xtensa Options): Document new
2421         "-mconst16" and "-mno-const16" options.
2422
2423 2003-05-14  Richard Henderson  <rth@redhat.com>
2424
2425         * config/ia64/ia64.c (ia64_expand_load_address): Force destination
2426         to be DImode register.  Merge load_symptr.
2427         * config/ia64/ia64.md (load_symptr): Remove.
2428
2429 2003-05-14  Richard Henderson  <rth@redhat.com>
2430
2431         * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from
2432         DEFERRED_CONSTANT_P.
2433         * integrate.c (copy_rtx_and_substitute): Update use.
2434         * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL
2435         to the copy generated.
2436         (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN
2437         of the constant to see if we should emit.
2438         (mark_constant): Similarly.
2439         (output_constant_def_contents): Set TREE_ASM_WRITTEN.
2440
2441 2003-05-14  David Edelsohn  <edelsohn@gnu.org>
2442
2443         * config/rs6000/rs6000.md (movsi_internal2): Use compare for self
2444         move record condition.
2445         (movdi_internal2): Same.
2446
2447 2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
2448
2449         * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here.
2450         (GCOV_TAG_*) Force type to gcov_unsigned_t.
2451         (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New.
2452         (struct gcov_var): Remove modified. Add start, length, offset,
2453         overread. Have buffer array for libgcov.
2454         (gcov_sync, gcov_seek): Definitions moved to gcov-io.c.
2455         (gcov_position, gcov_rewrite, gcov_is_eof): Adjust.
2456         * gcov-io.c (gcov_open): Set mode, do not read anything.
2457         (gcov_close): Write final block.
2458          (gcov_write_block, gcov_allocate): New.
2459         (gcov_write_bytes): Make static. Write or allocate buffer.
2460         (gcov_write_unsigned, gcov_write_counter): Buffer can never be
2461         null.
2462         (gcov_write_string): Adjust.
2463         (gcov_write_tag)
2464         (gcov_write_length): Adjust. Flush the block.
2465         (gcov_write_tag_length): Buffer can never be null.
2466         (gcov_read_bytes): Make static. Read in block.
2467         (gcov_sync): Moved here. Adjust.
2468         (gcov_seek): Moved here. Adjust.
2469         * coverage.c (read_counts_file): Adjust.
2470         * gcov-dump.c (print_prefix): Add position parameter.
2471         (flag_dump_positions): New flag.
2472         (options, main, print_usage): Add it.
2473         (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters,
2474         tag_summary): Adjust.
2475         * gcov.c (read_graph_file, read_count_file): Adjust.
2476         * libgcov.c (gcov_exit): Adjust.
2477
2478         * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files
2479         (libgcov.a): Depend on libgcc.a.
2480         (gcov.o, gcov-dump.o): Add gcov-io.c.
2481         * mklibgcc.in (libgcov_c_dep): Use $(srcdir).
2482
2483         * loop.c (check_dbra_loop): Factor common test.
2484
2485 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
2486
2487         * doc/md.texi (Automaton pipeline description): Grammar fixes.
2488
2489 2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
2490
2491         * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
2492         (TARGET_INITIALIZER): Include it.
2493         * target.h (struct gcc_target): Add machine_dependent_reorg field.
2494         * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
2495         * system.h: Poison MACHINE_DEPENDENT_REORG.
2496
2497         * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
2498         * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
2499         * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2500         (alpha_handle_trap_shadows): Remove "first insn" parameter.
2501         (alpha_align_insns): Likewise.
2502         (alpha_reorg): Likewise.  Make static.  Update calls to above
2503         functions.
2504
2505         * config/arm/arm-protos.h (arm_reorg): Remove declaration.
2506         * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
2507         * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2508         (arm_reorg): Remove parameter.  Make static.
2509
2510         * config/avr/avr-protos.h (machine_dependent_reorg): Remove.
2511         * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
2512         * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2513         (avr_reorg): Renamed from machine_dependent_reorg.  Make static.
2514         Remove parameter.
2515
2516         * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
2517         * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
2518         * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2519         (c4x_reorg): Renamed from c4x_process_after_reload.  Make static.
2520         Remove parameter.
2521
2522         * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
2523         * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
2524         * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
2525
2526         * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
2527         * config/frv/frv.c: Remove orphaned comment.
2528
2529         * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
2530         * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
2531         * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2532         (ix86_reorg): Renamed from x86_machine_dependent_reorg.  Make static.
2533         Remove parameter.
2534
2535         * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
2536         * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
2537         * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2538         (emit_insn_group_barriers): Remove "first insn" parameter.
2539         (emit_all_insn_group_barriers): Likewise.
2540         (ia64_reorg): Likewise.  Make static.  Update calls to above functions.
2541         (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
2542
2543         * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
2544         * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
2545         * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2546         (ip2k_reorg): Renamed from machine_dependent_reorg.  Make static.
2547         Remove parameter.
2548
2549         * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
2550         * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
2551         * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2552         (m68hc11_reorg): Make static.  Remove parameter.
2553
2554         * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
2555         * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
2556         * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2557         (conditionalize_optimization): Remove parameter.
2558         (mcore_reorg): Renamed from mcore_dependent_reorg.  Remove parameter.
2559         Make static.  Update call to conditionalize_optimization.
2560
2561         * config/mips/mips-protos.h (machine_dependent_reorg): Remove.
2562         * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
2563         * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2564         (mips_reorg): Renamed from machine_dependent_reorg.  Remove parameter.
2565         Make static.
2566
2567         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
2568         * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
2569         * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2570         (mmix_reorg): Renamed from mmix_machine_dependent_reorg.  Make static.
2571         Remove parameter.
2572
2573         * config/pa/pa-protos.h (pa_reorg): Remove declaration.
2574         * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
2575         * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2576         (pa_combine_instructions): Remove "first insn" parameter.
2577         (remove_useless_addtr_insns): Likewise.
2578         (pa_reorg): Likewise.  Make static.  Update calls to above functions.
2579
2580         * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
2581         commented-out definition.
2582
2583         * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
2584         * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
2585         * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2586         (s390_reorg): Renamed from s390_machine_dependent_reorg.  Make static.
2587         Remove parameter.
2588
2589         * config/sh/sh-protos.h (machine_dependent_reorg): Remove.
2590         * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
2591         * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2592         (sh_reorg): Renamed from machine_dependent_reorg.  Make static.
2593         Remove parameter.
2594         (sh_output_mi_thunk): Call sh_reorg directly.
2595         * config/sh/sh.md: Update comment.
2596
2597         * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
2598         commented-out definition.
2599
2600         * config/v850/v850-protos.h (v850_reorg): Remove declaration.
2601         * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
2602         * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2603         (v850_reorg): Make static.  Remove parameter.
2604
2605         * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
2606         * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
2607         * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2608         (xtensa_reorg): Make static.  Remove parameter.
2609
2610         * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
2611         (TARGET_MACHINE_DEPENDENT_REORG): Document.
2612
2613 2003-05-13  Richard Henderson  <rth@redhat.com>
2614
2615         * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
2616         the old decl had instantiated DECL_RTL.
2617
2618 2003-05-13  Mike Stump  <mrs@apple.com>
2619
2620         * doc/invoke.texi (Option Summary): Kill off documentation for -$.
2621
2622 2003-05-13  Janis Johnson  <janis187@us.ibm.com>
2623
2624         * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect
2625         HOST_WIDE_INT argument.
2626
2627 2003-05-13  Jason Merrill  <jason@redhat.com>
2628
2629         * tree.h (STRIP_MAIN_TYPE_NOPS): New macro.
2630
2631         * tree.c (iterative_hash_expr): New fn.
2632
2633         * c-semantics.c (emit_local_var): Don't mess with temp slots if
2634         there's no initializer.
2635
2636 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
2637
2638         * final.c (final_scan_insn): Apply the effects of frame-related
2639         delay slot insns before emitting a delayed branch.
2640
2641 2003-05-13  Nick Clifton  <nickc@redhat.com>
2642
2643         * config/mcore/mcore.md (jump): Use emit_jump_insn.
2644
2645 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2646
2647         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second
2648         parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT.
2649
2650 2003-05-12  DJ Delorie  <dj@redhat.com>
2651
2652         * expr.c (move_by_pieces): Honor the alignment of TO and FROM.
2653         (emit_push_insn): Don't use push when the source alignment is less
2654         than the stack's push rounding.
2655
2656 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
2657
2658         * diagnostic.c (output_format): Add support for %m.
2659         (output_printf, output_verbatim, diagnostic_set_info,
2660         verbatim): Set err_no field of the text_info structure being
2661         initialized.
2662         (fatal_io_error): Delete function.
2663         * diagnostic.h (text_info): Add err_no field.
2664         * toplev.h (fatal_io_error): Delete prototype.
2665
2666         * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c
2667         * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c
2668         * objc/objc-act.c: Replace all calls to fatal_io_error with
2669         calls to fatal_error; add ": %m" to the end of all the affected
2670         error messages.
2671
2672 2003-05-13  Zack Weinberg  <zack@codesourcery.com>
2673
2674         * varasm.c (notice_rtl_inlining_of_deferred_constant): New function.
2675         * rtl.h: Prototype it.
2676         * integrate.c (copy_rtx_and_substitute <SYMBOL_REF>): Call it
2677         when appropriate.
2678
2679 2003-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2680
2681         * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
2682         ("*iorsi3_oi"): Likewise.
2683
2684 2003-05-13  Richard Earnshaw  <rearnsha@arm.com>
2685
2686         * arm.md (compare_scc): Use shorter sequence for EQ case.
2687         (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns.
2688         (and_scc_scc): Ensure split only applies when there is a dominance
2689         of the comparisons.
2690         (and_scc_scc_nodom): New insn-and-split pattern.
2691
2692 2003-05-13  Richard Sandiford  <rsandifo@redhat.com>
2693
2694         * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly
2695         to _Unwind_SetGRPtr().
2696
2697 2003-05-13  Michael Eager <eager@mvista.com>
2698
2699         * Makefile.in: Initialize program_transform_cross_name from
2700         @program_transform_name@ instead of target_alias.
2701
2702 2003-05-12  Janis Johnson  <janis187@us.ibm.com>
2703             Alan Modra  <amodra@bigpond.net.au>
2704             Jakub Jelinek  <jakub@redhat.com>
2705
2706         * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
2707         * configure: Rebuild.
2708         * config/rs6000/rs6000-protos.h: Update.
2709         * config/rs6000/rs6000.c (rs6000_tls_size): New.
2710         (rs6000_tls_size_string): New.
2711         (rs6000_parse_tls_size_option): New.
2712         (rs6000_legitimize_tls_address): New.
2713         (rs6000_tls_get_addr): New.
2714         (rs6000_got_sym): New.
2715         (rs6000_tls_symbol_ref): New.
2716         (rs6000_tls_symbol_ref_1): New.
2717         (rs6000_get_some_local_dynamic_name): New.
2718         (rs6000_get_some_local_dynamic_name_1): New.
2719         (TARGET_HAVE_TLS): New.
2720         (TARGET_CANNOT_FORCE_CONST_MEM): New.
2721         (rs6000_override_options): Handle -mtls-size option.
2722         (constant_pool_expr_1): Handle TLS symbols.
2723         (rs6000_legitimize_address): Handle TLS symbols.
2724         (rs6000_tls_referenced_p): New.
2725         (rs6000_legitimate_address): Handle TLS symbols.
2726         (rs6000_emit_move): Handle TLS symbols.
2727         (print_operand): Handle TLS symbols.
2728         (uses_TOC): Handle TLS symbols.
2729         (rs6000_emit_prologue): Use symbol for unspec constant.
2730         * config/rs6000/rs6000.h (HAVE_AS_TLS): New.
2731         (some_ld_name): New.
2732         (LEGITIMATE_CONSTANT_P): Handle TLS symbols.
2733         (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
2734         (PREDICATE_CODES): Add rs6000_tls_symbol_ref.
2735         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
2736         Support TLS.
2737         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
2738         tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
2739         tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
2740         tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
2741         tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
2742         tls_tls_64): New.
2743         * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
2744
2745 2003-05-12  Neil Booth  <neil@cat.daikokuya.co.uk>
2746
2747         * Makefile.in (stage2_build, stage3_build, stage4_build):
2748         Set BUILD_CC to the same as CC.
2749
2750 2003-05-12  Neil Booth  <neil@daikokuya.co.uk>
2751
2752         * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards.
2753
2754 2003-05-12  Andreas Schwab  <schwab@suse.de>
2755
2756         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp'
2757         as unused.
2758         (bundling): Initialize 'pos'.
2759         (ia64_expand_builtin): Initialize 'rmode'.
2760
2761 2003-05-12  David Edelsohn  <edelsohn@gnu.org>
2762
2763         * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT.
2764         (ASM_OUTPUT_ALIGNED_COMMON): Same.
2765         (ASM_OUTPUT_LOCAL): Same.
2766
2767 Mon May 12 21:53:29 CEST 2003  Jan Hubicka  <jh@suse.cz>
2768
2769         * varasm.c (output_constant):  Fix underflow.
2770
2771 2003-05-12  Mark Mitchell  <mark@codesourcery.com>
2772
2773         PR other/10745
2774         * configure.in: Correct detection of GNU ld version number.
2775         * configure: Regenerated.
2776
2777 2003-05-12  Zack Weinberg  <zack@codesourcery.com>
2778
2779         * diagnostic.c (diagnostic_for_decl): Take a
2780         diagnostic_context argument.  Restructure to be consistent
2781         with diagnostic_report_diagnostic.
2782         (diagnostic_count_diagnostic): Now static.  Take a
2783         diagnostic_info argument, not just a diagnostic_t.  Some code
2784         moved here from internal_error.  Move a case label for
2785         clarity.
2786         (diagnostic_action_after_output): New function.  Code moved
2787         here from internal_error and fatal_error.
2788         (bug_report_request): New #define so that this text appears in
2789         only one place.
2790         (diagnostic_report_diagnostic): Update to match changes to
2791         diagnostic_count_diagnostic.  Call diagnostic_action_after_output.
2792         (diagnostic_set_info): Call gettext here.
2793
2794         (pedwarn): Update comment.  Don't call gettext here.
2795         (sorry): Use report_diagnostic.  Don't call gettext here.
2796         (fatal_error): Remove final fnotice and exit, but call
2797         real_abort to prevent warnings about noreturn function returning.
2798         (internal_error): Likewise.  Don't do ICE suppression here nor
2799         call context->internal_error.
2800         (warning_with_decl): Suppress for decls in system headers.
2801         Adjust call to diagnostic_for_decl.
2802         (pedwarn_with_decl): Likewise.
2803         (error_with_decl): Adjust call to diagnostic_for_decl.
2804         (error_recursion): Use bug_report_request.
2805
2806         * diagnostic.h: Remove prototype of diagnostic_count_diagnostic.
2807         * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call
2808         diagnostic_count_diagnostic.
2809
2810 2003-05-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2811
2812         * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch.
2813
2814 Mon May 12 15:57:54 CEST 2003  Jan Hubicka  <jh@suse.cz>
2815
2816         * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT
2817         * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning.
2818         * mips/mips.h (ASM_OUTPUT_SKIP):  Fix typo in the previous patch.
2819
2820 2003-05-12  Roger Sayle  <roger@eyesopen.com>
2821
2822         * doc/rtl.texi: Document zero_extract as a valid destination
2823         of a set insn.
2824
2825 2003-05-12  Richard Earnshaw  <rearnsha@arm.com>
2826
2827         * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with
2828         '.'.  Change all local symbol definitions and references to use LSYM.
2829
2830 Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
2831
2832         * expr.h (assemble_static_space): Update prototype.
2833         * output.h (assemble_zeros, output_constant): Likewise.
2834         * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
2835         * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
2836         it 64bit clean.
2837         * elf.h (ASM_OTUPUT_SKIP): Likewise.
2838         * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
2839         * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2840         Expect HOST_WIDE_INT operand.
2841         * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2842         Expect HOST_WIDE_INT operand.
2843         * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2844         Expect HOST_WIDE_INT operand.
2845         * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
2846         HOST_WIDE_INT operand.
2847         * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
2848         ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
2849         * aout.h (ASM_OTUPUT_SKIP): Likewise.
2850         * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2851         * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
2852         * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
2853         * frv.h (ASM_OTUPUT_SKIP): Likewise.
2854         * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
2855         * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2856         Make it 64bit
2857         clean.
2858         * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
2859         * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2860         Make it 64bit clean.
2861         * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
2862         * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
2863         HOST_WIDE_INT operand
2864         * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2865         Expect HOST_WIDE_INT operand
2866         * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
2867         * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
2868         ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
2869         * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2870         Likewise.
2871         * m32r.h (ASM_OUTPUT_COMMON): Likewise.
2872         * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2873         Likewise.
2874         * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2875         * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2876         * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2877         ASM_OUTPUT_SKIP): Likewise.
2878         * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
2879         Likewise.
2880         * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2881         ASM_OUTPUT_SKIP): Likewise.
2882         * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2883         ASM_OUTPUT_SKIP): Likewise.
2884         * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
2885         * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
2886         ASM_OUTPUT_SKIP): Likewise.
2887         * sgs.h (ASM_OUTPUT_SKIP): Likewise.
2888         * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
2889         ASM_OUTPUT_SKIP): Likewise.
2890         * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
2891         Likewise.
2892         * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
2893         * iris.h (ASM_OUTPUT_LOCAL): Likewise.
2894         * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
2895         * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
2896         ASM_OUTPUT_SKIP): Make it 64bit clean.
2897         * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
2898         Make it 64bit clean.
2899         * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
2900         ASM_OUTPUT_SKIP): Make it 64bit clean.
2901         * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
2902         64bit clean.
2903         * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
2904         HOST_WIDE_INT argument
2905         * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
2906         * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
2907         HOST_WIDE_INT argument
2908         * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
2909         * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
2910         * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
2911         * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
2912         HOST_WIDE_INT argument
2913         * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
2914         * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
2915         * varasm.c (asm_output_bss, asm_output_aligned_bss,
2916         asm_emit_uninitialized, assemble_zeros, assemble_static_space):
2917         HOST_WIDE_INT argument
2918
2919 2003-05-10  Steven Bosscher  <steven@gcc.gnu.org>
2920
2921         * cgraphunit.c (cgraph_create_edges): Drop walk_tree in
2922         favor of walk_tree_without_duplicates.  Add comments.
2923
2924 2003-05-12  Josef Zlomek  <zlomekj@suse.cz>
2925
2926         * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type.
2927         (struct alloc_pool_def): New element 'id'.
2928         * alloc-pool.c (fancy_abort): Extern function prototype.
2929         (abort): Macro which uses fancy_abort.
2930         (struct allocation_object_def): New structure.
2931         (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro.
2932         (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro.
2933         (last_id): New variable.
2934         (create_alloc_pool): Add the offset of u.data to size of element,
2935         increase and use last_id.
2936         (free_alloc_pool): Do the checking only when ENABLE_CHECKING.
2937         (pool_alloc): Likewise. Set ID for elements.
2938         (pool_free): Check whether the PTR was allocated from POOL.
2939
2940 2003-05-11  Richard Henderson  <rth@redhat.com>
2941
2942         PR c/10675
2943         * c-decl.c: Include hashtab.h.
2944         (detect_field_duplicates): New.
2945         (finish_struct): Use it.
2946         * Makefile.in (c-decl.o): Update.
2947         * c-parse.in (structsp_attr): Nreverse component_decl_list results.
2948         (component_decl_list, component_decl_list2,
2949         components, components_notype): Build list in reverse order.
2950         (enumlist): Clarify docs.  Use TREE_CHAIN not chainon.
2951
2952         * tree.c (chainon): Special case op2 null as well.
2953         Reorg for clarity.
2954
2955 2003-05-11  Roger Sayle  <roger@eyesopen.com>
2956
2957         * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns
2958         to implement log, logf and logl built-ins as inline x87 intrinsics.
2959         (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction.
2960         (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn
2961         patterns for x87's "fyl2x" instruction, used by log?f2 patterns.
2962
2963         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like
2964         UNSPEC_FPATAN, i.e. replaces two stack operands with single result.
2965
2966 2003-05-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2967
2968         * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o.
2969
2970         * sparc.c (print_operand): Fix uninitialized warning.
2971
2972 2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2973
2974         * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
2975         real insns.
2976         * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
2977         condition.
2978
2979 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
2980
2981         * doc/cpp.texi: Fix typos.
2982
2983 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
2984
2985         * config/s390/s390.c (s390_function_arg_float): New function.
2986         (s390_function_arg_pass_by_reference): Use it.
2987         (s390_function_arg_advance): Likewise.
2988         (s390_function_arg): Likewise.
2989         (s390_va_arg): Likewise
2990
2991 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
2992
2993         * coverage.h (coverage_counter_alloc): New function.
2994         * function.h (struct function): Remove arc_profile flag.
2995         * coverage.c (fn_ident): Remove.
2996         (fn_b_ctrs, no_coverage): New.
2997         (get_coverage_counts): Use current_function_funcdef_no.
2998         (coverage_counter_alloc): New.
2999         (coverage_counter_ref): Adjust.
3000         (coverage_begin_output): Check no_coverage. Use
3001         current_function_funcdef_no.
3002         (coverage_end_function): Likewise.
3003         (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather
3004         than clearing flag_inline_functions. Do not clear arc_profile
3005         flag.
3006         * function.c (prepare_function_start): Do not set arc_profile
3007         flag.
3008         * profile.c (instrument_edges): Return number of instrumented
3009         edges. Use a for loop.
3010         (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX
3011         local to here and simplify. Use profile_arc_flag not arc_profile
3012         flag.
3013         (find_spanning_tree): Reformat.
3014         * toplev.c (rest_of_compilation): Use profile_arc_flags and
3015         flag_test_coverage rather than arc_profile flag.
3016
3017 2003-05-11  Gabriel Dos Reis <gdr@integrable-solutions.net>
3018
3019         * doc/invoke.texi (Wctor-dtor-privacy): Update documentation.
3020
3021 2003-05-11  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3022
3023         * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case.
3024
3025 2003-05-11  Bruno Haible  <bruno@clisp.org>
3026
3027         * cppfiles.c (find_or_create_entry): Preserve errno.
3028
3029 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
3030
3031         * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
3032         cpplib as it's a Standard Predefined Macro.
3033         * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
3034         * cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
3035         __STDC_HOSTED__ appropriately.
3036         * cpplib.h (_cpp_init_builtins): Update.
3037         * fix-header.c (read_scan_file): Update.
3038         * doc/cpp.texi, doc/cppopts.texi: Update documentation.
3039
3040 2003-05-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3041
3042         PR C++/689
3043         PR C++/9257
3044         * c-opts.c (c_common_decode_option): Don't set
3045         warn_ctor_dtor_privacy wen -Wall.
3046         * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default.
3047
3048 2003-05-10  Alexandre Oliva  <aoliva@redhat.com>
3049
3050         * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's
3051         patch.
3052
3053 2003-05-10  Zack Weinberg  <zack@codesourcery.com>
3054
3055         * diagnostic.c: Reorder functions for clarity, putting all the
3056         functions in the "error" family next to each other, and
3057         likewise all the functions in the "error_with_decl" family.
3058         Some other routines were moved too.  Add comments.
3059         (vbuild_message_string): Fold into sole caller.
3060
3061
3062 2003-05-11  Ulrich Weigand  <uweigand@de.ibm.com>
3063
3064         * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
3065         (EH_RETURN_HANDLER_RTX): Likewise.
3066         (expand_builtin_eh_return): Do not copy stack adjustment
3067         if EH_RETURN_STACKADJ_RTX is not defined.
3068         (expand_eh_return): Likewise.  Also, do not pass stack
3069         adjustment as argument to the eh_return pattern.
3070         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
3071         because EH_RETURN_STACKADJ_RTX is not defined.
3072         * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
3073         is not defined, treat stack pointer like a regular register.
3074         (uw_init_context_1): Set up fake initial stack pointer register.
3075         (uw_install_context_1): Do not compute stack adjustment if
3076         EH_RETURN_STACKADJ_RTX is not defined.
3077
3078         * config/i386/i386.md ("eh_return"): Remove first argument.
3079         * config/mips/mips.md ("eh_return"): Likewise.
3080         * config/rs6000/rs6000.md ("eh_return"): Likewise.
3081         * config/sh/sh.md ("eh_return"): Likewise.
3082
3083         * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
3084
3085 2003-05-10  Alexander Aganichev  <aaganichev@yandex.ru>
3086
3087         * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
3088
3089 2003-05-10  Nathan Sidwell  <nathan@codesourcery.com>
3090
3091         * defaults.h (GCOV_TYPE_SIZE): Remove.
3092         * gcov-io.h (gcov_type): Set to specific mode int on target.
3093         (gcov_unsigned_t, gcov_position_t): New.
3094         (GCOV_TYPE_NODE): New.
3095         (GCOV_TAG_SUMMARY_LENGTH): Adjust.
3096         (GCOV_COUNTERS_SUMMABLE): New.
3097         (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn,
3098         gcov_ctr_info, gcov_info): Adjust types.
3099         (gcov_var): Adjust types.
3100         (gcov_write_unsigned, gcov_write_tag,
3101         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3102         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3103         (gcov_position, gcov_sync, gcov_seek): Adjust gcov types.
3104         * gcov-io.c (gcov_write_unsigned, gcov_write_tag,
3105         gcov_write_length, gcov_write_tag_length, gcov_write_summary,
3106         gcov_read_unsigned, gcov_read_summary): Adjust gcov types.
3107         * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit,
3108         __gcov_init, __gcov_merge_add): Adjust gcov types.
3109         * coverage.c (ctr_merge_functions): Constify.
3110         (ctr_names): New.
3111         (read_counts_file): Adjust gcov types. Only summarize & merge
3112         summable counters.
3113         (coverage_counter_ref): Use GCOV_TYPE_NODE.
3114         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
3115         build_ctr_info_value, build_gcov_info): Adjust types.
3116         * profile.c (branch_prob): Adjust gcov types.
3117         * gcov_dump (dump_file): Adjust gcov types.
3118
3119 2003-05-10  Richard Earnshaw  <rearnsha@arm.com>
3120
3121         * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New
3122         constants.
3123         (ior_scc_scc, and_scc_scc): New insn_and_split patterns.
3124         * arm.c (arm_select_dominance_cc_mode): Renamed from
3125         select_dominance_cc_mode, no-longer static.  Use DOM_CC... constants.
3126         Callers updated.
3127         * arm-protos.h (arm_select_dominance_cc_mode): Add prototype.
3128
3129 2003-05-09  Roger Sayle  <roger@eyesopen.com>
3130
3131         * config/alpha/alpha.c (alpha_start_function): Declare frame_size
3132         as unsigned to avoid signed/unsigned comparison warnings.
3133
3134 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3135
3136         * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n"
3137         instruction if the Xtensa density option is enabled.
3138
3139 2003-05-09  Matt Kraai <kraai@alumni.cmu.edu>
3140
3141        * mklibgcc.in: Remove extra quotes.
3142
3143 2003-05-09  Mark Mitchell  <mark@codesourcery.com>
3144
3145         * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation
3146         of int_ftype_void.
3147
3148 2003-05-09  Alexandre Oliva  <aoliva@redhat.com>
3149
3150         * reload1.c (reload_cse_move2add): Don't turn an implicit
3151         truncation into a self-set in the narrow mode.
3152
3153 2003-05-09  Richard Earnshaw  <rearnsha@arm.com>
3154
3155         * arm.md (clzsi2): The CLZ instruction is predicable.
3156
3157 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
3158
3159         * config/xtensa/xtensa.c: Formatting.
3160
3161 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3162
3163         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
3164         instead of TREE_OPERAND to access the operand of a
3165         CONSTRUCTOR node.
3166
3167 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
3168
3169         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
3170         one operand.
3171
3172 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3173
3174         * toplev.h (warning_with_file_and_line): Don't declare.
3175         (error_with_file_and_line): Likewise.
3176         * diagnostic.c (error_with_file_and_line): Remove.
3177         (warning_with_file_and_line): Likewise.
3178
3179 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
3180
3181         * c-parse.in (if_stmt_locus): New object.
3182         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
3183         (select_or_iter_stmt rule): Likewise.
3184         (if_stmt_file): Remove.
3185         (if_stmt_line): Likewise.
3186         * jump.c: include "diagnostic.h"
3187         (never_reached_warning): Don't use warning_with_file_and_line.
3188         * Makefile.in (jump.o): Add dependce on diagnostic.h
3189
3190 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
3191
3192         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
3193         Move code handling pieces not larger than a word to..
3194         * function.c (assign_parms): ..here, but use change_address instead
3195         of adjust_address and operand_subword, and expand_binop instead of
3196         expand_shift.  Adjust calls to move_block_from_reg.
3197         * expr.h (move_block_from_reg): Update declaration.
3198         (copy_blkmode_from_reg): Formatting.
3199         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
3200         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
3201         move_block_from_reg calls.
3202         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
3203         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
3204         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
3205         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
3206         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
3207         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
3208         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
3209         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
3210         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
3211
3212 2003-05-08  DJ Delorie  <dj@redhat.com>
3213
3214         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
3215         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
3216         variable-sized types).
3217         (xstormy16_function_arg): New.  Pass them that way too.
3218         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
3219         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
3220
3221 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
3222
3223         * mklibgcc.in: Use mkinstalldirs when installing multilib
3224         directories.
3225
3226 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
3227
3228         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
3229         instead of CODE_FOR_jump
3230
3231 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
3232
3233         * objc/objc-act.c (error_with_ivar): Don't use
3234         error_with_file_and_line.
3235         (warn_with_method): Don't use warning_with_file_and_line.
3236
3237 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3238
3239         * stmt.c (emit_locus): New macro.
3240         (emit_filename): Remove.
3241         (emit_lineno): Likewise.
3242         (struct stmt_status): Replace members x_emit_filename and
3243         x_emit_lineno with x_emit_locus.
3244         (set_file_and_line_for_stmt): Adjust.
3245         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
3246         (warn_if_unused_value): Likewise.
3247         (check_seenlabel): Likewise.
3248
3249 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3250
3251         * c-decl.c (define_label): Tidy.  Don't use any of
3252         error_with_file_and_line or warning_with_file_and_file.
3253         (pending_xref_error): Likewise.
3254         (store_parm_decls): Likewise.
3255         (current_function_prototype_locus): New object.  Package from
3256         current_function_prototype_file and current_function_prototype_line.
3257         (start_function): Use it.
3258         (current_function_prototype_file): Remove.
3259         (current_function_prototype_line): Remove;
3260
3261 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3262
3263         * builtins.c (readonly_data_expr): New function.
3264         (expand_builtin_memmove): Optimize any rodata source, not just
3265         strings.
3266
3267 2003-05-07  David Mosberger <davidm@hpl.hp.com>
3268
3269         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
3270
3271 2003-05-07  Richard Henderson  <rth@redhat.com>
3272
3273         * config/i386/i386.c (ix86_split_long_move): Fix base register
3274         mode for XFmode splits for TARGET_64BIT.
3275
3276 2003-05-07  Richard Henderson  <rth@redhat.com>
3277
3278         * sched-ebb.c (schedule_ebb): Supply the correct starting
3279         block number to save_line_notes.
3280
3281 2003-05-07  Richard Henderson  <rth@redhat.com>
3282
3283         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
3284         (dump_file): Likewise.
3285
3286 2003-05-07  David Mosberger <davidm@hpl.hp.com>
3287
3288         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
3289         forget to preserve gp.
3290         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
3291
3292         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
3293         .prologue directive.
3294         Use .skip instead of data8 for .bss section to make Intel
3295         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
3296         explicit in the .mib bundles and remove the unnecessary stop
3297         bits.  Replace local labels with normal labels, to make ias
3298         happy.  Don't register __do_global_ctors_aux here, do it in
3299         crtend.asm instead.
3300
3301         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
3302         __do_global_ctors_aux in .init_array section instead of
3303         declaring it as a hidden global.  Replace local labels with
3304         ordinary labels to make ias happy.
3305
3306 2003-05-07  Richard Henderson  <rth@redhat.com>
3307
3308         PR c++/10570
3309         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
3310         * flags.h, toplev.c, doc/invoke.texi: Likewise.
3311
3312         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
3313         * unwind.inc (_Unwind_DeleteException): Check for null
3314         exception_cleanup.
3315
3316         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
3317         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
3318         * unwind.h: Declare them.
3319         * libgcc-std.ver (GCC_3.3): Export them.
3320
3321 2003-05-07  Richard Henderson  <rth@redhat.com>
3322
3323         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
3324         not _Unwind_Word.
3325
3326 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
3327
3328         * stmt.c (force_label_rtx): New function, based on logic
3329         formerly found in expand_expr.
3330         * expr.h: Prototype it.
3331         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
3332         appropriate.
3333         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
3334
3335         * print-tree.c (debug_tree): Free the table after we're done
3336         with it.  Use putc.
3337
3338 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
3339
3340         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
3341         Unreverse arguments for __ev_subw.
3342
3343         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
3344
3345 2003-05-07  Nick Clifton  <nickc@redhat.com>
3346
3347         * config/stormy16/stormy-abi: Update to include
3348         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
3349         R_XSTORMY16_12 relocs.
3350
3351 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
3352
3353         * function.c (assign_parms): Correct reversed reg_parm_stack_space
3354         test.  Add partial in-regs size to stack_args_size.
3355
3356 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3357
3358         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
3359         as a C only option.
3360
3361 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
3362
3363         * gcov-io.h (GCOV_LOCKED): New #define.
3364         (GCOV_LINKAGE): Make sure it is #defined.
3365         (gcov_write_string, gcov_write_tag, gcov_write_length,
3366         gcov_read_string, gcov_time): Poison in libgcov.
3367         (gcov_seek_end): Remove.
3368         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
3369         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
3370         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
3371         GCOV_TAG_SUMMARY_LENGTH): New #defines.
3372         (gcov_write_tag, gcov_write_length): Not in libgcov.
3373         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
3374         (gcov_write_tag, gcov_write_length): Not in libgcov.
3375         (gcov_write_tag_length): New.
3376         (gcov_write_summary): Use gcov_write_tag_length.
3377         * libgcov.c: Always #include gcov-io.h.
3378         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
3379         (GCOV_LINKAGE): Define to nothing for L_gcov.
3380         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
3381         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
3382         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
3383         (read_count_file): Likewise.
3384         * gcov-dump.c (dump_file): Likewise.
3385         * coverag.c (read_counts_file): Likewise.
3386
3387 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
3388
3389         PR other/10658
3390         * gcc.c (process_command): Update copyright date.
3391
3392 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
3393
3394         * doc/install.texi (mips-*-*):  Add note about libstdc++.
3395
3396 2003-05-06  DJ Delorie  <dj@redhat.com>
3397
3398         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
3399         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
3400         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
3401
3402 2003-05-06    <neil@cat.daikokuya.co.uk>
3403
3404         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
3405         and -Wstrict-prototypes if C++.
3406
3407 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
3408
3409         * config/rs6000/linuxspe.h: New file.
3410
3411         * config.gcc: Add powerpc-*-linux-gnuspe* target.
3412
3413 2003-05-06  Richard Henderson  <rth@redhat.com>
3414
3415         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
3416         previous frame didn't save sp.  Clear sp for next frame.
3417         (uw_install_context_1): Honor saved sp from frame.
3418
3419 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
3420
3421         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
3422         (mips_move_1word, mips_move_2words): Remove declaration.
3423         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
3424         (mips_restore_gp): Remove insn argument.
3425         * config/mips/mips.h (FP_REG_RTX_P): New macro.
3426         * config/mips/mips.c (volatile_buffer): Remove.
3427         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
3428         (mips_move_1word, mips_move_2words): Remove, replacing with...
3429         (mips_output_move): ...this new function.
3430         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
3431         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
3432         handling of floating-point constants.  Handle zero CONST_DOUBLE
3433         arguments.
3434         (mips_annotate_frame_insn): Replace with...
3435         (mips_set_frame_expr): ...this, which just takes one argument.
3436         (mips_frame_set): Change the register argument to an rtx.
3437         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
3438         check whether moves should be split.  Use mips_split_64bit_move
3439         to split them.  Use mips_subword to generate the high and low
3440         parts of a paired FPR.  Adjust calls to frame_set and
3441         mips_set_frame_expr.
3442         (mips_expand_prologue): Simplify due to above changes.
3443         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
3444         targets, replacing xisting register-only versions.
3445         (UNSPEC_STORE_DF_HIGH): New unspec.
3446         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
3447         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
3448         (*paradoxical_extendhidi2): Remove.
3449         (movdi_internal, movdi_internal2): Use mips_output_move.
3450         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
3451         (movsf_internal1, movsf_internal2): Likewise.
3452         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
3453         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
3454         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
3455         Add m <- G alternative.
3456         (load_df_low, load_df_high, store_df_low): New patterns.
3457         (movhi_internal): Use @ template instead of calling a function.
3458         Remove unnecessary 'z' alternatives.
3459         (movqi_internal): Likewise.
3460         (exception_receiver): Update call to mips_restore_gp.
3461
3462 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
3463
3464         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
3465         (mips_delegitimize_address): Declare.
3466         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
3467         (FIND_BASE_TERM): Define.
3468         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
3469         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
3470         Handle small-data addresses.
3471
3472 2003-05-05  Roger Sayle  <roger@eyesopen.com>
3473
3474         * real.c (real_powi): New function to calculate the value of
3475         a real raised to an integer power, i.e. pow(x,n) for int n.
3476         (real_sqrt): Convert to using the faster do_add, do_multiply
3477         and do_divide API for consistency with the rest of real.c.
3478         * real.h (real_powi): Prototype here.
3479         * builtins.c (fold_builtin):  Avoid local variable mode when
3480         evaluating sqrt at compile time.  Attempt to evaluate pow at
3481         compile-time, by checking for an integral exponent.
3482
3483 2003-05-05  Richard Henderson  <rth@redhat.com>
3484
3485         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
3486
3487 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
3488
3489         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
3490         other FreeBSD ports.
3491         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
3492         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
3493
3494 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
3495
3496         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
3497         expanded variables.
3498         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
3499
3500 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
3501
3502         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
3503         * varasm.c (struct varasm_status): Add deferred_constants field.
3504         (n_deferred_strings): Delete variable.
3505         (n_deferred_constants): New #define.
3506         (struct constant_descriptor_tree): Kill next and label fields.
3507         (const_hash_table, MAX_HASH_TABLE): Delete.
3508         (const_desc_htab): New static variable.
3509         (const_hash): Rename const_desc_hash, and make it fit the
3510         hashtab.h interface.
3511         (const_desc_eq): New.
3512         (const_hash_1, compare_constant): Const-ify arguments.
3513         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
3514         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
3515         (output_constant_def): Do the lookup/insert using the
3516         hashtab.h interface.  Don't muck with n_deferred_constants or
3517         DEFERRED_CONSTANT_P here.
3518         Always call maybe_output_constant_def_contents.
3519         (maybe_output_constant_def_contents): Take a pointer to the
3520         descriptor, not the EXP and RTL separately.  Return
3521         immediately if this constant is not deferred.  Defer output of
3522         everything, except writable string constants.  Update
3523         n_deferred_constants here.
3524         (output_constant_def_contents): Now takes just one argument,
3525         an rtx.  Clear DEFERRED_CONSTANT_P here.
3526         (mark_constant_pool): Update for rename of n_deferred_strings.
3527         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
3528
3529         (init_varasm_status): Clear p->deferred_constants.
3530         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
3531
3532 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3533
3534         * builtins.c (expand_builtin_stpcpy): Only expand when the length
3535         of the source string can be evaluated at compile-time.
3536
3537 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3538
3539         * testsuite/gcc.c-torture/compile/simd-6.c: New.
3540
3541         * c-typeck.c (digest_init): Handle arrays of vector constants.
3542
3543 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
3544
3545         * builtins.c (expand_builtin_mempcpy): New function.
3546         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
3547         ignored into strcpy no matter what arguments it has.
3548         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
3549         expand_builtin_mempcpy.
3550
3551 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3552
3553         * testsuite/gcc.dg/20030505.c: New.
3554
3555         * c-typeck.c (convert_for_assignment): Opaque pointers can
3556         interconvert.
3557
3558         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
3559         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
3560         (spe_init_builtins): Rename all pv2si_type_node to
3561         opaque_p_V2SI_type_node.
3562         Remove declaration of pv2si_type_node.
3563         (is_ev64_opaque_type): Accept opaque pointers.
3564
3565 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
3566
3567         * config/rs6000/rs6000.c (validate_condition_mode): Use
3568         flag_finite_math_only.
3569         (rs6000_reverse_condition): Never return UNKNOWN; use
3570         flag_finite_math_only.
3571         (rs6000_generate_compare): Use flag_finite_math_only.
3572         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
3573         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
3574         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
3575
3576         * toplev.c (check_global_declarations): Suppress not-used warning
3577         for volatile variables.
3578
3579 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
3580
3581         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
3582         usage of bitfield instructions for mode1 != BLKmode, only ignoring
3583         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
3584         (store_field): Likewise.
3585
3586 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3587
3588         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
3589         evsubifw to builtins accepting 5-bit unsigned constants.
3590         (easy_vector_constant): Return if V1DImode.  Fix typo.
3591
3592 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
3593
3594         * config/rs6000/spe.h: Revert licensing change from last patch.
3595
3596 2003-05-05  DJ Delorie  <dj@redhat.com>
3597
3598         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
3599         before reload, but defer the split until after.
3600         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
3601         to match.
3602
3603 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
3604
3605         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
3606         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
3607
3608 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3609
3610         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
3611         is defined.
3612
3613 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3614
3615         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
3616         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
3617         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
3618
3619         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
3620         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
3621         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
3622         New.
3623
3624         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
3625         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
3626
3627         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
3628         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
3629         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
3630         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
3631         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
3632         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
3633         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
3634         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
3635         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
3636         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
3637         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
3638         BUILT_IN_STRDUP): Add "nonnull" attribute.
3639
3640 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3641
3642         * expr.c (store_field): Don't clobber TEMP in shift: it might be
3643         a variable.
3644         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
3645         whose purpose is to step up the alignment.
3646         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
3647
3648         * stor-layout.c (compute_record_mode): Relax restriction
3649         on fields crossing word boundaries forcing BLKmode.
3650
3651 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
3652
3653         * cppinit.c (cpp_create_reader, post_options): Warn about
3654         trigraphs unless explicity set or -trigraphs.
3655         * cpplex.c (warn_in_comment): New.
3656         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
3657         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
3658         * doc/cppopts.texi, doc/cpp.texi: Update.
3659
3660 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3661
3662         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
3663         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
3664         namespace clash.
3665         (GCOV_MERGE_FUNCTIONS): New.
3666         (gcov_merge_fn): Declare.
3667         (struct gcov_ctr_info): New field "merge".
3668         (__gcov_merge_add): Declare.
3669         * coverage.c (ctr_merge_functions): New.
3670         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
3671         of gcov_ctr_info type.
3672         * libgcov.c (__gcov_merge_add): New.
3673         (gcov_exit): Call a hook to merge values of counters.
3674
3675 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
3676
3677         * toplev.h (pedwarn_with_file_and_line): Don't declare.
3678         * diagnostic.c (pedwarn_with_file_and_line): Remove.
3679
3680 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3681
3682         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
3683
3684 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3685
3686         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
3687         expand_builtin_frame_address): Update prototypes.
3688         (expand_builtin_constant_p, expand_builtin_strlen,
3689         expand_builtin_strcpy, expand_builtin_memset,
3690         expand_builtin_bzero, expand_builtin_args_info,
3691         expand_builtin_frame_address): Pass in just the argument(s)
3692         needed, not the entire expression `exp'.
3693         (expand_builtin): Update all calls to these functions.
3694
3695 2003-05-03  Richard Henderson  <rth@redhat.com>
3696
3697         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
3698         <BUILT_IN_DWARF_SP_COLUMN>: New.
3699         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
3700         (BUILT_IN_DWARF_SP_COLUMN): New.
3701         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
3702         (expand_builtin_dwarf_sp_column): New.
3703         * except.h: Update to match.
3704         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
3705         (execute_cfa_program): Record location expression address
3706         before extracting length.
3707         (uw_update_context_1): Install old CFA into stack pointer column.
3708         (uw_init_context_1): Set cfa_reg to stack pointer column.
3709
3710 2003-05-03  Richard Henderson  <rth@redhat.com>
3711
3712         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
3713         return bool.
3714         (toc_relative_expr_p): Likewise.
3715         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
3716         (legitimate_constant_pool_address_p): Move from rs6000.h, change
3717         into a function, downcase all users.
3718         (legitimate_small_data_p): Likewise.
3719         (legitimate_offset_address_p): Likewise.
3720         (legitimate_indexed_address_p): Likewise.
3721         (legitimate_indirect_address_p): Likewise.
3722         (legitimate_lo_sum_address_p): Likewise.
3723         (rs6000_mode_dependent_address): Likewise.
3724         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
3725         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
3726         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
3727         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
3728         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
3729         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
3730         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
3731         * config/rs6000/rs6000-protos.h: Update.
3732
3733 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
3734
3735         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
3736         (REVERSE_CONDITION): Define.
3737
3738         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
3739         to branch_positive_comparison_operator.
3740         (ccr_bit): Check that sCOND conditions are actually a positive bit.
3741         (print_operand): Remove %D substitution.
3742         (rs6000_emit_sCOND): Generate complement operation to ensure that
3743         sCOND input is a positive bit.
3744         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
3745         same order as bCOND, and add the missing ones.  Remove the %D
3746         substitutions from the scc patterns.
3747
3748         * simplify-rtx.c (simplify_relational_operation): Add case for
3749         ! (fabs(x) < 0.0).
3750
3751 2003-05-03  Bruce Korb  <bkorb@gnu.org>
3752
3753         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
3754         in fixincl.x
3755         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
3756
3757 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
3758
3759         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
3760
3761 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
3762
3763         PR c/10604
3764         * c-common.c (warn_sign_compare): Initialize to -1.
3765         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
3766         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
3767         for C++ only.
3768         (c_common_post_options): Set warn_sign_compare from extra_warnings
3769         if it's still -1 at this point.
3770
3771         * toplev.c (maybe_warn_unused_parameter): New static variable.
3772         (set_Wextra): New static function.
3773         (W_options): Remove "extra".
3774         (decode_W_option): Call set_Wextra.
3775         (independent_decode_option): Likewise.
3776         (set_Wunused): Cooperate with set_Wextra in setting
3777         warn_unused_parameter.
3778         (rest_of_compilation): No need to check extra_warnings as
3779         well as warn_uninitialized.
3780
3781         * c-typeck.c (build_binary_op, build_conditional_expr):
3782         No need to check extra_warnings as well as warn_sign_compare.
3783         (internal_build_compound_expr): No need to check extra_warnings
3784         as well as warn_unused_value.
3785         * function.c (expand_function_end): No need to check extra_warnings
3786         as well as warn_unused_parameter.
3787         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
3788         as well as warn_unused_value.
3789
3790         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
3791
3792         * Makefile.in: Disable -Werror for gengtype-lex.o.
3793
3794 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
3795
3796         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
3797         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
3798         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
3799         * calls.c (emit_call_1): Likewise.
3800         (expand_call): For calls initializing constant memory, replace
3801         emission of standalone mem /u clobber with function usage entry.
3802         * expr.c (emit_block_move_via_libcall): Likewise.
3803         * cse.c (count_reg_usage, case EXPR_LIST): New case.
3804         * flow.c (propagate_one_insn): Pass entire operand of
3805         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
3806         * integrate.c (try_constants): For CALL_INSNs, substitute constants
3807         within the FUNCTION_USAGE also.
3808         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
3809         FUNCTION_USAGE lists.
3810         * reload1.c (replace_pseudos_in): Renamed.
3811         (reload): Use it for clobbers surviving until the end of the reload.
3812
3813 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3814
3815         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
3816         gen_lowpart on non-integer modes.
3817
3818         * stor-layout.c (place_field): When adjusting offset_align, use
3819         desired_align, not DECL_ALIGN.
3820
3821 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3822
3823         * c-decl.c (pending_invalid_xref_file): Remove.
3824         (pending_invalid_xref_line): Remove.
3825         (pending_invalid_xref_location): New.
3826         (lookup_label): Use location_t and input_location directly.
3827         (lookup_tag): Likewise.
3828         (pending_xref_error): Likewise.
3829         (c_expand_body_1): Likewise.
3830         * c-common.c (x_expand_start_cond): Likewise.
3831         * c-semantics.c (genrtl_for_stmt): Likewise.
3832         (find_reachable_label): Likewise.
3833         * expr.c (expand_expr): Likewise.
3834         * integrate.c (output_inline_function): Likewise.
3835         * tree-inline.c (find_alloca_call): Likewise.
3836         (find_builtin_longjmp_call): Likewise.
3837         * gcc.c (input_filename): Make static.
3838
3839 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
3840
3841         * config/mips/mips.md: Fix comment typo.
3842
3843         * config/mips/mips.c (mips_integer_op): New structure.
3844         (MIPS_MAX_INTEGER_OPS): Define.
3845         (mips_const_insns): Use mips_build_integer to determine the number
3846         of instructions needed to load a CONST_INT.
3847         (move_operand): Reject compound CONST_INTs.
3848         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
3849         (mips_move_integer): New fn.
3850         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
3851         (mips_legitimize_move): Only legitimize constants when moving
3852         word or subword values.
3853
3854 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
3855
3856         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
3857
3858 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3859
3860         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
3861         modifying it.
3862
3863 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
3864             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3865
3866         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
3867         Hernandez, and Kazu Hirata.  Update Richard Henderson.
3868
3869 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
3870
3871         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
3872         to tentative declaration.
3873
3874         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
3875         (SYMBOL_FLAG_SMALL_V4): Delete.
3876         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
3877         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
3878         (rs6000_elf_in_small_data_p): Add extra section names.  Add
3879         comment about TREE_PUBLIC test.
3880
3881         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
3882         expand_stmt on result of expand_unreachable_stmt.
3883
3884 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3885
3886         * doc/contrib.texi (Contributors): Add Daniel Berlin.
3887
3888 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
3889
3890         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
3891         number of automata.
3892
3893         * config/rs6000/rs6000.c (symbol_ref_operand): Check
3894         SYMBOL_REF_FUNCTION_P on AIX.
3895         (current_file_function_operand): Same.
3896         * config/rs6000/rs6000.md (call,call_value): Force non-function
3897         symbol_ref into register on AIX.
3898
3899 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
3900
3901         * calls.c (struct arg_data): Move offset, slot_offset, size and
3902         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
3903         (initialize_argument_information): Adjust call to locate_and_pad_parm.
3904         Delete alignment_pad var.  Don't calculate slot_offset here.
3905         (emit_library_call_value_1): Delete alignment_pad, offset and size
3906         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
3907         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
3908         partial in-regs here.  Formatting fixes.
3909         * expr.h (struct locate_and_pad_arg_data): New struct.
3910         (locate_and_pad_parm): Adjust declaration.
3911         * function.c (assign_parms): Localize vars.  Use "locate" instead of
3912         other arg location vars.  Don't invoke FUNCTION_ARG or
3913         FUNCTION_INCOMING_ARG unless pretend_named is different from
3914         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
3915         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
3916         Use slot_offset for stack home of reg parms.  Correct test for
3917         parm passed in memory.  Formatting fixes.
3918         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
3919         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
3920         Correct initial_offset_ptr handling.  Localize vars.  Always pad
3921         locate->offset even when in_regs.
3922
3923 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3924
3925         * Makefile.in (TREE_H): Replace location.h with input.h.
3926         (GTFILES) Remove location.h
3927         (gt-lists.h): Replace gt-location.h with gt-input.h
3928         * input.h (input_filename, input_line): Remove variables.
3929         (location_s, location_t): Move from location.h.
3930         (input_location): New.
3931         (input_filename, input_line): New #defines.
3932         * location.h: Remove.
3933         * tree.h: Replace location.h with input.h.
3934         (input_filename, input_line): Remove.
3935         * diagnostic.h: Replace location.h with input.h.
3936         * gcc.h (input_filename, input_filename_length): Remove declarations.
3937         * toplev.c (input_filename, input_line): Remove.
3938         (input_location): Define.
3939         (push_srcloc, pop_srcloc): Adjust.
3940         * diagnostic.c (diagnostic_report_current_module): Adjust.
3941
3942 2003-05-02  Nick Clifton  <nickc@redhat.com>
3943
3944         * configure.in: Add xstormy16 to list of targets that has a nop
3945         instruction and hence which can be tested to see if the
3946         assembler supports the --gdwarf2 switch.
3947         * configure: Regenerate.
3948
3949 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
3950
3951         PR target/8257
3952         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3953         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
3954         Avoid undefined shifts by making the shift operand unsigned.
3955
3956 2003-05-01  DJ Delorie  <dj@redhat.com>
3957
3958         * reload.c (find_reloads): Also check that all of a multi-reg
3959         value is in the class.
3960
3961 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3962
3963         * scan.h (lineno): Revert the rename here.
3964
3965 2003-05-01  Stan Shebs  <shebs@apple.com>
3966
3967         * config/darwin.c (darwin_encode_section_info): Call
3968         default_encode_section_info.
3969
3970 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
3971
3972         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
3973         (movsi_internal1): Use new mfjmpr attribute.
3974         (movhi_internal): Same.
3975         (movqi_internal): Same.
3976         (movcc_internal1): Same.
3977         (movdi_internal64): Same.
3978         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
3979         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
3980         * config/rs6000/40x.md: Add fpu_405.
3981         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
3982         into power4misc automata.  Remove extraneous parentheses.
3983         * config/rs6000/440.md: New file.
3984         * config/rs6000/rs6000.c (processor_target_table): Add 440,
3985         440fp.  Rename 405f to 405fp.
3986         (function_arg_padding): Correct formatting.
3987         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
3988
3989 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3990
3991         * input.h (lineno): Rename to ...
3992         (input_line): ... here.
3993         * tree.h (lineno): Rename to ...
3994         (input_line): ... here.
3995         * scan.h (lineno): Rename to ...
3996         (input_line): ... here.
3997         * toplev.c (lineno): Rename to ...
3998         (input_line): ... here.
3999         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
4000         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
4001         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
4002         store_parm_decls, c_expand_body_1): Likewise.
4003         * c-errors.c (pedwarn_c99): Likewise.
4004         * c-format.c (status_warning): Likewise.
4005         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
4006         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
4007         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
4008         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
4009         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
4010         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
4011         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
4012         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
4013         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
4014         * coverage.c (create_coverage): Likewise.
4015         * diagnostic.c (pedwarn, sorry, error, fatal_error,
4016         internal_error, warning, diagnostic_report_current_module,
4017         inform): Likewise.
4018         * expr.c (expand_expr): Likewise.
4019         * integrate.c (expand_inline_function,
4020         output_inline_function): Likewise.
4021         * rtl-error.c (file_and_line_for_asm): Likewise.
4022         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
4023         walk_tree): Likewise.
4024         * tree.c (make_node): Likewise.
4025         * ada, cp, f, java, objc, treelang: Likewise.
4026         * objc/objc-act.c (objc_init): Rename lineno to input_line.
4027         (build_module_descriptor, build_selector_translation_table,
4028         build_protocol_template, build_method_prototype_list_template,
4029         build_category_template, build_selector_table,
4030         build_class_template, build_super_template, build_ivar_template,
4031         build_ivar_list_template, build_method_list_template,
4032         build_method_template, add_instance_variable): Likewise.
4033
4034         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
4035         name from input_filename.
4036
4037 2003-04-30  Eric Christopher  <echristo@redhat.com>
4038             Richard Sandiford <rsandifo@redhat.com>
4039
4040         * configure: Regenerate from patches below.
4041         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
4042         for all symbolic operands.
4043         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
4044         to function.
4045         * config/mips/linux.h: Fix typo.
4046         * Merge from mips-3_4-rewrite branch:
4047
4048         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
4049
4050                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
4051                 handling local labels when TARGET_ABICALLS.
4052
4053         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
4054
4055                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
4056                 integer argument.
4057                 (mips_expand_call): Likewise.
4058                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
4059                 (FIXED_REGISTERS): Clear $31 entry.
4060                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
4061                 (EPILOGUE_USES): Define.
4062                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
4063                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
4064                 (override_options): Add a 'j' register class.
4065                 (mips_expand_call): Handle sibcalls
4066                 (mips_expand_epilogue): Handle epilogues for sibcalls.
4067                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
4068                 (sibcall_epilogue): New pattern.
4069                 (call, call_value): Adjust calls to mips_expand_call.
4070                 (sibcall, sibcall_value): New expanders.
4071                 (sibcall_internal, sibcall_value_internal): New patterns.
4072                 (sibcall_value_multiple_internal): New pattern.
4073
4074         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
4075
4076                 * config/mips/mips.md (extended_mips16): New attribute.
4077                 (define_attr length): Default to 8 if extended_mips16 == yes.
4078                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
4079                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
4080                 (call_internal): Set extended_mips16 to yes for direct jumps.
4081                 Remove redundant mode attribute.
4082                 (call_value_internal, call_value_multiple_internal): Likewise.
4083                 (call_split): Remove redundant mode attribute.
4084                 (call_value_split, call_value_multiple_split): Likewise.
4085
4086                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
4087                 of unaligned offsets.
4088
4089                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
4090                 of SYMBOL_GENERAL.
4091
4092         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
4093
4094                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
4095                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
4096                 for mips16 code.
4097
4098         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
4099
4100                 * config/mips/mips.h (ADDRESS_COST): Define.
4101
4102         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
4103
4104                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
4105                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
4106                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
4107
4108         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
4109
4110                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
4111                 of a two-instruction sequence.  Add register->memory alternative.
4112                 (truncdihi2, truncdiqi2): Likewise.
4113                 Rework shift/truncate instructions so that they only handle right
4114                 shifts of 32 (or more, in the case of arithmetic shifts).
4115                 Add patterns for truncate/sign-extend.
4116
4117         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4118
4119                 * configure.in (mips*-*-*): Check for explicit relocation support.
4120                 * configure: Regenerate.
4121
4122         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4123
4124                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
4125                 and -mno-explicit-relocs.
4126                 (MASK_EXPLICIT_RELOCS): Define.
4127                 (TARGET_EXPLICIT_RELOCS): Use it.
4128                 (mips_split_addresses): Remove declaration.
4129                 * config/mips/mips.c (override_options): Update comment for
4130                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
4131
4132         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4133
4134                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
4135                 a CONST as identity.  Check the return value of gen_lowpart_common.
4136
4137         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4138
4139                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
4140                 references for TARGET_EXPLICIT_RELOCS.
4141                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
4142                 !TARGET_MIPS16.
4143
4144         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4145
4146                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
4147                 (addsi3): Remove redundant constraints.
4148                 (addsi3_internal): Use separate register & constant alternatives.
4149                 Use a 'Q' constraint and "addiu" insn for the latter.
4150                 (adddi3_internal_3, addsi3_internal_2): Likewise.
4151
4152         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
4153
4154                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
4155                 (mips_expand_unaligned_store): Declare.
4156                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
4157                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
4158                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
4159                 (UNSPEC_ULD, UNSPEC_USD): Remove.
4160                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
4161                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
4162                 (extv, extzv): Use mips_expand_unaligned_load.
4163                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
4164                 predicate for operand 3.
4165                 (movsi_ulw, movsi_usw): Replace with...
4166                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
4167                 (movdi_uld, movdi_usd): Likewise replace with...
4168                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
4169
4170         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
4171
4172                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
4173                 * config/mips/mips.h (LEA_REGS): New register class.
4174                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
4175                 (GR_REG_CLASS_P): Include LEA_REGS.
4176                 (DANGEROUS_FOR_LA25_P): New macro.
4177                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
4178                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
4179                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
4180                 entries to LEA_REGS.
4181                 (mips_global_pic_constant_p): New function.
4182                 (override_options): Add 'e' register constraint.
4183                 (mips_secondary_reload_class): Return LEA_REGS when reloading
4184                 a dangerous constant into a class containing $25.
4185                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
4186                 (movsi_internal): Likewise.
4187
4188         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
4189
4190                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
4191                 * config/mips/mips.md (call_split): New insn.
4192                 (call_value_split, call_value_multiple_split): New insns.
4193                 (call_internal): Turn into a define_insn_and_split.  Split the
4194                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
4195                 (call_value_internal, call_value_multiple_internal): Likewise.
4196
4197         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
4198
4199                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
4200                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
4201                 (mips_encode_section_info): Don't take symbol visibility into
4202                 account if TARGET_ABICALLS.  Add more commentary.
4203                 * config/mips/mips.md: Add commentary above reloc constants.
4204
4205         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
4206
4207                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
4208                 from mips_legitimize_move.  Legitimize constant pool references.
4209                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
4210                 a REG_EQUAL note to the last instruction.
4211
4212         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
4213
4214                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
4215                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
4216                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
4217                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
4218                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
4219                 (UNSPEC_RELOC_GPREL16): Rename to...
4220                 (RELOC_GPREL16): ...this.
4221                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
4222                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
4223                 (macro_calls): New attribute.
4224                 (length): Use it to set the default length of calls.  Don't allow
4225                 calls to have delay slots if macro_calls is "yes".
4226                 (luisi, luidi): New patterns.
4227                 (lowsi, lowdi): Use '%R' to print the relocation.
4228                 (lowdi_extend): Remove.
4229                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
4230                 (call_internal): Merge alternatives.  Always use "jal".
4231                 (call_value_internal, call_value_multiple_internal): Likewise.
4232                 (reloc_gprel16): Remove.
4233                 * config/mips/mips.c (mips_got_alias_set): New variable.
4234                 (mips_classify_constant): Handle the new relocation constants.
4235                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
4236                 (mips_symbolic_address_p): Return false if generating explicit relocs.
4237                 Otherwise allow local PIC symbols to have an offset.
4238                 (mips_splittable_symbol_p): New function.
4239                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
4240                 (mips_const_insns): Always accept HIGH.
4241                 (call_insn_operand): Don't accept global symbols if using explicit
4242                 relocs.
4243                 (move_operand): Don't accept HIGH when generating PIC.
4244                 (mips_reloc, mips_lui_reloc): New functions.
4245                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
4246                 be a valid right-hand-side for a SET pattern.
4247                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
4248                 (mips_emit_high): New function.
4249                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
4250                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
4251                 address should be used.  Use mips_emit_high to generate the
4252                 high part of such an address.  Adjust the global symbol + offset
4253                 case to match the change to mips_force_temprorary.
4254                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
4255                 If generating explicit-reloc PIC, load the address of global
4256                 symbols from the GOT.  Use mips_emit_high to emit the high part
4257                 of an address.
4258                 (mips_simplify_dwarf_addr): New function.
4259                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
4260                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
4261                 (mips_expand_call): Load the addresses of global functions using
4262                 %call* relocs if generating explicit-reloc PIC.  Don't generate
4263                 an exception_receiver pattern.
4264                 (override_options): Initialize mips_got_alias_set.
4265                 (print_relocation): Remove in favour of...
4266                 (mips_reloc_string): ...this new function.
4267                 (print_operand): Handle '%R'.  Use mips_reloc_string.
4268                 (print_operand_address): Use print_operand to print the symbolic
4269                 part of a LO_SUM address.
4270                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
4271                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
4272                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
4273                 for local symbols.
4274
4275         2003-02-02  Eric Christopher  <echristo@redhat.com>
4276
4277                 * config/mips/mips.c (mips_sign_extend): Remove.
4278                 * config/mips/mips-protos.h: Ditto.
4279                 * config/mips/mips.md (movdi_internal2_extend): Remove.
4280                 (extendsidi2): Fix mode of convert_memory_address.
4281
4282         2003-01-24  Eric Christopher  <echristo@redhat.com>
4283
4284                 * config/mips/mips.md: Rewrite zero_extend* and extend*
4285                 patterns. Use explicit instructions and split after reload
4286                 for register extensions.
4287                 (ashlsi3_internal1_extend): New combiner pattern for
4288                 shift and extend combinations.
4289                 * config/mips/mips.h: Change Pmode back to ptr_mode
4290                 for performance enhancement.
4291                 * combine.c (expand_compound_operation): Make sure
4292                 that zero_extend operation is profitable.
4293
4294         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
4295
4296                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
4297                 addresses depend on ptr_mode rather than Pmode.
4298                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
4299                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
4300                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
4301                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
4302                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
4303                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
4304                 (tablejump_internal1): Remove condition.
4305                 (tablejump_internal2): Change condition to TARGET_64BIT.
4306                 (cpaddsi): Rename to...
4307                 (cpadd): ...this.
4308                 (cpadddi): Remove.
4309
4310         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
4311
4312                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
4313                 mips_address_cost, mips_check_split, double_memory_operand,
4314                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
4315                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
4316                 (mips_legitimate_address_p): Return bool.
4317                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
4318                 mips_legitimize_address, mips_legitimize_move,
4319                 mips_expand_call): Declare.
4320                 (mips_return_addr): Move outside #ifdef RTX_CODE.
4321
4322                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
4323                 (PIC_FN_ADDR_REG): New reg_class.
4324                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
4325                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
4326                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
4327                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
4328                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
4329                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
4330                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
4331                 (LEGITIMATE_PIC_OPERAND): Undefine.
4332                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
4333                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
4334                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
4335                 (FUNCTION_MODE): Change to SImode.
4336                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
4337                 most constants.  Treat const_artih_operands specially if they
4338                 occur in a PLUS or MINUS.
4339                 (CONSTANT_POOL_COST): New macro.
4340                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
4341                 Add LO_SUM handling.
4342                 (ADDRESS_COST): Undefine.
4343                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
4344                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
4345                 to call_insn_operand and remove CONST_INT.
4346
4347                 * config/mips/mips.c: Include integrate.h.
4348                 (SINGLE_WORD_MODE_P): New macro.
4349                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
4350                 (mips_constant_info, mips_address_info): New structs.
4351                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
4352                 (mips_classify_constant, mips_classify_symbol,
4353                 mips_valid_base_register_p, mips_symbolic_address_p,
4354                 mips_classify_address, mips_symbol_insns,
4355                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
4356                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
4357                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
4358                 mips_print_relocation): New functions.
4359                 (const_arith_operand): New operand predicate.
4360                 (arith_operand): Use it.
4361                 (mips_const_double_ok, mips16_simple_memory_operand,
4362                 simple_memory_operand, double_memory_operand, mips_check_split,
4363                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
4364                 mips16_gp_offset_p, mips16_output_gp_offset,
4365                 mips16_constant_after_function_p, mips16_constant): Remove.
4366                 (call_insn_operand): Be more fussy about symbolic constants.
4367                 Use register_operand.
4368                 (move_operand): Use mips_symbolic_address_p to check symbolic
4369                 operands and general_operand to check the rest.
4370                 (symbolic_operand): Use mips_classify_constant.
4371                 (mips_legitimate_address_p): Use mips_classify_address.
4372                 (mips_move_1word): Combine handling of symbolic addresses.
4373                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
4374                 (move_move_2words): Likewise.  Assume addresses are offsettable
4375                 if they need to refer to more than one word.  Add HIGH handling.
4376                 (mips_restore_gp): Use ptr_mode for the GP save slot.
4377                 (mips_expand_call): New function, combining the old mips.md
4378                 call and call_internal define_expands.  If the address isn't
4379                 a call_insn_operand, force it into a register.  For SVR4 PIC,
4380                 emit an exception_receiver instruction after the call.
4381                 (override_options): Only override flag_pic for TARGET_ABICALLS
4382                 if it is currently zero.  Allow mips_split_addresses when
4383                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
4384                 Add new register class letter, 'c'.
4385                 (print_operand): Use mips_classify_constant for constant operands.
4386                 (print_operand_address): Use mips_classify_address.
4387                 (mips_output_function_prologue): Don't use .cprestore.
4388                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
4389                 via the frame pointer if current_function_calls_eh_return.
4390                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
4391                 to mark whether a symbol is local or global.
4392                 (build_mips16_call_stub): Expect the address of the function rather
4393                 than a MEM reference to it.  Update call generation sequences.
4394                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
4395                 small-data adjustments.
4396
4397                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
4398                 length for loads and stores.
4399                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
4400                 (define_attr type): Add const and prefetch.
4401                 (define_attr length): Use mips_const_insns for const instructions.
4402                 Use mips_fetch_insns for load and store instructions.
4403                 (define_attr single_insn): New.
4404                 (define_attr can_delay): Use it.
4405                 (define_attr abicalls): Remove.
4406                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
4407                 (addsi3_internal_2): Add 'Q' constraint.
4408                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
4409                 (high): Remove.
4410                 (lowsi): Renamed from low.
4411                 (lowdi): New pattern.
4412                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
4413                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
4414                 (loadgp): Change operand 0 to an immediate_operand.
4415                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
4416                 beforehand.
4417                 (cpaddsi, cpadddi): New patterns.
4418                 (tablejump_internal3, tablejump_internal4): Remove define_expands
4419                 and associated define_splits.
4420                 (call, call_value): Use mips_expand_call.
4421                 (call_internal): New, replacing all existing call_internal* insns.
4422                 (call_value_internal): Likewise call_value_internal*.
4423                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
4424                 (untyped_call): Remove if (operands[0]) magic.
4425                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
4426                 (prefetch_di_address, prefetch_di): Likewise.
4427                 (leasi, leadi): Remove.
4428                 (reloc_gprel16): New.
4429
4430                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
4431                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
4432                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
4433
4434         2003-01-08  Eric Christopher  <echristo@redhat.com>
4435
4436                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
4437                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
4438                 configure check for libgloss.
4439                 * config/mips/elf64.h: Ditto.
4440                 * config/mips/mips.c: Remove ABI_MEABI.
4441                 * config/mips/mips.h: Ditto.
4442
4443         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
4444
4445                 Fix merge fallout.
4446                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
4447                 (muldi3_internal): Remove outdated comment.
4448                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
4449                 (*smsac_di, *umsac_di): Likewise.  Reformat.
4450                 (umulsi3_highpart): Minor formatting tweaks.
4451                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
4452                 redundant scratch operand.  Minor formatting tweak.
4453                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
4454                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
4455                 (smulsi3_highpart): As for the unsigned version.
4456                 (smulsi3_highpart_internal): Likewise.
4457                 (smulsi3_highpart_mulhi_internal): Likewise.
4458                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
4459                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
4460                 (*smul_acc_di): Remove duplicated pattern.
4461                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
4462                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
4463                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
4464
4465         2002-10-22  Eric Christopher  <echristo@redhat.com>
4466
4467                 * config/mips/mips-protos.h (mips_return_addr): New.
4468                 * config/mips/mips.c (mips_return_addr): New.
4469                 (movdi_operand): Remove.
4470                 (se_register_operand): Ditto.
4471                 (se_reg_or_0_operand): Ditto.
4472                 (se_uns_arith_operand): Ditto.
4473                 (se_arith_operand): Ditto.
4474                 (se_nonmemory_operand): Ditto.
4475                 (extend_operator): Ditto.
4476                 (highpart_shift_operator): Ditto.
4477                 (mips_initial_elimination_offset): Remove return address pointer
4478                 elimination.
4479                 (mips_reg_names): Remove $ra.
4480                 (mips_regno_to_class): Ditto.
4481                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
4482                 and TARGET_64BIT.
4483                 (POINTER_BOUNDARY): Remove.
4484                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
4485                 (PROMOTE_MODE): Promote to Pmode.
4486                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
4487                 (Pmode): Define to TARGET_64BIT.
4488                 (FUNCTION_MODE): Define as Pmode.
4489                 (mips_args): Remove deleted functions.
4490                 (SIZE_TYPE): Depend on POINTER_SIZE.
4491                 (PTRDIFF_TYPE): Ditto.
4492                 (FIXED_REGISTERS): Fix extra registers.
4493                 (CALL_USED_REGISTERS): Ditto.
4494                 (CALL_REALLY_USED_REGISTERS): Ditto.
4495                 (RAP_REG_NUM): Remove.
4496                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
4497                 (RETURN_ADDR_RTX): Define to mips_return_addr.
4498                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
4499                 (CAN_ELIMINATE): Ditto.
4500                 * config/mips/mips.md: For DImode patterns, take into account
4501                 deletions above. Split mulsidi patterns into sign_extend and
4502                 zero_extend.
4503
4504         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
4505                     Michael Meissner  <meissner@redhat.com>
4506
4507                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
4508                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
4509                 mop up unnecessarly moves through LO.
4510                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
4511                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
4512                 change mtlo/macc sequences into mul/add sequences when a three-
4513                 address mul is available.
4514                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
4515                 (*mul_sub_si): Fix contraint for operand 5.
4516                 (*muls): Use in 32-bit code as well.
4517                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
4518                 if the destination is LO.  Remove duplicate define_split.
4519                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
4520                 (*msac_di): Likewise.  Fix formatting.
4521                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
4522                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
4523                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
4524                 (*xmulsi3_neg_highpart_mulhi): Likewise.
4525                 (*mul_acc_64bit_di): Remove.
4526                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
4527
4528         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
4529
4530                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
4531                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
4532                 (MULTILIB_DIRNAMES): Remove long32.
4533                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
4534                 (MULTILIB_REDUNDANT_DIRS): Remove.
4535
4536         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
4537
4538                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
4539                 * gcc.c (driver_self_specs): New variable.
4540                 (do_self_spec): New function.
4541                 (main): Use it to process driver_self_specs.
4542
4543         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
4544
4545                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
4546                 Remove DImode define_split for !TARGET_64BIT.
4547                 (anddi3): Remove !TARGET_64BIT support from here as well.
4548                 Change operand 2's predicate to se_uns_arith_operand.
4549                 Add constant alternatives to define_insn.
4550                 (iordi3, xordi3, *nordi3): Likewise.
4551                 (anddi3_internal1, xordi3_immed): Remove.
4552
4553         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4554
4555                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
4556                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
4557                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
4558                 * config/mips/mips.md: Apply same renaming here.
4559
4560         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4561
4562                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
4563                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
4564                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
4565                 * config/mips/mips.md (define_attr cpu): Remove r4320.
4566                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
4567
4568         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4569
4570                 * config/mips/mips.c (mips16_strings): New variable.
4571                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
4572                 symbol in mips16_strings.  Free the list.
4573                 (mips_encode_section_info): Keep track of local strings.
4574
4575         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4576
4577                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
4578                 (sordered_df, sordered_sf): Remove.
4579                 * config/mips/mips.c (get_float_compare_codes): New fn.
4580                 (gen_int_relational, gen_conditional_move): Use it.
4581
4582         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
4583
4584                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
4585                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
4586                 * config/mips/mips.c (fcc_register_operand): New function.
4587                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
4588                 (override_options): Allow TFmode values in float registers
4589                 if ISA_HAS_8CC.
4590                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
4591                 to fcc_register_operand.  Remove misleading source constraint.
4592                 Use mips_emit_fcc_reload.
4593                 (reload_outcc): Duplicate reload_incc.
4594
4595
4596 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
4597
4598         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
4599
4600 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
4601
4602         * tree-inline.c (inlinable_function_p): Back out last change, it's
4603         unnecessary.
4604
4605 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4606
4607         * ggc-page.c (TREE_EXP_SIZE): Define.
4608         (extra_order_size_table): New entry for expr trees with
4609         two operands.
4610
4611 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4612
4613         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
4614         (c_expand_start_cond): Adjust.
4615         (c_expand_end_cond): Don't use warning_with_file_and_file.
4616         (shadow_warning): Likewise.
4617
4618 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
4619
4620         * tree.h (DECL_POINTER_DEPTH): Remove.
4621         (struct tree_decl): Remove pointer_depth.
4622
4623 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
4624
4625         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
4626         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
4627         (rs6000_xcoff_encode_section_info): Remove.
4628         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
4629         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
4630         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
4631         Use SYMBOL_REF_FLAGS.
4632         (rs6000_elf_encode_section_info): Call default_encode_section_info for
4633         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
4634         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
4635         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
4636         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
4637         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
4638
4639 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4640
4641         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
4642
4643 2003-04-30  Andreas Schwab  <schwab@suse.de>
4644
4645         * doc/extend.texi (Other Builtins): Enclose multiple word data
4646         type in braces for @deftypefn.
4647
4648 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4649
4650         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
4651
4652         * doc/install.texi (--enable-threads): Document "gnat" option.
4653
4654 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
4655
4656         * diagnostic.h (output_formatted_scalar): Tweak.
4657         * diagnostic.c (output_long_decimal): Likewise.
4658         (output_unsigned_decimal): Likewise.
4659         (output_long_unsigned_decimal): Likewise.
4660         (output_octal): Likewise.
4661         (output_long_octal): Likewise.
4662         (output_hexadecimal): Likewise.
4663         (output_long_hexadecimal): Likewise.
4664         (output_pointer): New function.
4665         (output_format): Use it.  Recognize "%p" format specifier.
4666
4667 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4668
4669         * function.c (purge_addressof_1): Postpone insn in fewer cases.
4670
4671 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
4672
4673         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
4674         call abort() after running out of stack space.
4675
4676         * c-typeck.c (function_types_compatible_p): Ignore incompatible
4677         'volatile' qualifiers on a function's return type in GNU mode.
4678
4679 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
4680
4681         * expr.c (emit_group_load): Dump parallels of simd types to
4682         memory.
4683
4684 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4685
4686         * genautomata.c (add_vect): Check undefined value for range type
4687         too.
4688
4689 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
4690
4691         * configure.in:  More general test for cmp --ignore-initial.
4692         * configure:  Regenerate.
4693
4694 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4695
4696         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
4697         (layout_decl, place_field): Likewise.
4698         Also make minor type and whitespace changes.
4699
4700         * tree.c (save_expr): Don't fold a COMPONENT_REF.
4701
4702 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
4703
4704         * calls.c (expand_call): When modes of target and valreg match, force
4705         sibcall failure when target is a MEM.
4706
4707 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
4708
4709         * tree-inline.c (inlinable_function_p): Don't support inlining
4710         functions using varargs.
4711
4712         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
4713
4714         * dwarf2out.c (output_call_frame_info): No need to output EH
4715         unwind information if all_throwers_are_sibcalls.
4716
4717         * c-semantics.c (expand_unreachable_stmt): Return a tree.
4718         (expand_stmt): Update for change to expand_unreachable_stmt.
4719         (expand_unreachable_if_stmt): Likewise.
4720
4721         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
4722
4723 2003-04-29  Jason Merrill  <jason@redhat.com>
4724
4725         PR middle-end/10336
4726         * jump.c (never_reached_warning): Really stop looking if we reach
4727         the beginning of the function.
4728
4729 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
4730
4731         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
4732         Remove redundant macros.
4733         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
4734         (LOCAL_LABEL_PREFIX): Define unconditionally.
4735         (NO_DOT_IN_LABEL): Clarify comment.
4736         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
4737         definition to "long int".
4738
4739 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
4740
4741         bootstrap/10452
4742         * gengtype-yacc.y: Improve portability.
4743
4744 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
4745
4746         * config.gcc: Install obsolete target list for GCC 3.3.
4747         * doc/install.texi: Mention in specific-target instructions
4748         that certain configurations are deprecated.
4749
4750 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
4751
4752         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
4753
4754 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
4755
4756         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
4757         * gcc.c (display_help): Likewise.
4758         * toplev.c (f_options): Likewise.
4759         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
4760         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
4761         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
4762         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
4763         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
4764
4765 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
4766
4767         * varasm.c (default_assemble_visibility): Use assemble_name.
4768
4769 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
4770
4771         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
4772         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
4773         (SIZE_TYPE): New macro.
4774         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
4775         (SET_ASM_OP): New macro.
4776         (HANDLE_SYSV_PRAGMA): New macro.
4777         (ASM_WEAKEN_LABEL): New macro.
4778
4779 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
4780
4781         PR c++/10180
4782         * tree-inline.c (expand_call_inline): Call push_srcloc when
4783         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
4784
4785 2003-04-28  Mike Stump  <mrs@apple.com>
4786
4787         * gdbinit.in: Update to reflect new identifier structure.
4788
4789 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
4790
4791         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
4792         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
4793         struct tree_complex, struct tree_vector): Remove RTL field.
4794         (CONSTRUCTOR_ELTS): Use elt 0.
4795         * tree.def (CONSTRUCTOR): Delete first of its two operands.
4796         * varasm.c (output_constant_def): Remove early exit if
4797         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
4798         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
4799         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
4800         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
4801
4802 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
4803
4804         * c-decl.c (finish_decl): When prototype with asmspec is found
4805         for built-in, adjust built_in_decls as well as expr.c decls.
4806         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
4807         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
4808         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
4809
4810 2003-04-28  Richard Henderson  <rth@redhat.com>
4811
4812         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
4813         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
4814         integral constant mult operand.
4815         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
4816         (const_smulsi3_highpart_v8plus): Likewise.
4817         (const_smulsi3_highpart): Likewise.
4818         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
4819         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
4820         (const_umulsi3_highpart_v8plus): Likewise.
4821         (const_umulsi3_highpart): Likewise.
4822
4823 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
4824
4825         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
4826         Define as 1.
4827
4828 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
4829
4830         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
4831
4832 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
4833
4834         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
4835         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
4836         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
4837         functions.
4838         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
4839
4840 2003-04-28  Nick Clifton  <nickc@redhat.com>
4841
4842         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
4843
4844 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
4845
4846         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
4847         output_constant_def, use its result instead of TREE_CST_RTL (exp).
4848         Can assume it has the form (mem (symbol_ref ".LCxxx")).
4849         (expand_expr <COMPONENT_REF>): Can always just extract the
4850         relevant field of a CONSTRUCTOR.
4851         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
4852         ARRAY_RANGE_REF>): Make control flow explicit.
4853         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
4854         an INTEGER_CST.
4855
4856 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
4857
4858         * reload1.c (reg_set_luid): Fix a comment typo.
4859
4860 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
4861
4862         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
4863         struct deferred_string, const_str_htab): Kill.
4864         (n_deferred_strings): New static variable.
4865         (build_constant_desc): Set SYMBOL_REF_DECL of the new
4866         symbol_ref to point to the constant.
4867         (output_constant_def): When a deferred string is forced out,
4868         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
4869         (mark_constant): Likewise.
4870         (maybe_output_constant_def_contents): When deferring a string
4871         constant, just set STRING_POOL_ADDRESS_P and increment
4872         n_deferred_strings.
4873         (mark_constant_pool): Check n_deferred_strings, not the size
4874         of const_str_htab.
4875         (init_varasm_once): No need to create const_str_htab.
4876
4877         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
4878         SYMBOL_REF_DECL points to a constant.
4879
4880 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
4881
4882         * varasm.c (output_constant_def): Split out two new static
4883         functions, build_constant_desc and maybe_output_constant_def_contents.
4884         Restructure for comprehensibility.  Don't call
4885         output_addressed_constants.  Treat defstr being non-NULL for
4886         STRING_POOL_ADDRESS_P constants as an invariant.
4887         (struct deferred_string): Remove labelno field.
4888         (output_constant_def_contents): Kill labelno argument. Call
4889         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
4890         asm_out.internal_label.
4891         (mark_constant): Update call to output_constant_def_contents.
4892         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
4893         constants as an invariant.
4894
4895 2003-04-26  Richard Henderson  <rth@redhat.com>
4896
4897         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
4898         (ix86_expand_call, ix86_rtx_consts): Likewise.
4899
4900 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4901
4902         * doc/md.texi (cmpstr): Document additional restrictions.
4903
4904 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
4905
4906         * flags.h (time_report): Remove.
4907         * timevar.c (timevar_enable): New.
4908         (TIMEVAR_ENABLE): Remove, use timevar_enable.
4909         (timevar_init): Rename from init_timevar.
4910         * timevar.h (timevar_init): Rename from init_timevar.
4911         * toplev.c (time_report): Make static.
4912         (do_compile): Conditionally call init_timevar first.
4913         (preprocess_options): Move some code to do_compile.
4914
4915 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
4916
4917         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
4918
4919 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
4920
4921         * _cpp_lex_direct: Remove pointless code.
4922
4923 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
4924
4925         * doc/extend.texi (Function Attributes): Document "near" and "far"
4926         for 68HC11 and 68HC12.
4927
4928 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4929
4930         * expr.c (store_field): When making temporary for store, don't
4931         make it TYPE_QUAL_CONST.
4932
4933 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
4934
4935         * toplev.c (read_integral_parameter):  Use "argument" in error
4936         message to distinguish it from actual invalid options.
4937
4938 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
4939
4940         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
4941         addition of __PIC__ and __pic__ macros.
4942         * config/xtensa/xtensa.h: Clean up indentation.
4943
4944 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
4945
4946         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
4947         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
4948         (SUBTARGET_CPP_SPEC): Define.
4949         (LIB_SPEC): Delete.
4950         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
4951         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
4952         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
4953         Define.
4954         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4955         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
4956
4957 2003-04-25  H.J. Lu <hjl@gnu.org>
4958
4959         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
4960         for return mode.
4961         (ia64_expand_builtin): Set rmode to SImode for
4962         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
4963         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
4964         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
4965         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
4966
4967 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
4968
4969         * configure.in (make_compare_target):  Test for GNU cmp and set this
4970         variable appropriately.
4971         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
4972         compare4-lean): Rename actual targets to slowcompare*.  New compare*
4973         targets depend on names based on make_compare_target.
4974         * configure:  Regenerated.
4975
4976 2003-04-25  Richard Henderson  <rth@redhat.com>
4977
4978         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
4979         to clobber ar.pfs and ar.unat.
4980         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
4981         fix test for spilling ar.pfs to the stack.
4982
4983 2003-04-25  Richard Henderson  <rth@redhat.com>
4984
4985         PR opt/10315
4986         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
4987         checks during reload; use validize_mem instead of adjust_address.
4988
4989 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
4990
4991         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
4992         return values from recog_memoized().
4993
4994 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4995
4996         PR opt/8705
4997         * gcse.c (try_replace_reg): On a successful substitution of a constant
4998         into a single set, try to simplify the source of the set.
4999         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
5000         constant source.
5001
5002 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
5003
5004         * cpplex.c (cpp_token_len): Tighten up.
5005         (cpp_token_as_text): Need extra byte now.
5006         * cpplib.c (glue_header_name): Need extra 2 bytes.
5007         * cppmacro.c (cpp_macro_definition): Need extra byte.
5008
5009 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
5010
5011         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
5012         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
5013         where they might be not present. Use their _sp64 equivalent
5014         instead.
5015
5016 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
5017
5018         * i386.md (cvtsi2sdq): Fix typo in previous patch.
5019
5020 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
5021
5022         * configure.in: Check whether mbstowcs works.
5023         * configure, config.in: Regenerate.
5024         * intl.c: Use HAVE_WORKING_MBSTOWCS.
5025
5026 2003-04-24  H.J. Lu <hjl@gnu.org>
5027
5028         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
5029         for __sync_bool_compare_and_swap_di for int return type.
5030
5031         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
5032         Change return type to int.
5033         (__sync_bool_compare_and_swap): Likewise.
5034
5035 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
5036
5037         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
5038         looking for fallthru edge.
5039
5040         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
5041         Fix.
5042         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
5043         athlon-fvector): New.
5044         (athlon_*): Revisit to match new optimization guide.
5045         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
5046         * i386.md (cvt??2?? patterns): Fix modes.
5047         (fistp patterns): Set modes.
5048
5049         Accidentaly commited with my earlier reload patch:
5050         PR c/10308
5051         * reload.c (find_reloads_address_1): Reload plus at the place of
5052         index register.
5053
5054 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
5055
5056         New GCOV_TAG_FUNCTION layout
5057         * coverage.c (struct function_list): Replace name with ident.
5058         (struct counts_entry): Likewise.
5059         (fn_ident): New.
5060         (htab_counts_entry_hash, htab_counts_entry_eq,
5061         htab_counts_entry_del): Adjust.
5062         (reads_count_file, get_coverage_counts,
5063         coverage_begin_output, coverage_end_function): Adjust.
5064         (build_fn_info_type, build_fn_info_value): Likewise.
5065         * gcov-dump.c (tag_function): Adjust.
5066         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
5067         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
5068         * gcov.c (struct function_info): Add ident.
5069         (read_graph_file, read_count_file): Adjust.
5070         * libgcov.c (gcov_exit): Adjust.
5071
5072 2003-04-23  Richard Henderson  <rth@redhat.com>
5073
5074         PR opt/8300
5075         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
5076         after initialize_uninitialized_subregs; update reg info assuming
5077         new pseudos were created.
5078
5079 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
5080
5081         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
5082         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
5083         (lex_string): Take cpp_string with full spelling.
5084         (cb_ident): Update.
5085         (c_lex): Update diagnostics.
5086         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
5087         (create_literal): New.
5088         (lex_string): Unterminated literals have type CPP_OTHER.
5089         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
5090         for CPP_OTHER.
5091         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
5092         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
5093         * cpplib.c (parse_include, do_line, do_linemarker,
5094         destringize_and_run): Update for token storing full spelling.
5095         * cpplib.h: Update token spelling types.
5096         * cppmacro.c (stringify_arg, check_trad_stringification):
5097         Update for token storing full spelling.
5098
5099 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
5100
5101         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
5102
5103 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
5104
5105         * arm.h (TARGET_OPTIONS): Add value field.
5106
5107 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
5108
5109         * doc/extend.texi: Remove duplicate 2003 copyright date.
5110
5111 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
5112
5113         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
5114         (libgcov.a): Depends on LIBGCC_DEPS.
5115         * basic-block.h (profile_info): Moved here from coverage.h. Made
5116         a pointer.
5117         * coverage.c (struct function_list): Fixed array of counter types.
5118         (struct counts_entry): Keyed by counter type, contains summary.
5119         (profile_info): Moved to profile.c.
5120         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
5121         vars.
5122         (profiler_label): Remove.
5123         (ctr_labels): New.
5124         (set_purpose, label_for_tag, build_counter_section_fields,
5125         build_counter_section_value, build_counter_section_data_fields,
5126         build_counter_section_data_values, build_function_info_fields,
5127         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
5128         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
5129         build_ctr_info_value, build_gcov_info): New.
5130         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
5131         (reads_counts_file): Adjust.
5132         (get_coverage_counts): Takes counter number. Add summary
5133         parameter. Adjust.
5134         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
5135         create counter array labels.
5136         (coverage_end_function): Adjust.
5137         (create_coverage): Adjust.
5138         (find_counters_section): Remove.
5139         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
5140         (struct section_info, struct profile_info): Remove.
5141         (profile_info): Moved to basic-block.h.
5142         (coverage_counter_ref): Takes a counter number.
5143         (get_coverage_counts): Takes a counter number. Added summary
5144         parameter.
5145         (find_counters_section): Remove.
5146         * gcov-dump.c (tag_arc_counts): Rename to ...
5147         (tag_counters): ... here. Adjust.
5148         (tag_table): Move tag_counters to 3rd entry. Remove
5149         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
5150         (dump_file): Check for counter tag values here.
5151         (tag_summary): Adjust.
5152         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
5153         * gcov-io.h (GCOV_LOCKED): New.
5154         (GCOV_TAG_ARC_COUNTS): Rename to ...
5155         (GCOV_TAG_COUNTS_BASE): ... here.
5156         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
5157         Remove.
5158         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
5159         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
5160         GCOV_TAG_IS_COUNTER): New.
5161         (struct gcov_ctr_summary): New.
5162         (struct gcov_summary): Adjust.
5163         (struct gcov_counter_section): Remove.
5164         struct gcov_counter_section_data): Remove.
5165         (struct gcov_function_info): Rename to ...
5166         (struct gcov_fn_info): ... here. Adjust.
5167         (struct gcov_ctr_info): New.
5168         (struct gcov_info): Adjust.
5169         * gcov.c (read_count_file): Adjust.
5170         (output_lines): Adjust.
5171         * libgcov.c (gcov_exit): Adjust.
5172         (__gcov_flush): Adjust.
5173         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
5174         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
5175         probably_never_executed_bb_p, compute_frequency_function): Adjust
5176         profile_info use.
5177         * profile.c (struct counts_entry): Remove.
5178         (profile_info): Define here.
5179         (get_exec_counts): Adjust get_coverage_counts call.
5180         (compute_branch_probablilities): Remove find_counters_section
5181         call.
5182         (gen_edge_profiler): Adjust coverage_counter_ref call.
5183         * tracer.c (tail_duplicate): Adjust profile_info use.
5184
5185 2003-04-23  Roger Sayle  <roger@eyesopen.com>
5186
5187         PR optimization/10339
5188         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
5189         directly instead of unsafely transforming call into a memcmp.
5190         (expand_builtin_strncmp): Likewise.
5191
5192 2003-04-22  Roger Sayle  <roger@eyesopen.com>
5193
5194         * alias.c (mark_constant_function):  Check for constancy and
5195         purity even of void functions.  Update both the function decl
5196         and the cgraph RTL info with the results.
5197
5198 2003-04-22  Roger Sayle  <roger@eyesopen.com>
5199
5200         * real.c (do_add): Change to return a bool indicating that the
5201         result of the operation may be inexact due to loss of precision.
5202         (do_multiply): Likewise.
5203         (do_divide): Likewise.
5204
5205 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
5206             Loren James Rittle  <ljrittle@acm.org>
5207
5208         * dwarf2out.c (fde_table_allocated): Mark with GTY.
5209         (decl_die_table_allocated): Likewise.
5210         (abbrev_die_table_allocated): Likewise.
5211         (line_info_table_allocated): Likewise.
5212         (separate_line_info_table_allocated): Likewise.
5213         (pubname_table_allocated): Likewise.
5214         (arange_table_allocated): Likewise.
5215         (ranges_table_allocated): Likewise.
5216         (decl_die_table_in_use): Unconditionalize; mark with GTY.
5217         (abbrev_die_table_in_use): Likewise.
5218         (line_info_table_in_use): Likewise.
5219         (separate_line_info_table_in_use): Likewise.
5220         (pubname_table_in_use): Likewise.
5221         (arange_table_in_use): Likewise.
5222         (ranges_table_in_use): Likewise.
5223         (have_location_lists): Likewise.
5224         (emitcount): New GTY-marked static, moved...
5225         (maybe_emit_file): ...from here.
5226         (label_num): New GTY-marked static, moved...
5227         (gen_internal_sym): ...from here.
5228
5229 2003-04-22  Richard Henderson  <rth@redhat.com>
5230
5231         PR 8866
5232         * rtl.h (MEM_NOTRAP_P): New.
5233         (MEM_COPY_ATTRIBUTES): Copy it.
5234         * rtlanal.c (may_trap_p): Check it.
5235         * expr.c (do_tablejump): Set it.
5236         * doc/rtl.texi (Flags): Document it.
5237
5238         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
5239
5240 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
5241
5242         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
5243         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
5244
5245 2003-04-22  Vincent Celier <celier@gnat.com>
5246
5247         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
5248         --enable-threads=gnat.
5249         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
5250         * configure.in: Add gnat to the list of thread packages
5251         * configure: Rebuild.
5252         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
5253
5254 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
5255
5256         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
5257
5258 2003-04-22  Devang Patel  <dpatel@apple.com>
5259
5260         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
5261         parameter count.
5262         (_cpp_copy_replacement_text): Same.
5263
5264 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
5265
5266         * c-lex.c (c_lex): Handle CPP_OTHER differently.
5267         * cppexp.c (_cpp_parse_expr): Similarly.
5268         * cpplex.c (SPELL_CHAR): Remove.
5269         (_cpp_lex_direct): Stray chars are saved as byte strings.
5270         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
5271         handle SPELL_CHAR.
5272         (cpp_avoid_paste): Update handling of CPP_OTHER.
5273         * cpplib.h: Spell CPP_OTHER like a number.
5274         (struct cpp_token): Remove member c.
5275         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
5276
5277 2003-04-22  David Turner <novalis@gnu.org>
5278
5279         * gbl-ctors.h: Add special license exception.
5280         * libgcc2.h: Likewise.
5281         * tsystem.h: Likewise.
5282         * gcov-io.h: Likewise.
5283
5284 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
5285
5286         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
5287         macro defaulting to original BRANCH_COST heuristic.
5288         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
5289
5290         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
5291
5292 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
5293
5294         * config/rs6000/t-spe: Merge in t-fprules into file.
5295
5296         * config.gcc: Add t-spe to powerpc-eabispe.
5297
5298 2003-04-22  Kean Johnston  <jkj@sco.com>
5299
5300         * tlink.c (recompile_files): Add missing '=' to putenv calls
5301
5302 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
5303
5304         * ginclude/stddef.h: Provide C++ safe offsetof.
5305
5306 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
5307
5308         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
5309         for reg notes, if there are no substitutions, just use a SUBREG.
5310
5311 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
5312
5313         * Makefile.in (calls.o): Depend on except.h.
5314         * calls.c: Include except.h.
5315         (emit_call_1): Call note_eh_region_may_contain_throw if
5316         appropriate.
5317         * except.c (eh_region): Add may_contain_throw.
5318         (expand_eh_region_end_cleanup): Do not include handler code when
5319         it cannot be reached.
5320         (note_eh_region_may_contain_throw): New function.
5321         * except.h (note_eh_region_may_contain_throw): New function.
5322
5323 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
5324
5325         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
5326         changes.
5327
5328 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
5329
5330         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
5331         64-bit long doubles.
5332
5333 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
5334
5335         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
5336         a number of conversions required for type consistency and previously
5337         stripped off by STRIP_NOPS.
5338
5339         * calls.c (expand_call): Prevent sibcall optimization for calls to
5340         nested subprograms.
5341
5342         * expmed.c (extract_bit_field): Reverse operands of && condition to
5343         prevent a potential division by zero in the previously first branch.
5344         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
5345
5346 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
5347
5348         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
5349         (subrange_type_die): Likewise.
5350         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
5351         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
5352
5353 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5354
5355         Break out coverage routines to new file.
5356         * Makefile.in (COVERAGE_H): New variable
5357         (C_OBJS): Add coverage.o
5358         (coverage.o): New target.
5359         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
5360         dependencies.
5361         (GTFILES): Adjust.
5362         (gt-coverage.h): New target.
5363         (gt-profile.h): Remove.
5364         * profile.h: Remove. Move to ...
5365         * coverage.h: ... here. New. #include gcov-io.h.
5366         * gcov-io.h: Move function definitions to ...
5367         * gcov-io.c: ... here. New.
5368         * profile.c: Move coverage routines to coverage.c.
5369         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
5370         end_branch_prob): Adjust.
5371         * coverage.c: New. Coverage routines from profile.c
5372         (coverage_counter_ref, coverage_init, coverage_finish,
5373         coverage_end_function, coverage_begin_output,
5374         coverage_counter_ref, get_coverage_counts): Define.
5375         * gcov-dump.c, gcov.c: #include gcov-io.c.
5376         * libgcov.c: Likewise. Adjust.
5377         * loop-init.c: Don't #include profile.h
5378         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
5379         * rtl.h: Add coverage prototypes.
5380         * toplev.c (compile_file): Init coverage, not branch_prob.
5381         Always call coverage_finish.
5382         (rest_of_compilation): Call coverage_end_function.
5383
5384 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
5385
5386         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
5387
5388 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
5389
5390         * c-ppoutput.c (cb_include): Don't take a cpp_token.
5391         * cppfiles.c: Don't undef strcmp.
5392         (find_include_file): Don't take a cpp_token.  Check for empty
5393         file names.
5394         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
5395         (cpp_push_include): Simplify.
5396         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
5397         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
5398         (parse_include): Similary.  Don't check for zero-length filenames.
5399         (do_include_common, do_pragma_dependency): Update accordingly.
5400         * cpplib.h (struct cpp_callbacks): Change prototype of include.
5401
5402 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5403
5404         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
5405         details of conflict handling.
5406
5407         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
5408         when conversion overflows.
5409
5410         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
5411
5412         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
5413         before clearing.
5414
5415 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
5416
5417         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
5418         have the same form as the old RTL.
5419
5420 2003-04-21  Andreas Jaeger  <aj@suse.de>
5421
5422         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
5423
5424 2003-04-20  Chris Lattner  <sabre@nondot.org>
5425             Zack Weinberg  <zack@codesourcery.com>
5426
5427         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
5428         genrtl_cleanup_stmt.  Correct comment at head of
5429         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
5430
5431         * stmt.c (struct nesting): Kill n_function_calls.
5432         (expand_start_bindings): Don't set
5433         thisblock->data.block.n_function_calls.
5434         (expand_end_bindings): Compare function_call_count against 0.
5435         (expand_cleanups): Kill DONT_DO argument; all callers passed
5436         NULL_TREE. All callers updated to match.
5437
5438 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
5439
5440         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
5441         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
5442         (output_constant_def): Remove code predicated on
5443         defer_addressed_constants_flag.
5444
5445         * output.h: Remove prototypes of deleted functions.
5446         * c-typeck.c (constructor_subconstants_deferred): Kill.
5447         (struct initializer_stack): Remove 'deferred' field.
5448         (start_init): Remove all references to the above.
5449         (finish_init): Likewise. Also remove never-executed call to
5450         output_deferred_addressed_constants.  Pull assignment to
5451         defstr out of if expression.
5452
5453 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
5454
5455         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
5456         NOTE_NEWLINE): Remove.
5457         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
5458         to handle new form of line note type.
5459
5460 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
5461
5462         * target.h (encode_section_info): Add new argument carrying
5463         the RTL to be modified by the hook.
5464
5465         * varasm.c (make_decl_rtl, output_constant_def): Update calls
5466         to encode_section_info.
5467         (default_encode_section_info): Take and use RTL argument,
5468         don't use TREE_CST_RTL or DECL_RTL.
5469         * output.h: Update prototype of default_encode_section_info.
5470         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
5471         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
5472         Update calls to encode_section_info.
5473
5474         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
5475         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
5476         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
5477         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
5478         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
5479         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
5480         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
5481         except for PE dllimport/dllexport.  Update calls to
5482         default_encode_section_info.
5483
5484         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
5485         Update prototypes.
5486
5487         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
5488
5489 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5490
5491         PR/8705
5492         * pa.md (movccfp): New expander.
5493         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
5494         Reverse fcmp conditions.
5495
5496 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5497
5498         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
5499         of operand 1 correctly.
5500
5501 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
5502
5503         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
5504         * gcov.c (output_lines): Don't be so fussy about going past EOF.
5505
5506 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
5507
5508         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
5509         (cppcharset.o): New target.
5510         * c-lex.c (is_extended_char): Move to cppcharset.c.
5511         (utf8_extend_token): Delete.
5512         * cppcharset.c: New file.
5513         * cpphash.h (_cpp_valid_ucn): New.
5514         * cpplex.c (lex_identifier): Update prototype.
5515         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
5516         escapes.
5517         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
5518         in cppcharset.c.
5519         (lex_number, lex_identifier, cpp_parse_escape): Update.
5520         (_cpp_lex_direct): Update to handle UCNs.
5521         (cpp_avoid_paste): Don't paste to form a UCN.
5522
5523 2003-04-19  Roger Sayle  <roger@eyesopen.com>
5524
5525         * builtins.c (expand_builtin):  Don't expand a pure or const
5526         built-in function if the result will be ignored and none of
5527         its arguments are volatile.
5528
5529 2003-04-19  Kean Johnston  <jkj@sco.com>
5530
5531         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
5532         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
5533         target fragment now: t-sco5; dont compile crti.o.
5534         * config/i386/sco5.h: major overhaul to remove all COFF remnants
5535         and to use elfos.h for most definitions.
5536         (BSS_SECTION_ASM_OP): set correct segment attributes.
5537         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
5538         (DWARF2_UNWIND_INFO): Always set to 1.
5539         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
5540         (MD_STARTFILE_PREFIX_1): Define.
5541         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
5542         (DEFAULT_LINKER): Define if not specified to configure.
5543         (CTORS_SECTION_ASM_OP): Remove COFF crud.
5544         (DTORS_SECTION_ASM_OP): Remove COFF crud.
5545         (WINT_TYPE): Define.
5546         (SDB_DEBUGGING_INFO): Remove.
5547         (EXTRA_SECTIONS): Likewise.
5548         (EXTRA_SECTION_FUNCTIONS): Likewise.
5549         (CTOR_LIST_BEGIN): Likewise.
5550         (CTOR_LIST_END): Likewise.
5551         (INIT_SECTION_FUNCTION): Likewise.
5552         (FINI_SECTION_FUNCTION): Likewise.
5553         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
5554         (LOCAL_LABEL_PREFIX): Likewise.
5555         (NON_SAVING_SETJMP): Likewise.
5556         (RETURN_POPS_ARGS): Likewise.
5557         (ASM_OUTPUT_SKIP): Likewise.
5558         (TARGET_ASM_NAMED_SECTION): Likewise.
5559         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
5560         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
5561         (ASM_OUTPUT_IDENT): Likewise.
5562         (ASM_OUTPUT_CASE_LABEL): Likewise.
5563         (ASM_OUTPUT_ASCII): Likewise.
5564         (ASM_OUTPUT_LIMITED_STRING): Likewise.
5565         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
5566         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5567         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
5568         (ASM_FINISH_DECLARE_OBJECT): Likewise.
5569         (ASM_DECLARE_OBJECT_NAME): Likewise.
5570         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
5571         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5572         (ASM_DECLARE_RESULT): Likewise.
5573         (ASM_WEAKEN_LABEL): Likewise.
5574         (SUPPORTS_WEAK): Likewise.
5575         (APPLY_RESULT_SIZE): Likewise.
5576         (LPREFIX): Likewise.
5577         (ALIGN_ASM_OP): Likewise.
5578         (ASCII_DATA_ASM_OP): Likewise.
5579         (IDENT_ASM_OP): Likewise.
5580         (ASM_SHORT): Likewise.
5581         (ASM_LONG): Likewise.
5582         (TYPE_ASM_OP): Likewise.
5583         (SIZE_ASM_OP): Likewise.
5584         (STRING_ASM_OP): Likewise.
5585         (SKIP_ASM_OP): Likewise.
5586         (EH_FRAME_SECTION_ASM_OP): Likewise.
5587         (READONLY_DATA_SECTION_ASM_OP): Likewise.
5588         (INIT_SECTION_ASM_OP): Likewise.
5589         (FINI_SECTION_ASM_OP): Likewise.
5590         (TEXT_SECTION_ASM_OP): Likewise.
5591         (DATA_SECTION_ASM_OP): Likewise.
5592         (TYPE_OPERANT_FORMAT): Likewise.
5593         (ASM_SPEC): Remove COFF code.
5594         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
5595         cause -pg to emit an error; use pcrt1elf.o with -pp
5596         (ENDFILE_SPEC): Likewise.
5597         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
5598         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
5599         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
5600         add -z alt_resolve to support weak symbols the way GCC wants them.
5601         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
5602         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
5603         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
5604         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
5605         (CRTSTUFF_T_CFLAGS_S): Define.
5606         (MULTILIB_OPTIONS): Likewise.
5607         (MULTILIB_DIRNAMES): Likewise.
5608         (MULTILIB_MATCHES): Likewise.
5609         (MULTILIB_EXTRA_OPTS): Likewise.
5610         (LIBGCC): Likewise.
5611         (INSTALL_LIBGCC): Likewise.
5612         (crti.o): Remove.
5613         * config/i386/t-sco5gas: Remove.
5614         * doc/install.texi: Updated for new OpenServer instructions.
5615         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
5616
5617 2003-04-19  Kean Johnston  <jkj@sco.com>
5618
5619         * fixinc/check.tpl: Allow user to over-ride diff program.
5620         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
5621         (sco_math): Added test for SCO math header files.
5622         (sco_regset): Added check for conflicts with ieeefp.h.
5623         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
5624         * fixinc/fixincl.x: Regenerated
5625         * fixinc/tests/base/math.h: Added sco_math tests.
5626         * fixinc/tests/base/string.h: New file.
5627         * fixinc/tests/base/sys/regset.h: New file.
5628
5629 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5630
5631         * cpphash.h (struct cpp_buffer): Remove backup_to.
5632         * cpplex.c (BACKUP, get_effective_char): Die.
5633         (_cpp_skip_block_comment): Assume '*' is location on entry.
5634         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
5635         (IF_NEXT_IS): Update.
5636         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
5637
5638 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
5639
5640         * README.Portability: Move to a new section and obsolete K+R
5641         portability issues.
5642
5643 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
5644
5645         * rtlanal.c (subreg_offset_representable_p):  Fix call of
5646         subreg_lowpart.
5647
5648 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5649
5650         * cpphash.h (struct cpp_reader): New member warned_dollar.
5651         * cpplex.c (continues_identifier_p): New function.
5652         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
5653         lex_number and lex_string, and simplify.
5654         (parse_slow, unescaped_terminator_p): Die.
5655         (_cpp_lex_direct): Update.
5656
5657 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5658
5659         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
5660
5661 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
5662
5663         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
5664         fork behaviour.
5665
5666 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5667
5668         * cppexp.c (eval_token): Permit true and false even if pedantic.
5669
5670 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5671
5672         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
5673
5674 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
5675
5676         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
5677         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
5678         (struct include_file): Remove fefcnt, mapped members.
5679         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
5680         (read_include_file): Don't use mmap, terminate buffers in '\r'.
5681         (purge_cache): Don't use munmap.
5682         * cpphash.h (CPP_BUF_COLUMN): Update.
5683         (lexer_state): Remove lexing_comment.
5684         (struct _cpp_line_note): New.
5685         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
5686         next_line and need_line.  Remove col_adjust and saved_flags.
5687         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
5688         _cpp_skip_block_comment, scan_out_logical_line): New.
5689         (_cpp_init_mbchar): Remove.
5690         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
5691         (cpp_read_main_file): Set line to 1 earlier.
5692         (post_options): -traditional-cpp doesn't want trigraphs.
5693         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
5694         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
5695         _cpp_get_fresh_line): New.
5696         (handle_newline, skip_escaped_newlines, trigraph_p,
5697         continue_after_nul, _cpp_init_mbchar): Remove.
5698         (get_effective_char): Update.
5699         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
5700         (skip_line_comment): Simplify.
5701         (skip_whitespace, parse_identifier, parse_slow, parse_number,
5702         parse_string): Update.
5703         (cpp_lex_direct): Use clean lines and process line notes.  Update.
5704         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
5705         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
5706         directly.
5707         (_cpp_handle_directive): Don't set saved_flags.
5708         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
5709         cpp_undef, handle_assertion, cpp_push_buffer): Update.
5710         (_cpp_pop_buffer): Free notes.
5711         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
5712         * cpppch.c (cpp_read_state): \n terminate buffer.
5713         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
5714         (copy_comment): Use _cpp_skip_block_comment.
5715         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
5716         Simplify.
5717         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
5718         save_replacement_text): Update.
5719         (scan_out_logical_line): Update to use clean lines and process
5720         line notes.
5721         * fix-header.c (read_scan_file): Update.
5722
5723 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
5724
5725         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
5726         null begin parameter (as well as pointer to null).
5727         (__deregister_frame_info_bases): Likewise.
5728
5729 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5730
5731         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
5732         hard or virtual register and copy into pseudo if replacement fails.
5733
5734         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
5735
5736         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
5737
5738 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
5739
5740         * calls.c (expand_call): Move special case for constructor calls
5741         to right place. Ensures constructor calls used to initialize
5742         arguments get a clean outgoing argument block for themselves.
5743         Move check for stack deallocation completeness until after last
5744         deallocation.  Add stack_pointer_delta to set of state
5745         variables saved and restored along with current stack_level.
5746
5747         * integrate.c (expand_inline_function): Ensure non-const actuals
5748         don't end up const in the caller's flow after conversion to possibly
5749         const formal type.
5750
5751 2003-04-18  Vincent Celier  <celier@gnat.com>
5752
5753         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
5754         and *_DIV_EXPR as TRUNC_*_EXPR.
5755
5756 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
5757
5758         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
5759         for orphaned jump tables.
5760
5761 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
5762
5763         * reload1.c: Revert my previous patch on 2002-04-17.
5764
5765 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5766
5767         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
5768         Add Segher Boessenkool.
5769
5770 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
5771
5772         PR c/9177
5773         * c-decl.c (c_expand_body): Don't garbage collect the function
5774         body if we are going to dump it later.
5775
5776 2003-04-18  Richard Henderson  <rth@redhat.com>
5777
5778         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
5779         (alpha_end_function): Don't set them.
5780         (decl_in_text_section): Remove.
5781         (alpha_encode_section_info): Remove.
5782         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
5783         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
5784         sections, rather than decl_in_text_section results.
5785
5786 2003-04-18  Roger Sayle  <roger@eyesopen.com>
5787
5788         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
5789         and SIGN_EXTRACT.
5790
5791 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5792
5793         PR optimization/7675
5794         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
5795         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
5796         nested functions if they refer to declarations from parent functions.
5797         * stmt.c (expand_decl): Don't put automatic variables in registers
5798         if the DECL_NONLOCAL flag is set.
5799
5800 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
5801
5802         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
5803         consider those to be movable where the source matches
5804         want_to_gcse_p.
5805         (update_ld_motion_stores): In comment, refer to
5806         compute_ld_motion_mems for validity of replacement.
5807
5808 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
5809
5810         * gcov-dump.c (tag_summary): Remove max_sum
5811         * gcov-io.h (gcov_summary, gcov_write_summary,
5812         gcov_read_summary): Kill max_sum.
5813         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
5814         message more verbose.
5815
5816         * emit-rtl.c (subreg_hard_regno):  Check that register is
5817         representable.
5818
5819         * reload.c (reload_inner_reg_of_subreg):  When register is not
5820         representable, reload the whole thing.
5821         (find_reloads): Likewsie.
5822         * rtlanal.c (subreg_representable_p):  New function.
5823
5824         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
5825         allow negative probabilities for edges from the call to exit.
5826         (branch_prob): Do not add fake edges for functions that may return
5827         twice.
5828
5829 2003-04-17  DJ Delorie  <dj@redhat.com>
5830
5831         * toplev.c (target_options): Add value field.
5832         (set_target_switch): Handle target options with values.
5833         * doc/tm.texi: Document how fixed vs variable target
5834         options work.
5835         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
5836         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
5837         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
5838         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
5839         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
5840         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
5841         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
5842         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
5843         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
5844         Add value initializer to target options.
5845
5846 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
5847
5848         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
5849
5850 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
5851
5852         * reload1.c (move2add_last_cc0): New.
5853         (reload_cse_move2add): Detect implicit sets.
5854         (move2add_note_store): Notice a store into cc0.
5855
5856 2003-04-17  Roger Sayle  <roger@eyesopen.com>
5857
5858         PR c/10375
5859         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
5860         function attributes.
5861
5862 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
5863
5864         * doc/sourcebuild.texi (Test Suites): Document support for testing
5865         binary compatibility (moved from testsuite/README.compat).
5866
5867 2003-04-17  Richard Henderson  <rth@redhat.com>
5868
5869         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
5870
5871 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
5872
5873         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
5874         the one provided by the FSF.
5875
5876 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5877
5878         * doc/install.texi (Binaries): Update URL and list of platforms
5879         provided by ftp.thewrittenword.com.
5880
5881 2003-04-17  Richard Henderson  <rth@redhat.com>
5882
5883         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
5884         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
5885         * config/xtensa/xtensa.md (call, call_value): Likewise.
5886
5887 2003-04-17  Richard Henderson  <rth@redhat.com>
5888
5889         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
5890         (print_operand_address): Likewise.
5891         (ep_memory_operand): Likewise.
5892         (special_symbolref_operand): Likewise.
5893         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
5894         (v850_encode_section_info): Call default_encode_section_info.
5895         (v850_strip_name_encoding): Remove.
5896         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
5897         (ASM_OUTPUT_LABELREF): Remove.
5898         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
5899         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
5900         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
5901         (ENCODED_NAME_P): Remove.
5902         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
5903         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
5904         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
5905
5906 2003-04-17  Richard Henderson  <rth@redhat.com>
5907
5908         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
5909         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
5910         SYMBOL_REF_FUNCTION_P.
5911
5912 2003-04-17  Richard Henderson  <rth@redhat.com>
5913
5914         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
5915         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
5916         (text_segment_operand): Likewise.
5917
5918 2003-04-17  Richard Henderson  <rth@redhat.com>
5919
5920         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
5921         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
5922         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
5923         (sh_encode_section_info): Remove.
5924         (sh_strip_name_encoding): Remove.
5925         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
5926         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
5927         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
5928         (ASM_OUTPUT_LABELREF): Remove.
5929         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
5930         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
5931
5932 2003-04-17  Richard Henderson  <rth@redhat.com>
5933
5934         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
5935         (tls_model_chars): Remove.
5936         (larl_operand): Use SYMBOL_REF_FLAGS.
5937         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
5938         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
5939         (s390_output_mi_thunk): Likewise.
5940         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
5941         (s390_function_profiler): Likewise.
5942         (s390_encode_section_info): Use default_encode_section_info
5943         and SYMBOL_FLAG_ALIGN1.
5944         (s390_strip_name_encoding): Remove.
5945         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
5946         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
5947         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
5948
5949 2003-04-17  Richard Henderson  <rth@redhat.com>
5950
5951         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
5952         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
5953         (print_operand_address): Likewise.
5954
5955         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
5956         * config/ns32k/ns32k.c (expand_block_move): Don't check
5957         flag_unroll_loops.
5958
5959 2003-04-17  Richard Henderson  <rth@redhat.com>
5960
5961         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
5962         SYMBOL_REF_FLAG.
5963
5964 2003-04-17  Richard Henderson  <rth@redhat.com>
5965
5966         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
5967
5968         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
5969         (SYMBOL_REF_MODEL): New.
5970         (LIT_NAME_P): Move from m32r.h.
5971         (m32r_select_section): Remove.
5972         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
5973         (m32r_strip_name_encoding): Remove.
5974         (m32r_in_small_data_p): New.
5975         (small_data_operand): Use SYMBOL_REF_SMALL_P.
5976         (addr24_operand): Use SYMBOL_REF_MODEL.
5977         (call26_operand): Likewise.
5978         (addr32_operand): Tidy.
5979         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
5980         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
5981         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
5982         (READONLY_DATA_SECTION_ASM_OP): Remove.
5983         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
5984         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
5985         (TARGET_ASM_SELECT_SECTION): Remove.
5986         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
5987         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
5988         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
5989         (ASM_OUTPUT_LABELREF): Remove.
5990
5991 2003-04-17  Richard Henderson  <rth@redhat.com>
5992
5993         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
5994         (encode_section_info): Remove.
5995         * config/ip2k/ip2k-protos.h: Update.
5996
5997 2003-04-17  Richard Henderson  <rth@redhat.com>
5998
5999         * varasm.c (default_encode_section_info): Don't set
6000         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
6001         * config/i370/i370.c (i370_encode_section_info): Remove.
6002         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
6003         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
6004         * config/i370/i370.md (movsi): Likewise.
6005
6006         * config/i370/t-i370: Add missing backslash.
6007
6008 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
6009
6010         * doc/invoke.texi (inline-limit): Fix pasto.
6011
6012 2003-04-17  Richard Henderson  <rth@redhat.com>
6013
6014         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
6015         (small_call_insn_operand): Use it.
6016         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
6017         (h8300_eightbit_constant_address_p): Use it.
6018         (SYMBOL_FLAG_TINY_DATA): New.
6019         (h8300_tiny_constant_address_p): Use it.
6020         (h8300_encode_label, h8300_strip_name_encoding): Remove.
6021         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
6022         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
6023         (ASM_OUTPUT_LABELREF): Remove.
6024
6025 2003-04-16  Richard Henderson  <rth@redhat.com>
6026
6027         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
6028         all users with SYMBOL_REF_SMALL_P.
6029         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
6030         (frv_encode_section_info): Remove.
6031         (frv_strip_name_encoding): Remove.
6032         (frv_in_small_data_p): Merge tests from encode_section_info.
6033         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
6034         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
6035         (SDATA_NAME_P): Remove.
6036         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
6037         (ASM_OUTPUT_LABELREF): Remove.
6038         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
6039
6040         * config/frv/frv.c (frv_asm_out_constructor): New.
6041         (frv_asm_out_destructor): New.
6042         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
6043         (DTORS_SECTION_ASM_OP): New.
6044         (ASM_OUTPUT_CONSTRUCTOR): Remove.
6045         (ASM_OUTPUT_DESTRUCTOR): Remove.
6046
6047 2003-04-16  Richard Henderson  <rth@redhat.com>
6048
6049         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
6050         SYMBOL_REF_LOCAL_P; abort if not pic.
6051         (cris_encode_section_info): Remove.
6052
6053 2003-04-16  Richard Henderson  <rth@redhat.com>
6054
6055         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
6056         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
6057
6058         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
6059         flag_inline_trees.
6060
6061 2003-04-16  Richard Henderson  <rth@redhat.com>
6062
6063         * config/avr/avr.c (avr_encode_section_info): Remove.
6064         (avr_insert_attributes): New.
6065         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
6066         (avr_assemble_integer): Likewise.
6067
6068 2003-04-16  Richard Henderson  <rth@redhat.com>
6069
6070         * arc.c (arc_encode_section_info): Remove.
6071         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
6072         (arc_print_operand, arc_print_operand_address): Likewise.
6073         * arc.h (EXTRA_CONSTRAINT): Likewise.
6074
6075 2003-04-16  Roger Sayle  <roger@eyesopen.com>
6076
6077         * c-semantics.c (find_reachable_label): New function to find a
6078         potentially reachable label in an expression.
6079         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
6080         assumes the start of the IF_STMT is unreachable (dead) code.
6081         (expand_unreachable_stmt): Similar to expand_stmt but assumes
6082         the start of the statement list is unreachable (dead) code.
6083         (genrtl_if_stmt):  If the controlling expression of the IF
6084         is constant, use expand_unreachable_stmt for the THEN or ELSE
6085         clause as appropriate.
6086         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
6087         the body of a SWITCH statement.
6088         (expand_stmt): The code immediately following a "return",
6089         "break", "continue" or "goto" is unreachable.
6090         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
6091
6092 2003-04-16  Richard Henderson  <rth@redhat.com>
6093
6094         * rtl.h (MEM_ALIAS_SET): Update documentation.
6095         * doc/rtl.texi (Special Accessors): New node.
6096         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
6097
6098 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
6099
6100         * reload1.c (reload_cse_noop_set_p): Return false if mode of
6101         SET_DEST is not the same as that returned by...
6102         * cselib.h (cselib_reg_set_mode): ... new function.
6103         * cselib.c (cselib_reg_set_mode): Define it.
6104         (REG_VALUES): Document semantics of first element as set mode.
6105         (cselib_subst_to_values): Skip first element if ELT is NULL.
6106         (cselib_lookup): Likewise.  Insert past the first element.
6107         (cselib_invalidate_regno): NULLify first element.
6108         (cselib_record_set): Set first element.
6109
6110 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
6111
6112         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
6113         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
6114         * tree.h: Add prototypes for the two new functions.
6115         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
6116         updates introduced in the previous revision by call to saved_expr_p.
6117         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
6118
6119         * expr.c (store_field): Force usage of bitfield instructions when
6120         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
6121         (expand_expr, case BIT_FIELD_REF): likewise.
6122
6123 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
6124
6125         PR middle-end/8866
6126         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
6127         jumptables.
6128
6129 2003-04-16  Richard Henderson  <rth@redhat.com>
6130
6131         * config/ia64/ia64.c (sdata_symbolic_operand): Use
6132         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
6133         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6134         (function_operand): Use SYMBOL_REF_FUNCTION_P.
6135         (ia64_expand_load_address): Likewise.
6136         (ia64_assemble_integer): Likewise.
6137         (ia64_encode_section_info): Remove.
6138         (ia64_strip_name_encoding): Remove.
6139         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
6140         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
6141
6142 2003-04-16  Richard Henderson  <rth@redhat.com>
6143
6144         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
6145         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
6146         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
6147         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
6148         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
6149         (global_symbolic_operand): Similarly.
6150         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
6151         (tls_symbolic_operand_type): Likewise.
6152         (alpha_encode_section_info): Use default_encode_section_info.
6153         (alpha_strip_name_encoding): Remove.
6154         (get_tls_get_addr): Split out from ...
6155         (alpha_legitimize_address): ... here.
6156         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
6157         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
6158         (alpha_initialize_trampoline): Use init_one_libfunc.
6159         (alpha_setup_incoming_varargs): Mark unused parameters.
6160         (alpha_initial_elimination_offset): Likewise.
6161         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
6162         (unicosmk_unique_section): Use default_strip_name_encoding.
6163         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
6164
6165 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
6166
6167         * config.gcc: Add t-spe for eabispe.
6168
6169         * config/rs6000/t-spe: New.
6170
6171 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
6172
6173         Re-apply this patch:
6174
6175         2002-05-16  Dale Johannesen  <dalej@apple.com>
6176           * combine.c (cant_combine_insn_p):  Reenable combinations
6177           involving hard regs unless CLASS_LIKELY_SPILLED_P.
6178
6179 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6180
6181         PR/10271
6182         * pa-protos.h (function_arg): Remove last argument.
6183         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
6184         * pa.h (struct hppa_args): Add member incoming.
6185         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
6186         member incoming.
6187         (FUNCTION_ARG): Revise call to function_arg.
6188         (FUNCTION_INCOMING_ARG): Delete.
6189
6190 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
6191
6192         * configure.in: Unify the code which creates symlinks to a
6193         just-built as, ld, objdump, and nm with the code that detects
6194         their presence for purposes of feature tests.
6195         * configure: Regenerate.
6196
6197 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
6198
6199         * varasm.c (output_constant_def): Do not consult
6200         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
6201         (after_function_constants, output_after_function_constants): Delete.
6202         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
6203         * config/mips/mips-protos.h, config/mips/mips.c
6204         (mips16_constant_after_function_p): Delete.
6205         * config/mips/mips.h: Delete #if-0-ed definition of
6206         CONSTANT_AFTER_FUNCTION_P.
6207         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
6208         mention of CONSTANT_AFTER_FUNCTION_P in comment.
6209
6210 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
6211
6212         * tree.c (next_decl_uid): Mark with GTY.
6213         (next_type_uid): Likewise.
6214
6215 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
6216
6217         PR target/9594:
6218         * sh.c (barrier_align): Also recognize stuff_delay_slot as
6219         an indicator that a barrier was created by branch splitting.
6220
6221 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
6222
6223         * c-decl.c (implicitly_declare): Copy declarations that are going
6224         to be placed in a local scope.
6225
6226 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
6227
6228         * invoke.texi (Spec Files): Wrap if-exists-else example.
6229         (MCore): Remove duplicate @itemx entries and @opindex entries.
6230
6231 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
6232
6233         * unwind.inc (_Unwind_Backtrace): New function.
6234         * unwind.h (_Unwind_Backtrace): Declare it.
6235         * libgcc-std.ver (_Unwind_Backtrace): Export it.
6236
6237 2003-04-14  Jason Merrill  <jason@redhat.com>
6238
6239         PR middle-end/10336, c++/10401
6240         * jump.c (never_reached_warning): Also stop looking if we reach the
6241         beginning of the function.
6242
6243 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6244
6245         PR target/10338
6246         PR bootstrap/10198
6247         PR bootstrap/10140
6248         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
6249
6250 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
6251
6252         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
6253
6254 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6255
6256         * optabs.c (expand_binop): In multi-word add cases, ensure
6257         XTARGET is copied to TARGET if they are different.
6258
6259 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
6260
6261         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
6262         to region, possible after integration of function with unreachable
6263         regions that were optimized away.
6264
6265 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
6266
6267         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
6268         instead of TOC_REGISTER in epilogue in
6269         current_function_calls_eh_return functions.
6270
6271 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
6272
6273         * doc/extend.texi (Empty Structures): Correct description of G++'s
6274         handling of these structures.
6275
6276         * c-decl.c (grokdeclarator): Reject extern redeclarations of
6277         static variables.
6278
6279 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
6280
6281         * config/rs6000/rs6000.md (define_constants): Define constants for
6282         all UNSPEC usage, including new values for TLS support.
6283         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
6284         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
6285         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
6286         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
6287         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
6288         eh_set_lr_di): Use them.
6289         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
6290         rs6000_emit_epilogue) Use them.
6291
6292         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
6293
6294 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
6295
6296         * Makefile.in (c-opts.o): Use custom action.
6297
6298 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
6299
6300         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
6301
6302 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6303
6304         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
6305         handle "superflat arrays" in Ada.
6306
6307         * integrate.c (expand_inline_function): Don't inline if would
6308         lose /u on a BLKmode TARGET.
6309
6310 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
6311
6312         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
6313         extracted from dbxout_type.
6314         (dbxout_range_type): print large bounds in octal format.
6315         (dbxout_type): Replace extracted code by call to
6316         print_int_cst_bounds_in_octal_p.
6317
6318         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
6319         of DW_LANG_Ada83 for Ada units.
6320
6321 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
6322
6323         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
6324         temporary used to round CONST_INT sizes.
6325
6326         * tree.c (int_fits_type_p): Extract generic checks from the case
6327         of constant type bounds. Refine the checks against constant type
6328         bounds to allow for possible decisions against each of these bounds
6329         without requiring both bounds to be constant.
6330         (tree_int_cst_msb): Put back.
6331         * tree.h (tree_int_cst_msb): Likewise.
6332
6333         * global.c (global_conflicts): Prevent allocation of call clobbered
6334         hard regs to pseudos live across abnormal edges, as later passes are
6335         not ready to handle them.
6336
6337         * fold-const.c (fold): Reorder tests for conditional expressions.
6338
6339         * expr.c (highest_pow2_factor): Return unsigned.
6340         * expr.h (offset_address): Likewise.
6341         * emit-rtl.c (offset_address): POW2 argument now unsigned.
6342
6343 2003-04-14  Roger Sayle  <roger@eyesopen.com>
6344
6345         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
6346         string literals at compile-time.
6347
6348 2003-04-14  Roger Sayle  <roger@eyesopen.com>
6349
6350         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
6351         comparison operation and c1/c2 are floating point constants into
6352         x swap(cmp) (c1 - c2).
6353
6354 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
6355
6356         * genautomata.c (output_translate_vect): Fix a typo in loop
6357         condition.
6358
6359 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
6360
6361         PR target/10377
6362         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
6363         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
6364         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
6365         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
6366         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
6367         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
6368         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
6369         ("*extopqihi_swap_side", "*extopqisi_swap_side")
6370         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
6371         When next to constraint R, replace constraint i with n.
6372
6373 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
6374
6375         PR opt/10024
6376         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
6377
6378 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
6379
6380         * doc/contrib.texi (Contributors): Correct my entry.
6381
6382 2003-04-13  Roger Sayle  <roger@eyesopen.com>
6383
6384         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
6385         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
6386         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
6387         implies DECL_BUILT_IN to simplify logic.
6388         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
6389
6390 2003-04-13  Roger Sayle  <roger@eyesopen.com>
6391
6392         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
6393         (BT_FN_PTR_SIZE_SIZE): Likewise.
6394         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
6395         New built-in functions for malloc, calloc and strdup respectively.
6396         * calls.c (special_function_p): No need to handle malloc-like
6397         functions any longer.  ECF_MALLOC is set via built-in attributes.
6398
6399         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
6400
6401         * doc/extend.texi: Document these new built-in functions.
6402
6403 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6404
6405         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
6406         (expand_builtin_stpcpy): New.
6407         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
6408         * builtins.def: Add mempcpy & stpcpy support.
6409         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
6410
6411 2003-04-13  Nick Clifton  <nickc@redhat.com>
6412
6413         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
6414         "GCC".
6415         * config/rs6000/40x.md, config/rs6000/603.md,
6416         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
6417         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
6418         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
6419         config/rs6000/aix43.h, config/rs6000/aix51.h,
6420         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
6421         config/rs6000/altivec.h, config/rs6000/altivec.md,
6422         config/rs6000/beos.h, config/rs6000/darwin.h,
6423         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
6424         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
6425         config/rs6000/freebsd.h, config/rs6000/gnu.h,
6426         config/rs6000/host-darwin.c, config/rs6000/linux.h,
6427         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
6428         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
6429         config/rs6000/netbsd.h, config/rs6000/power4.md,
6430         config/rs6000/rios1.md, config/rs6000/rios2.md,
6431         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
6432         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
6433         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
6434         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
6435         config/rs6000/spe.md, config/rs6000/sysv4.h,
6436         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
6437         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
6438
6439 2003-04-13  Nick Clifton  <nickc@redhat.com>
6440
6441         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
6442         support for -mcall-aix switch.
6443         * config/rs6000/eabiaix.h: Delete.
6444         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
6445         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
6446         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
6447         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
6448         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
6449         debug_stack_info, output_function_profiler,
6450         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
6451         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
6452         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
6453         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
6454         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
6455         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
6456         multilibs.
6457         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
6458         (MULTILIB_EXCEPTIONS): Delete.
6459         (MULTILIB_MATCHES): Remove mcall-aix matches.
6460
6461         * doc/fragments.texi: Replace -mcall-aix example with an ARM
6462         one.
6463         * doc/install.texi: Delete powerpc-*-eabiaix target.
6464         * doc/invoke.texi: Remove documentation of mcall-aix switch.
6465         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
6466         * config.gcc: Delete powerpc-*-eabiaix target.
6467
6468 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
6469
6470         * doc/invoke.texi: Fix typos.
6471         * doc/tm.texi: Likewise.
6472
6473 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6474
6475         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
6476
6477 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6478
6479         * tree.c (build_constructor): New function.
6480         * tree.h: Prototype it.
6481
6482         * c-typeck.c (build_c_cast, pop_init_level)
6483         * profile.c (build_function_info_value, build_gcov_info_value)
6484         (create_profiler):
6485         Use build_constructor.
6486
6487         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
6488
6489         * objc/objc-act.c (build_constructor):
6490         Rename objc_build_constructor. Use build_constructor.
6491         (build_objc_string_object, objc_add_static_instance)
6492         (init_def_list, init_objc_symtab, init_module_descriptor)
6493         (generate_static_references, build_selector_translation_table)
6494         (build_descriptor_table_initializer, generate_descriptor_table)
6495         (build_protocol_initializer, build_ivar_list_initializer)
6496         (generate_ivars_list, build_dispatch_table_initializer)
6497         (generate_dispatch_table, generate_protocol_list)
6498         (build_category_initializer, build_shared_structure_initializer):
6499         Update to match.
6500
6501 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6502
6503         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
6504
6505 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6506
6507         * config/m68hc11/m68hc11-protos.h
6508         (m68hc11_eq_compare_operator): Declare
6509         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
6510         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
6511         (d_register_operand): Check the operand mode.
6512         (hard_addr_reg_operand): Likewise.
6513
6514 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6515
6516         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
6517         pattern for dbcc/ibcc generation for 68HC12.
6518         ("doloop_end"): New pattern.
6519         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
6520         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
6521         ("m68hc12_dbcc_dec_qi"): New pattern.
6522         ("m68hc12_dbcc_inc_qi"): New pattern.
6523         (split): Add split for the above when we can't use dbcc/ibcc due to
6524         reloading.
6525         (peephole2): Add peephole2 to generate the above when possible.
6526
6527 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6528
6529         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
6530         mode of operand 0.
6531         (peephole2 optimize const load): Likewise for operand 2.
6532         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
6533         clobbers CC_REGNUM.
6534         ("*rotrhi3_with_carry"): Likewise.
6535         (ashift:DI 1 split): Update pattern to create the above rotate.
6536         (lshiftrt:DI 1 split): Likewise.
6537
6538 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6539
6540         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
6541         ("tstqi_z_used" split): Use it.
6542         ("cmphi_z_used"): Likewise.
6543         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
6544         ("cmpqi_z_used"): Likewise.
6545
6546 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
6547
6548         PR c++/7910
6549         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
6550
6551 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
6552
6553         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
6554         * configure, config.in: Regenerate.
6555         * intl.c (gcc_gettext_width): New function.
6556         * intl.h: Prototype it.
6557
6558 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6559
6560         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
6561         recognize -mnorelax.
6562         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
6563         (REG_CLASS_NAMES): Add its name.
6564         (REG_CLASS_CONTENTS): Define its content.
6565
6566 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
6567
6568         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
6569         parameters so that offsets are valid for far definition.
6570         (__mulsi3): Likewise and use ret to return.
6571         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
6572
6573 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
6574
6575         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
6576
6577 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
6578
6579         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
6580         containing a libgcc.a, move lib* to the corresponding stage dir.
6581
6582         * Makefile.in (stage1-start, stage2-start, stage3-start,
6583         stage4-start): Move $(SPECS) to specs in stage dir.
6584         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
6585         back as $(SPECS).
6586
6587         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
6588         object files from the non-libgcc/ multilib directories as well.
6589
6590 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
6591
6592         * profile.c (read_counts_file): Initialise 'checksum'.
6593
6594         * emit-rtl.c (gen_rtx): Really correct typo.
6595
6596         PR c++/9393
6597         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
6598         * configure.in: Check for gettimeofday.
6599         * tree.c (flag_random_seed): Define.
6600         (default_flag_random_seed): New.
6601         (append_random_chars): Use flag_random_seed rather than trying
6602         to acquire randomness here.
6603         * tree.h (default_flag_random_seed): Declare.
6604         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
6605         descriptions.
6606         (decode_f_option): Handle -frandom-seed.
6607         (print_switch_values): Call default_flag_random_seed.
6608         * flags.h (flag_random_seed): Declare.
6609         * configure: Regenerate.
6610         * config.in: Regenerate.
6611         * config/alpha/t-crtfm: Use -frandom-seed.
6612
6613         * doc/extend.texi (Empty Structures): New.
6614
6615         * c-pch.c: Include flags.h.  Add comments to routines.
6616         (struct c_pch_validity): New.
6617         (get_ident): Update PCH file version number.
6618         (pch_init): Output current debugging type.
6619         (c_common_valid_pch): Check debugging type.
6620         * Makefile.in (c-pch.o): Update dependencies.
6621         * flags.h (debug_type_names): Declare.
6622         * toplev.c (debug_type_names): Move out of decode_g_option.
6623
6624 2003-04-11  Eric Christopher  <echristo@redhat.com>
6625
6626         * emit-rtl.c (gen_rtx): Fix typos.
6627
6628 2003-04-11  Richard Henderson  <rth@redhat.com>
6629
6630         * emit-rtl.c (gen_rtx): Zero '0' fields.
6631
6632 2003-04-11  Richard Henderson  <rth@redhat.com>
6633
6634         PR c++/10202
6635         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
6636         not COMPLETE_TYPE_P for re-invoking layout_decl.
6637
6638 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
6639
6640         * doc/bugreport.texi: Fix paragraph breaking between sections
6641         in preparation for TeXinfo's paragraph indentation fixes.
6642         * doc/extend.texi: Ditto.
6643         * doc/invoke.texi: Ditto.
6644         * doc/objc.texi: Ditto.
6645         * doc/gcov.texi: Wrap 'gcov' in @command{}.
6646         * doc/invoke.texi (Darwin Options): Add a preamble.
6647
6648 2003-04-11  Richard Henderson  <rth@redhat.com>
6649
6650         * config/i386/i386.c (tls_model_chars): Remove.
6651         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
6652         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
6653         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
6654         (tls_symbolic_operand_1): Likewise.
6655         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
6656         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
6657         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
6658         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
6659         bits "copied from i386.h" with default_encode_section_info.
6660
6661 2003-04-11  Richard Henderson  <rth@redhat.com>
6662
6663         * rtl.def (SYMBOL_REF): Add two 0 fields.
6664         * gengtype.c (adjust_field_rtx_def): Handle them.
6665         * print-rtl.c (print_rtx): Print them.
6666         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
6667         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
6668         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
6669         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
6670         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
6671         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
6672         (SYMBOL_FLAG_MACH_DEP): New.
6673         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
6674         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
6675         (assemble_static_space): Set SYMBOL_REF_FLAGS.
6676         (assemble_trampoline_template): Likewise.
6677         (output_constant_def, force_const_mem): Likewise.
6678         (default_encode_section_info): New.
6679         * output.h: Declare it.
6680         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
6681
6682 2003-04-11  Richard Henderson  <rth@redhat.com>
6683
6684         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
6685         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
6686         * optabs.c (init_optabs): Initialize them.
6687         (init_libfuncs): Use init_one_libfunc.
6688         * calls.c (expand_call): Use gcov_flush_libfunc.
6689         * expr.c (store_constructor): Use setbits_libfunc.
6690         * function.c (expand_main_function): Use init_one_libfunc.
6691         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
6692
6693 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
6694
6695         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
6696         documentation; add DECL_FRIEND_CONTEXT.
6697
6698 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6699
6700         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
6701         notes on linker selection and configuration for 64-bit HP-UX port.
6702         * doc/invoke.texi (hppa): Remove hppa text from description for
6703         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
6704         and -threads options.
6705
6706         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
6707         libc.a on libdld.sl when -static is specified and -nolibdld is not
6708         specified.
6709         * pa64-hpux.h (LIB_SPEC): Likewise.
6710         * pa-hpux11.h (LIB_SPEC): Likewise.
6711         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
6712         is not specified.
6713
6714 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
6715
6716         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
6717         not IDENTIFIER_LOCAL_VALUE.
6718
6719 2003-04-11  Richard Henderson  <rth@redhat.com>
6720
6721         PR c/10201
6722         * expr.c (expand_expr): Move DECL_RTL frobbing ...
6723         * stor-layout.c (layout_decl): ... here.
6724
6725 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
6726
6727         * doc/invoke.texi: Eliminate extra white-space caused by
6728         @gccoptlist{ on its own line.
6729         * doc/invoke.texi: Ensured there are two spaces between each option.
6730         * doc/invoke.texi: Re-wrapped option lines that were too wide.
6731         Added @gol to options that didn't have them.
6732
6733 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
6734
6735         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
6736         gcov-iov.h.
6737
6738         Simplify interface to gcov reading and writing.
6739         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
6740         gcov_alloc, gcov_modified, gcov_errored): Move into ...
6741         (struct gcov_var gcov_var): ... this static structure.
6742         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
6743         Return void.
6744         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
6745         read object.
6746         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
6747         (gcov_reserve_length): Remove.
6748         (gcov_write_tag): New.
6749         (gcov_write_length): Adjust.
6750         (gcov_read_summary, gcov_write_summary): Adjust.
6751         (gcov_eof, gcov_ok): Rename to ...
6752         (gcov_is_eof, gcov_is_error): ... here. Return error code.
6753         (gcov_save_position, gcov_resync): Rename to ...
6754         (gcov_position, gcov_seek): ... here.
6755         (gcov_skip, gcov_skip_string): Remove.
6756         (gcov_error): Remove.
6757         (gcov_open, gcov_close): Adjust.
6758         * gcov.c (find_source): Take const char *, copy it on allocation.
6759         (read_graph_file): Adjust.
6760         (read_count_file): Adjust.
6761         * libgcov.c (gcov_exit): Adjust.
6762         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
6763         tag_arc_counts, tag_summary): Return void. Adjust.
6764         (struct tag_format): Adjust proc member.
6765         (dump_file): Adjust gcov calls.
6766
6767 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
6768
6769         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
6770         mkfixinc.sh.
6771         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
6772         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
6773         build != host sysrooted builds.
6774         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
6775         TARGET_SYSTEM_ROOT even on sysrooted natives.
6776         * configure: Rebuilt.
6777
6778 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
6779
6780         * c-decl.c (struct binding_level): Add shadowed_tags and
6781         function_body; remove this_block, tag_transparent, and
6782         subblocks_tag_transparent; update comments.
6783         (clear_binding_level, lookup_tag_reverse): Kill.
6784         (make_binding_level): Use ggc_alloc_cleared or memset.
6785         (lookup_tag): Remove struct binding_level* parameter.  All
6786         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
6787         current_binding_level->tags if asked for thislevel_only or if
6788         we might have to diagnose "struct foo; union foo;"
6789         (pushlevel): Ignore argument.  Do not push another binding
6790         level on the transition from the parameters to the top level
6791         of the function body; just tweak the flags and proceed.
6792         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
6793         a function body, separate the parameter list from the
6794         top-level local variables.
6795         (set_block): Do nothing.
6796         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
6797         shadowed_tags if necessary.
6798         (warn_if_shadowing): Nuke the special case for local shadowing
6799         parameter.
6800         (pushdecl): Do not create a shadow entry if we are replacing
6801         an older decl in the same binding level.
6802         (pushdecl_function_level): Tweak for new way of indicating
6803         function scope.
6804         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
6805         (start_function): Don't set subblocks_tag_transparent.
6806         (finish_function): Fix up the binding_level stack for totally
6807         empty functions.  Otherwise, don't call poplevel.
6808
6809         * c-common.c (shadow_warning): MANDATORY argument is no longer
6810         necessary.  Always use plain warning.
6811         * c-common.h: Update to match.
6812
6813         * cfglayout.c (scope_to_insns_initialize): Clear block when we
6814         hit the FUNCTION_DECL.
6815         * function.c: Do not create cyclic tree structure.
6816
6817 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
6818
6819         * c-tree.h (struct lang_identifier): Replace global_value,
6820         local_value members with symbol_value, tag_value.  Kill
6821         implicit_decl and limbo_value.
6822         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
6823         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
6824         C_MISSING_PROTOTYPE_WARNED): Kill.
6825         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
6826         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
6827         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
6828         (implicit_decl_warning, lookup_name_current_level,
6829         record_function_scope_shadow): Don't prototype.
6830         (pushdecl_function_level): Prototype.
6831
6832         * c-decl.c (truly_local_externals): New variable.
6833         (struct binding_level): Adjust commentary.
6834         (get_function_binding_level, clear_limbo_values,
6835         record_function_scope_shadow): Kill.
6836         (lookup_name_current_level, implicit_decl_warning): Are now static.
6837         (any_external_decl, record_external_decl): New static functions.
6838         (clone_underlying type): Split out of pushdecl.
6839         (c_print_identifier): Update to match changes to struct
6840         lang_identifier.
6841         (poplevel): Delete #if 0 block.  Make externals invisible
6842         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
6843         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
6844         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
6845         (duplicate-decls): For real parm decl after a forward decl,
6846         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
6847         foo(...) { } with only a warning.  Say whether a previous
6848         declaration was implicit.
6849         (warn_if_shadowing): Now handles all shadowing, not just
6850         local-over-local.  Clarify comments.
6851         (pushdecl): Rewritten.  There is no longer a distinction
6852         between global and local symbol values; they're all
6853         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
6854         DECL_EXTERNAL decls, and use any_external_decl to check
6855         against previous externals.  Kill #if 0 blocks.  Don't
6856         tolerate error_mark_node being NULL.
6857         (pushdecl_top_level): Handle only those cases which
6858         Objective C (the only user) needs.
6859         (pushdecl_function_level): New function.
6860         (implicitly_declare): Create ordinary decls with
6861         C_DECL_IMPLICIT set.  Recycle old decls, however they got
6862         created.
6863         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
6864         for C_DECL_INVISIBLE symbols.
6865         (lookup_name_current_level): Likewise.  Use chain_member.
6866         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
6867         Use pushdecl_function_level.
6868         (builtin_function): Use C_DECL_INVISIBLE.
6869         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
6870         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
6871         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
6872         (identifier_global_value): Same.  Must scan
6873         global_binding_level in extremis.
6874
6875         * c-typeck.c (undeclared_variable): New static function, split
6876         from build_external_ref.
6877         (build_external_ref): Use DECL_CONTEXT, not
6878         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
6879         an instance variable.  Restructure for clarity.
6880         * objc/objc-act.c: Use identifier_global_value, not
6881         IDENTIFIER_GLOBAL_VALUE.
6882
6883 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
6884
6885         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
6886         not Working Paper.
6887         * doc/invoke.texi (C++ Dialect Options): Same.
6888
6889 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
6890
6891         * tree.c (tree_operand_check_failed): New function.
6892         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
6893         TREE_RTL_OPERAND_CHECK): New checking macros.
6894         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
6895         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
6896         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
6897         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
6898         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
6899         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
6900         checking macros.
6901
6902 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
6903
6904         PR inline-asm/8803
6905         * function.c (instantate_virtual_regs):  Verify that all ASM statements
6906         match after the virutal regs instantiation.
6907
6908 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
6909
6910         * ia64-protos.h (addp4_optimize_ok): New.
6911         * ia64.c (addp4_optimize_ok): New.
6912         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
6913         (*ptr_extend_plus_2): Ditto.
6914
6915 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
6916
6917         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
6918         not with convert_memory_address.
6919         (store_constructor): Ditto, and same for copy_size_rtx.
6920         (expand_expr): Ditto.
6921
6922 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
6923
6924         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
6925
6926 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
6927
6928         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
6929         even if it is configured to be write-through.
6930
6931 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
6932
6933         * config/s390/s390.c (larl_operand): Do not allow symbols
6934         marked with '@'.
6935         (s390_encode_section_info): Mark symbols with forced 1-byte
6936         alignment with '@'.
6937         (s390_strip_name_encoding): Strip '@'.
6938         (legitimize_pic_address): Handle symbols that are not valid
6939         LARL operands in 64-bit mode.
6940
6941 2003-04-10  Andrew Haley  <aph@redhat.com>
6942
6943         * tree-inline.c (inlinable_function_p): Disable inlining for
6944         synchronized methods.
6945
6946 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
6947
6948         * c-common.h (lang_statement_code_p): Remove declaration.
6949         (statement_code_p): Ditto.
6950         (c_common_stmt_codes): Define; list of c-common statement codes.
6951         (statement_code_p): New extern declaration.
6952         (STATEMENT_CODE_P): Define.
6953         (INIT_STATEMENT_CODES): Define.
6954         * c-common.c (statement_code_p): Kill the function, declare
6955         as an array of bools instead.
6956         (lang_statement_code_p): Remove.
6957         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
6958         (c_safe_from_p): Ditto.
6959         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
6960         to initialize the statement_code_p array.
6961         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
6962         statement_code_p.
6963         (copy_tree_r): Ditto.
6964         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
6965         statement tree codes.
6966         * cp/lex.c (cxx_init): Add missing print line break.  Use
6967         INIT_STATEMENT_CODES to initialize the statement_code_p array.
6968         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
6969         instead of statement_code_p.
6970         * cp/pt.c (tsubst_expr): Ditto.
6971         * cp/tree.c (verify_stmt_tree_r): Ditto.
6972         (cp_statement_code_p): Remove.
6973         (init_tree): Don't set lang_statement_code_p, it's gone.
6974
6975 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
6976             Zack Weinberg  <zack@codesourcery.com>
6977
6978         * regrename.c (struct du_chain): Use a bitfield for reg_class.
6979         * cse.c (struct qty_table_elem, struct table_elt, struct set):
6980         Use bitfields for fields holding enum rtx_code or
6981         enum machine_mode values.  Add comments explaining size choices.
6982
6983 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
6984
6985         * config/fp-bit.c (unpack_d): Handle pair of doubles with
6986         different signs correctly.
6987
6988 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
6989
6990         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
6991         (reg_pending_barrier): Make it of the enumeration type.
6992         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
6993         TRUE_BARRIER.
6994         (sched_analyze): Ditto.
6995         (sched_analyze_insn): Ditto.  Use anti-dependencies for
6996         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
6997         (init_deps_global): Initialize the barrier as NO_BARRIER.
6998
6999 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
7000
7001         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
7002         Check that asm insn starts on a new cycle.  Add nops after asm
7003         insn to end bundle.
7004         (bundling): Move insn type evaluation from the loop.  Call
7005         issue_nops_and_insn with the new parameter.  Ignore changing
7006         position for nops after asm insn.
7007
7008 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
7009
7010         * optabs.c: Comment that gen_add2_insn and others may actually
7011         return emitted insns, if the gen functions turn out to return
7012         emitted insns.
7013         * reload1.c (reload_cse_move2add): Cope with emitted insns from
7014         gen_add2_insn.
7015
7016 2003-04-09  Richard Henderson  <rth@redhat.com>
7017
7018         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
7019         but not tls_symbolic_operand.
7020         (ia64_expand_load_address): Remove scratch operand.
7021         (ia64_expand_tls_address): Split out from ia64_expand_move.
7022         (ia64_expand_move): Split symbolics only after reload.
7023         (ia64_emit_cond_move): New.
7024         * config/ia64/ia64-protos.h: Update.
7025         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
7026         (symbolic splitter): Accept SImode operands too.
7027         (cmove splitter): Use ia64_emit_cond_move.
7028
7029 2003-04-09  Nick Clifton  <nickc@redhat.com>
7030
7031         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
7032         newer.
7033         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
7034         instead of -mno-fpu.
7035         * config/arm/semi.h (ASM_SPEC): Likewise.
7036         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
7037         but only if -msoft-float is specified pass.  Otherwise pass
7038         -mfpu=softvfp.
7039
7040 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7041
7042         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
7043         free_EXPR_LIST_node.
7044
7045 2003-04-08  Roger Sayle  <roger@eyesopen.com>
7046
7047         * fold-const.c (fold):  Use "fold" following build in more places.
7048         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
7049         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
7050
7051 2003-04-08  Roger Sayle  <roger@eyesopen.com>
7052
7053         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
7054         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
7055         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
7056         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
7057         Delete function scope "fcode" variable to avoid shadowing.
7058
7059 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
7060
7061         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
7062         Take into account DWARF_INITIAL_LENGTH_SIZE.
7063
7064 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
7065
7066         * reorg.c (fill_slots_from_thread): When considering changing the
7067         insn following a reg-to-reg copy insn to use the source reg of the
7068         copy, bail out if there's overlap between the registers.
7069
7070 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7071
7072         * function.c (postponed_insns): New.
7073         (purge_addressof_1): Postpone processing of insns if addressofs
7074         are not put into stack.
7075         (purge_addressof): Process postponed insns.
7076
7077 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
7078
7079         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
7080         this is FP_MODE_DOUBLE .
7081         * sh.c (ra.h): #include.
7082         (push_regs): Add second parameter.  Changed all callers.
7083         If necessary, set fpscr before saving floating point registers.
7084         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
7085         do saves / restores with SZ == 1.
7086         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
7087         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
7088         registers are being restored, restore FPSCR only after restoring them.
7089
7090 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
7091
7092         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
7093         regardless of architecture.
7094         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
7095
7096 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
7097
7098         * sh.c (push_regs, calc_live_regs): Return int.  Take single
7099         HARD_REG_SET * parameter.  Changed all callers.
7100
7101 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
7102
7103         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
7104         GOTOFF operand.
7105         (legitimize_pic_address): Move plus outside the unspec.
7106         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
7107         for validity.
7108
7109 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
7110
7111         * gcov-io.h (gcov_save_position): Remove __inline__ from
7112         declaration.
7113
7114 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
7115
7116         * doc/install.texi: Use @command and @samp for single- and
7117         multi-word commands respectively.
7118         * doc/makefile.texi: Likewise.
7119         * doc/sourcebuild.texi: Likewise.
7120
7121 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
7122             Richard Henderson  <rth@redhat.com>
7123
7124         PR c/9516
7125         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
7126         favour of looping and tail recursion for TREE_LIST and binops.
7127
7128 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7129
7130         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
7131         for insns without luid.
7132
7133 2003-04-07  Glen Nakamura  <glen@imodulo.com>
7134
7135         PR opt/8634
7136         * explow.c (maybe_set_unchanging): Don't flag non-static const
7137         aggregate type initializers with RTX_UNCHANGING_P.
7138
7139 2003-04-07  Richard Henderson  <rth@redhat.com>
7140
7141         PR opt/8634
7142         * function.c (purge_addressof_1): Don't try arithmetics for
7143         unchanging memories.
7144
7145 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
7146
7147         * doc/sourcebuild.texi (Test Suites): Document testing support for
7148         gcov and profile-directed optimizations; describe gcc.misc-tests.
7149
7150 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
7151
7152         PR target/10077
7153         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
7154
7155 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7156
7157         * doc/rtl.texi (Comparison operations): Update to
7158         record the allowed comparison modes.
7159
7160 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
7161
7162         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
7163         V2SI_type_node to opaque_V2SI_type_node.  Rename all
7164         V2SF_type_node to opaque_V2SF_type_node.
7165         (rs6000_init_builtins): Define opaque_V2SI_type_node and
7166         opaque_V2SF_type_node.
7167         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
7168         opaque_V2SF_type_node are opaque types.
7169
7170 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
7171
7172         * gcse.c (replace_store_insn): Use single_set.
7173
7174 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
7175
7176         Change gcov file interface to single file at a time.
7177         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
7178         Convert to C89 prototypes.
7179         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
7180         gcov_error, gcov_modified): New static variables.
7181         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
7182         functions.
7183         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
7184         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
7185         (gcov_read_summary, gcov_write_summary): Adjust.
7186         (gcov_save_position, gcov_reserve_length, gcov_write_length):
7187         Adjust.
7188         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
7189         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
7190         (da_file_position, da_file_seek, da_file_write, da_file_read):
7191         Remove.
7192         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
7193         * gcov.c (gcov_type): Don't typedef here.
7194         (IN_GCOV): #define
7195         (read_graph_file, read_count_file): Adjust.
7196         * gcov-dump.c (gcov_type): Don't typedef here.
7197         (IN_GCOV): #define.
7198         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
7199         Remove FILE parameter, adjust.
7200         (struct tag_format): Adjust proc member.
7201         (dump_file): Adjust.
7202         * libgcov.c (IN_LIBGCOV): #define.
7203         (gcov_exit): Adjust.
7204         * loop-init.c: Don't #include gcov-io.h
7205         * profile.c (struct counts_entry): New structure to hold counter
7206         values.
7207         (struct section_reference, struct da_index_entry): Remove.
7208         (bbg_file, da_file): Remove.
7209         (htab_counts_index_hash, htab_counts_index_eq,
7210         htab_counts_index_del): Replace with ...
7211         (htab_counts_entry_hash, htab_counts_entry_eq,
7212         htab_counts_entry_del): ... these.
7213         (cleanup_counts_index, index_counts_file): Remove.
7214         (read_counts_file): New function.
7215         (get_exec_counts): Adjust.
7216         (compute_branch_probabilities): Don't free the exec counts here.
7217         (branch_prob): Adjust.
7218         (init_branch_prob): Adjust.
7219         (end_branch_prob): Adjust.
7220
7221 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
7222
7223         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7224         -mfloat-gprs.
7225
7226         * config/rs6000/rs6000.c: Delete rs6000_fprs.
7227         Declare rs6000_float_gprs.
7228         Declare rs6000_float_gprs_string.
7229         (rs6000_parse_float_gprs_option): New.
7230         (rs6000_override_options): Genericize rs6000_parse_* calls to use
7231         rs6000_parse_yes_no_option.
7232         Change check for cpu=8540, to use TARGET_E500.
7233         (rs6000_parse_isel_option): Delete.
7234         (rs6000_parse_spe_option): Delete.
7235         (rs6000_parse_vrsave_option): Delete.
7236
7237         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
7238         Define rs6000_float_gprs_string.
7239         (TARGET_OPTIONS): Add rs6000_float_gprs option.
7240
7241         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
7242
7243         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
7244
7245 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
7246
7247         PR opt/10024
7248         * cfglayout.c (cfg_layout_redirect_edge):
7249         Redirect any branch edges unified with the fallthru one.
7250         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
7251         case fallthru edges when called via cfglayout.c
7252
7253 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
7254
7255         * c-typeck.c (output_init_element): Check for type == error_mark_node.
7256
7257 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
7258
7259         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
7260         split.
7261         (a splitter): Do zero-extension via HImode.
7262
7263 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
7264
7265         * doc/invoke.texi: Eliminate extra white-space caused by
7266         @gccoptlist{ on its own line.
7267         * doc/invoke.texi: Ensured there are two spaces between each option.
7268         * doc/invoke.texi: Re-wrapped option lines that were too wide.
7269         Added @gol to options that didn't have them.
7270
7271 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
7272
7273         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
7274
7275 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
7276
7277         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
7278         at the sizes of the relevant structures, rather than relying
7279         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
7280         sizes of any such we don't know about.  Use
7281         lang_hooks.identifier_size for IDENTIFIER_NODE.
7282
7283         (initializer_zerop): Use CONSTRUCTOR_ELTS.
7284         * tree.def: Update commentary.  Make fourth element of
7285         the definition for all 'c' and 'x' nodes zero.
7286
7287         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
7288         * langhooks-def.h: Update to match.
7289         * langhooks.c: New default, lhd_tree_size.
7290
7291         * c-common.def (SRCLOC): Kill.
7292         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
7293         Remove entirely - was already #if-ed out.
7294
7295
7296 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
7297
7298         * mklibgcc.in: Use a here document to avoid running afoul of
7299         shells that generate control-A from "echo \1".
7300
7301 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
7302
7303         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
7304         option.
7305
7306         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7307         rs6000_spe.
7308
7309         * config/rs6000/eabi.h (TARGET_E500): Define.
7310
7311         * config/rs6000/rs6000.h (TARGET_E500): Define.
7312         (TARGET_OPTIONS): Add spe= option.
7313         Declare rs6000_spe and rs6000_spe_string extern.
7314
7315         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
7316         Change TARGET_SPE to TARGET_E500.
7317         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
7318         !TARGET_FPRS.
7319         (print_operand): Same.
7320         (rs6000_generate_compare): Same.
7321         (output_cbranch): Same.
7322         (rs6000_spe): Declare.
7323         (rs6000_spe_string): Declare.
7324         (rs6000_override_options): Call rs6000_parse_spe_option.
7325         (rs6000_parse_spe_option): New.
7326
7327 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
7328
7329         * hashtable.c (gcc_obstack_init): Delete this function
7330         and everything related to it.
7331         * hashtable.h: Remove prototype.
7332         * bitmap.c (bitmap_element_allocate): Cleanup redundant
7333         defines.  Cleanup some unnecessary whitespace.
7334         * defaults.h (obstack_chunk_alloc): Redefine with
7335         appropriate casts for libiberty obstacks.
7336         (obstack_chunk_free): Ditto.
7337         (OBSTACK_CHUNK_SIZE): Define, default to 0.
7338         (gcc_obstack_init): Define as a call to _obstack_begin.
7339         * tree.c (print_obstack_statistics): Delete this unused
7340         function.
7341         * tree.h (obstack): Don't forward-declare.
7342         (print_obstack_statistics): Delete prototype.
7343         (print_obstack_name): Ditto.
7344         (gcc_obstack_init): Ditto.
7345         * rtl.h (gcc_obstack_init): Ditto.
7346         * java/jv-scan.c (gcc_obstack_init): Delete this
7347         function, its prototype and related defines.
7348         * java/jvgenmain.c (gcc_obstack_init): Delete this
7349         function, and related defines.
7350         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
7351         (obstack_chunk_free): Ditto
7352
7353 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
7354
7355         * dbxout.c (dbxout_handle_pch): Move prototype out from
7356         #if defined DBX_DEBUGGING_INFO.
7357
7358 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
7359
7360         * gcov.c (struct arc_info): Replace local_span with cycle.
7361         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
7362         (solve_flow_graph): Set is_call_return.
7363         (add_line_counts): Adjust. In block mode, blocks attach to last line.
7364         (accumulate_line_counts): Find graph cycles, not spanning tree.
7365         (output_branch_count): Adjust.
7366         (output_lines): Adjust.
7367         * doc/gcov.texi: Update.
7368
7369 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
7370
7371         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
7372         the second alternative to "#".
7373
7374 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
7375
7376         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
7377         (single_zero_operand): Likewise.
7378
7379 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
7380
7381         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
7382         * df.c: Include alloc-pool.h, not obstack.h.
7383         (df_ref_obstack): Remove.
7384         (df_ref_pool, df_link_pool): Add pools.
7385         (df_alloc): Init the new pools.
7386         (df_free): And free them.
7387         (df_link_create): Use the pools.
7388         (df_ref_create): Ditto.
7389
7390 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
7391
7392         * simplify-rtx.c: Fix formatting.
7393
7394 2003-04-05  Andrew Pinski  <apinski@apple.com>
7395
7396         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
7397         reg with reg1 == reg2 and offset1 = -8.
7398
7399 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
7400
7401         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
7402         multiply costs.  Correct Power4 divide costs.
7403         * config/rs6000/power4.md: Restore multiply and FP latency.
7404
7405 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7406
7407         * alias.c (find_base_term): Export.
7408         * rtl.h (find_base_term): Declare.
7409         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
7410         instead of flag_exceptions.  Move test for parameter passing ...
7411         (store_killed_in_insn): ... here.
7412
7413 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7414
7415         PR bootstrap/10267
7416         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
7417         for configuring.
7418
7419 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
7420
7421         * dbxout.c (scope_labelno): Add GTY.
7422         (have_used_extensions): Add GTY.
7423         (source_label_number): Add GTY.
7424         (lastfile): Add GTY.
7425         (lastfile_is_base): New.
7426         (base_input_file): New.
7427         (dbxout_handle_pch): New.
7428         (dbx_debug_hooks): Add handle_pch.
7429         (xcoff_debug_hooks): Likewise.
7430         (dbxout_function_end): Remove scope_labelno.
7431         (dbxout_init): Set base_input_file.
7432         (dbxout_handle_pch): New.
7433         (dbxout_source_file): Honour lastfile_is_base.
7434         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
7435         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
7436         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
7437         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
7438         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
7439         * debug.h (struct gcc_debug_hooks): Add handle_pch.
7440         * c-pch.c (pch_init): Don't call start_source_file, but do call
7441         handle_pch.
7442         (c_common_write_pch): Call handle_pch.
7443         (c_common_read_pch): Don't call start_source_file,
7444         or end_source_file.
7445
7446 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
7447
7448         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
7449         use of default attributes to agree MEM_ALIGN macro.
7450
7451 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
7452
7453         * dbxout.c (dbxout_type): When printing type index of range type
7454         whose bounds are printed in octal format, print type of parent type if
7455         it exists so enumerated type descriptions are not transformed
7456         into unsigned types.
7457
7458 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
7459
7460         * config/h8300/h8300-protos.h: Add a prototype for
7461         compute_a_shift_cc.
7462         * config/h8300/h8300.c (shift_one): Update the CC status.
7463         (shift_two): Likewise.
7464         (output_a_shift_cc): Set cc_inline and cc_special.
7465         (compute_a_shift_cc): New.
7466         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
7467
7468 2003-04-04  Richard Henderson  <rth@redhat.com>
7469
7470         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
7471
7472 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
7473
7474         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
7475         * fixinc/fixincl.x: Rebuilt.
7476         * fixinc/tests/base/stdio.h: Regenerated.
7477
7478 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
7479
7480         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
7481
7482 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
7483
7484         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
7485         (NORMAL_MODE).
7486         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
7487
7488 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7489
7490         * doc/contrib.texi (Contributors): Add entries for Wolfgang
7491         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
7492         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
7493         Danny Smith, and Ulrich Weigand.
7494         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
7495         entry.
7496
7497 2003-04-04  Nick Clifton  <nickc@redhat.com>
7498
7499         * config/sparc/sol2-bi.h: Revert previous delta.
7500         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
7501
7502 2003-04-04  Nick Clifton  <nickc@redhat.com>
7503
7504         * config/v850/v850.c (expand_prologue): Only use register save
7505         helper functions if long calls are not being used.
7506         Add a clobber of r11 id using long calls.
7507         (pattern_is_ok_for_prologue): Account for the extra clobber.
7508         (construct_save_jarl): Likewise.
7509         * config/v850/v850.md (prolog pattern): Do not use this pattern
7510         for v850e's.
7511
7512 2003-04-04  Andreas Schwab  <schwab@suse.de>
7513
7514         * stor-layout.c (layout_decl): Avoid syntax error in last change
7515         when PCC_BITFIELD_TYPE_MATTERS is defined but not
7516         EMPTY_FIELD_BOUNDARY.
7517
7518 2003-04-03  Jason Merrill  <jason@redhat.com>
7519
7520         PR c/10175
7521         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
7522         Look backwards for a line note.
7523
7524 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
7525
7526         * fix-header.c (read_scan_file): Defer switch processing.
7527
7528 2003-04-03  Matt Austern  <austern@apple.com>
7529
7530         * cpppch.c (reset_ht): Remove.
7531         (cpp_read_state): Remove loop to reset hashtable identifiers.
7532         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
7533         after pch file is written.
7534         * ggc.h (gt_pch_fixup_stringpool): Declare.
7535         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
7536         hashnode's value to another hashtable, then clear the original.
7537         (saved_ident_hash): Define.
7538         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
7539         store definitions in ident_hash, and clear ident_hash.
7540         (gt_pch_fixup_stringpool): Define.  Restore definitions from
7541         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
7542
7543 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
7544
7545         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
7546
7547 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7548
7549         PR optimization/10157
7550         * gcse.c (can_copy_p): Rename it to can_copy.
7551         (can_copy_init_p): Remove.
7552         (compute_can_copy): Use can_copy instead of can_copy_p.
7553         (can_copy_p): New exported function. Call compute_can_copy.
7554         (hash_scan_set): Use it.
7555         (gcse_main): Don't call compute_can_copy.
7556         (bypass_jumps): Don't call compute_can_copy.
7557         * rtl.h (can_copy_p): Declare.
7558         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
7559         copy if the mode doesn't support copy operations.
7560
7561 2003-04-03  Jason Merrill  <jason@redhat.com>
7562
7563         * Makefile.in (unstrap): Also remove stage_last.
7564
7565         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
7566         (dwarf2out_source_line): Don't do anything if line==0.
7567
7568         * stor-layout.c (do_type_align): New fn, split out from...
7569         (layout_decl): ...here.  Do all alignment calculations for
7570         FIELD_DECLs here.
7571         (update_alignment_for_field): Not here.
7572         (start_record_layout, debug_rli): Remove unpadded_align.
7573         * tree.h (struct record_layout_info_s): Remove unpadded_align.
7574         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
7575         or DECL_MODE on the CONST_DECLs.
7576         (finish_struct): Don't mess with DECL_ALIGN.
7577
7578 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
7579
7580         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
7581
7582 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
7583
7584         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
7585         function is an interrupt handler.
7586
7587         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
7588         restoring target registers with EH_RETURN_STACKADJ_RTX; use
7589         multiple registers in round-robin fashion.
7590
7591 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7592
7593         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
7594         * system.h (CHAR_BITFIELD): New.
7595
7596 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
7597
7598         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
7599         and LE.
7600         (another peephole2): Likewise.
7601
7602 2003-04-03  Nick Clifton  <nickc@redhat.com>
7603
7604         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
7605         (DEF_ARCH64_SPEC): Likewise.
7606
7607 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
7608
7609         * i386.c (constant_address_p): Use legitimate_constant_p.
7610         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
7611
7612 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7613
7614         * config/h8300/h8300-protos.h: Add a prototype for
7615         gtle_operator.
7616         * config/h8300/h8300.c (gtle_operator): New.
7617         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
7618         gtle_operator.
7619         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
7620         and LE.
7621
7622 2003-04-02  Richard Henderson  <rth@redhat.com>
7623
7624         * libgcc-std.ver (_Unwind_GetCFA): New.
7625         * unwind-dw2.c (_Unwind_GetCFA): New.
7626         * unwind-libunwind.c (_Unwind_GetCFA): New.
7627         * unwind-sjlj.c (_Unwind_GetCFA): New.
7628         * unwind.h: Declare it.
7629
7630 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
7631
7632         PR inline-asm/8088
7633         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
7634         when MMX/SSE is not available.
7635
7636 2003-04-02  Mike Stump  <mrs@apple.com>
7637
7638         * doc/install.texi (Specific): Update pointers to apple.com.
7639
7640 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
7641
7642         * i386.c (override_options):  Disable red zone by default on i386.
7643         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
7644         Do not test TARGET_64BIT together with TARGET_RED_ZONE
7645
7646 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7647
7648         * config/h8300/h8300.md (a peephole2): Tighten the condition.
7649
7650 2003-04-02  Richard Henderson  <rth@redhat.com>
7651
7652         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
7653
7654 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
7655
7656         * config/h8300/h8300.md (a peephole2): New.
7657
7658 2003-04-02  Richard Henderson  <rth@redhat.com>
7659
7660         * except.c (sjlj_find_directly_reachable_regions): Recognize when
7661         must-not-throw region has been deleted.
7662
7663 2003-04-02  Richard Henderson  <rth@redhat.com>
7664
7665         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
7666         optimization when flag_exceptions not enabled.
7667
7668 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7669
7670         * config/rs6000/rs6000.c
7671         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
7672         macros.
7673         (rs6000_issue_rate): Add case for 8540.
7674         (rs6000_use_sched_lookahead): New function.
7675
7676         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
7677         units into MU ones.
7678         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
7679         reservation before retirement.
7680         (ppc8540_multiply, ppc8540_load, ppc8540_store,
7681         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
7682         Remove additional cycle in the reservation before retirement.
7683         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
7684         reservation of ppc8540_issue.
7685
7686 2003-04-02  Andreas Schwab  <schwab@suse.de>
7687
7688         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
7689
7690 2003-04-01  Richard Henderson  <rth@redhat.com>
7691
7692         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
7693         notes for nothrow calls if flag_forced_unwind_exceptions.
7694         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
7695         (sjlj_find_directly_reachable_regions): Likewise.
7696         (reachable_handlers): Likewise.
7697         (can_throw_external): Likewise.
7698         (collect_one_action_chain): Record cleanups after catch-all and
7699         must-not-throw if flag_forced_unwind_exceptions.
7700         * flags.h (flag_forced_unwind_exceptions): Declare.
7701         * toplev.c (flag_forced_unwind_exceptions): New.
7702         (lang_independent_options): Add it.
7703         * doc/invoke.text: Add it.
7704
7705 2003-04-01  David Mosberger <davidm@hpl.hp.com>
7706
7707         * config/ia64/crti.asm: Clean up trailing whitespace.
7708         Remove trailing hashes (#) from identifiers.
7709
7710         * config/ia64/crtn.asm: Ditto.
7711
7712         * config/ia64/crtend.asm: Remove trailing hashes (#) from
7713         identifiers.
7714         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
7715         directives.  Drop explicit bundling---it just makes the code
7716         harder to read.  Don't save/restore gp needlessly.
7717
7718         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
7719         identifiers (they're only needed if the identifier would clash
7720         with a register name otherwise).
7721         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
7722         directives.  Drop explicit bundling---it just makes the code
7723         harder to read.
7724         (__do_jv_register_classes): Ditto.
7725         (.fini_array): Remove "progbits" (newer
7726         assemblers don't like wrong section-types).
7727         (.init_array): Ditto.
7728
7729 2003-04-01  Roger Sayle  <roger@eyesopen.com>
7730
7731         PR fortran/9974
7732         * gcse.c (reg_killed_on_edge): New function to test whether the
7733         given reg is overwritten by any instruction queued on an edge.
7734         (bypass_block): Ignore substitutions killed on incoming edges.
7735         Don't bypass outgoing edges that have queued instructions.
7736
7737 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
7738
7739         * real.h (EXP_BITS): Make room for...
7740         (struct real_value): ... added canonical bit.
7741         (struct real_format): Added pnan.
7742         (mips_single_format, mips_double_format, mips_extended_format,
7743         mips_quad_format): New.
7744         * real.c: Copy p to pnan in all formats.
7745         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
7746         (real_nan): Use pnan to compute significand's shift.
7747         (real_identical): Disregard significand in canonical
7748         NaNs.
7749         (real_hash): Likewise.  Take signalling into account.
7750         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
7751         Disregard significand bits in canonical NaNs.  Set all bits of
7752         canonical NaN if !qnan_msb_set.
7753         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
7754         qnan_msb_set to tell the base double format.
7755         (ibm_extended_format): Use 53 as pnan.
7756         (mips_single_format, mips_double_format, mips_extended_format,
7757         mips_quad_format): Copied from the corresponding ieee/ibm
7758         formats, with qnan_msb_set false.
7759         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
7760         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
7761         * config/mips/mips.c (override_options): Use mips_single_format
7762         and mips_double_format.  Default TFmode to mips_quad_format.
7763         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
7764         * config/mips/t-irix6: Likewise.
7765         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
7766         * config/fp-bit.c (pack_d, unpack_d): Obey it.
7767
7768 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
7769
7770         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
7771         (live_image_destructor): Reset image to initial state.
7772         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
7773
7774 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
7775
7776         * config/sparc/sparc.c (input_operand): Accept bare
7777         CONSTANT_P_RTX operands.
7778
7779 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7780
7781         * gcse.c (struct ls_expr): Added pattern_regs field.
7782         (ldst_entry): Initialize it.
7783         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
7784         (store_ops_ok): Use regs precomputed by them.
7785         (find_loads, store_killed_in_insn, load_kills_store): Change return
7786         type to bool.
7787         (store_killed_before, store_killed_after): Take position of register
7788         set in account.
7789         (reg_set_info): Store position of the setter.
7790         (gcse_main): Enable store motion.
7791         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
7792         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
7793         sharing.
7794         (simple_mem): Enable store motion of non-symbol mems.
7795         (regvec): Type changed.
7796         (LAST_AVAIL_CHECK_FAILURE): New.
7797         (compute_store_table_current_insn): New.
7798         (build_store_vectors): Computation of availability and anticipatability
7799         moved ...
7800         (compute_store_table, find_moveable_store): ... here.
7801         (delete_store): Remove senseless comment.
7802         (store_motion): Reorganize.
7803
7804 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
7805
7806         * config/mips/mips.c (override_options): Provide mappings for
7807         HI_REGNUM and LO_REGNUM.
7808         * config/mips/mips.h (MD_DBX_FIRST): Define.
7809
7810 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7811
7812         * combine.c (merge_outer_ops): Fix typo.
7813
7814         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
7815
7816 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
7817
7818         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
7819         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
7820         imul_compare.  Add lmul_compare.
7821         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
7822         in second pair of dispatch slots.  Model stores more accurately.
7823         Tweak multiply model.  Add bypasses for CR instructions dependent
7824         on complicated compares.
7825         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
7826         (muldi3): Add lmul_compare patterns.
7827         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
7828         and FPSTORE_UX to split instructions and add COMPARE,
7829         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
7830         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
7831         (rs6000_rtx_costs): Separate POWER4 multiply case.
7832
7833 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
7834
7835         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
7836         Do nothing if __builtin_return_address was not used.
7837
7838 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
7839
7840         * i386.md (test patterns):  Allow memory operand in operand1.
7841
7842 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
7843
7844         * testsuite/gcc.c-torture/execute/simd-3.c: New.
7845
7846         * expr.c (expand_expr): Handle VECTOR_CST.
7847         (const_vector_from_tree): New.
7848
7849         * varasm.c (output_constant): Handle VECTOR_CST.
7850
7851         * c-typeck.c (digest_init): Build a vector constant from a
7852         VECTOR_TYPE.
7853
7854         * config/rs6000/rs6000.c: Remove prototype for
7855         easy_vector_constant.
7856         (easy_vector_constant): Add mode parameter.  Rewrite to handle
7857         more easy constants.
7858         (rs6000_emit_move): Pass mode to easy_vector_constant.
7859         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
7860         (emit_easy_vector_insn): New.
7861         (easy_vector_same): New.
7862         (EASY_VECTOR_15): New macro.
7863         (EASY_VECTOR_15_ADD_SELF): New macro.
7864         (bdesc_2arg): Rename to xorv2si3.
7865         (easy_vector_constant_add_self): New.
7866         (input_operand): Allow vector constants.
7867
7868         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
7869         easy_vector_constant, easy_vector_constant_add_self.
7870         (EXTRA_CONSTRAINT): Add 'W'.
7871
7872         * config/rs6000/rs6000-protos.h: Add prototype for
7873         easy_vector_constant, emit_easy_vector_insn.
7874
7875         * config/rs6000/altivec.md (xorv8hi3): New.
7876         (xorv16qi3): New.
7877         Remove all _const0 patterns.
7878         (movv4si_internal): Rewrite to use code.  Add vector constant to
7879         vector alternative.  Add splitter.
7880         (movv8hi_internal): Same.
7881         (movv16qi_internal): Same.
7882         (movv4sf_internal): Same.
7883         Change the unspecs for vspltis* to use constants.
7884
7885         * config/rs6000/spe.md ("xorv4hi3"): New.
7886         ("spe_evxor"): Rename to xorv2si3.
7887         ("xorv1di3"): New.
7888         Remove all _const0 patterns.
7889         (movv2si_internal): Rewrite to use code.  Add vector constant to
7890         alternatives.  Add splitter.
7891         (movv4hi_internal): Add vector constant to alternatives.
7892         (movv1di_internal): Same.
7893         (movv2sf_internal): Same.
7894
7895 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
7896
7897         PR c/9936
7898         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
7899         variably-sized arrays in parameters.
7900         (set_save_expr_context): New function.
7901         (c_expand_body): Use it, via walk_tree.
7902
7903 2003-03-31  Eric Christopher  <echristo@redhat.com>
7904
7905         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
7906         (combinable_i3pat): Remove call to expand_field_assignment and
7907         #if 0'd code.
7908
7909 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
7910
7911         PR c++/10278
7912         * c-common.c (finish_label_address_expr): Handle the
7913         error_mark_node.
7914
7915 2003-03-31  Richard Henderson  <rth@redhat.com>
7916
7917         * real.c (real_identical): Reorg so as to not compare
7918         signalling for normals.
7919
7920 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
7921
7922         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
7923
7924 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
7925
7926         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
7927         notes as they are boggus.
7928         (m68hc11_gen_movqi): Likewise.
7929
7930 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
7931
7932         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
7933         save the soft registers after the frame pointer so that gdb can unwind
7934         the frame more easily.
7935         (expand_epilogue): Likewise in opposite order; allow to use X register
7936         as scratch if the return value is by reference.
7937
7938 2003-03-31  Jason Merrill  <jason@redhat.com>
7939
7940         PR java/10145
7941         * stor-layout.c (update_alignment_for_field): Respect
7942         DECL_USER_ALIGN for zero-length bitfields, too.
7943         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
7944         fields.
7945
7946 2003-03-31  Matt Austern  <austern@apple.com>
7947
7948         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
7949         (count_defs): Keep track of number of defs as well as total size.
7950         (write_defs): Put every definition in cpp_savedstate's defs array.
7951         (comp_hashnode): Define.  Comparison function for qsort.
7952         (cpp_write_pch_deps): Sort definitions before writing them.
7953         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
7954         (collect_ht_nodes): Define.
7955         (cpp_valid_state): When verifying that undefined identifiers in
7956         the pch file are still undefined, read a sorted list of undefined
7957         identifiers, collect all defined identifiers into a sorted list,
7958         and walk through both lists to make sure there's no match.
7959
7960 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
7961
7962         * config/h8300/h8300.md (a peephole2): New.
7963
7964 2003-03-31  Michael Matz  <matz@suse.de>
7965
7966         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
7967
7968 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
7969
7970         PR target/10177
7971         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
7972         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
7973         all call-clobbered registers as used.
7974
7975 2003-03-31  Michael Matz  <matz@suse.de>
7976
7977         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
7978         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
7979
7980 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
7981
7982         * gcov.c: Add -a & -u options.
7983         (struct arc_info): Add local_span, is_call_non_return,
7984         is_nonlocal_return, is_unconditional flags, remove is_call flag.
7985         (struct block_info): Add flags, is_call_site, is_nonlocal_return
7986         members. Make encodings a union with span member.
7987         (struct function_info): Add blocks_executed, line, src, line_next
7988         members.
7989         (struct coverage_info): Make branches a union with blocks member.
7990         (struct source_info): Add functions member.
7991         (object_summary, program_count): New global variables.
7992         (flag_all_blocks, flag_unconditional): New flags.
7993         (find_source, output_branch_count): New functions.
7994         (print_usage): Adjust.
7995         (options): Adjust.
7996         (process_args): Adjust.
7997         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
7998         <GCOV_TAG_BLOCKS>: Read flags.
7999         <GCOV_TAG_LINES>: Adjust.
8000         (read_count_file): Process SUMMARY tags.
8001         (solve_flow_graph): Set is_unconditional and clear is_call_site
8002         appropriately.
8003         (add_branch_counts): Adjust. Don't count unconditional branches.
8004         (add_line_counts): Deal with all-blocks mode, accumulate block
8005         coverage.
8006         (accumulate_line_counts): Adjust, generate local spanning tree for
8007         all-blocks mode.
8008         (output_lines): Adjust.
8009         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
8010         * doc/gcov.texi: Document.
8011
8012 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8013
8014         * config/h8300/h8300.md: Organize peephole2's that transform
8015         (compare (reg:HI) (const_int)).
8016
8017 2003-03-31  Roger Sayle  <roger@eyesopen.com>
8018
8019         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
8020         (init_emit_once): Initialize dconstm2 and dconsthalf here.
8021         * real.h (dconstm2, dconsthalf): Add prototypes here.
8022         * real.c (real_sqrt): Use dconsthalf rather than local copy.
8023         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
8024         exp(x/2.0) remember to fold the division if possible.
8025         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
8026         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
8027         1.0/(x*x) and pow(x,0.5) as sqrt(x).
8028
8029 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8030
8031         * config/h8300/h8300.md (a new peephole2): New.
8032
8033 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
8034
8035         * gcse.c (simple_mem): Return false for floating-point accesses
8036         if flag_float_store is true.
8037
8038 2003-03-30  Roger Sayle  <roger@eyesopen.com>
8039
8040         * gcse.c (gcse_constant_p): New function to identify constants
8041         suitable for constant propagation, including COMPARE with two
8042         integer constant arguments.
8043         (hash_scan_set): Use gcse_constant_p.
8044         (find_avail_set): Likewise.
8045         (cprop_insn): Likewise.
8046         (do_local_cprop): Likewise.
8047         (find_implicit_sets): Likewise.
8048         (find_bypass_set): Likewise.
8049
8050 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
8051
8052         * except.h: Remove definition of varray_type.
8053
8054 2003-03-30  Richard Henderson  <rth@redhat.com>
8055
8056         PR opt/10011, opt/10252:
8057         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
8058         before post-gcse cse pass.
8059
8060 2003-03-30  Roger Sayle  <roger@eyesopen.com>
8061
8062         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
8063
8064 2003-03-30  DJ Delorie  <dj@redhat.com>
8065
8066         * profile.c (instrument_edges): Make sure any newly created
8067         jump insns have correct jump label info.
8068
8069 2003-03-30  Richard Henderson  <rth@redhat.com>
8070
8071         * cfgbuild.c (make_edges): Use tablejump_p.
8072         * cfgcleanup.c (label_is_jump_target_p): Likewise.
8073         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
8074         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
8075         (try_redirect_by_replacing_jump): Likewise.
8076         (redirect_edge_and_branch): Likewise.
8077         * cse.c (fold_rtx): Likewise.
8078         * jump.c (delete_related_insns): Likewise.
8079         * rtlanal.c (get_jump_table_offset): Likewise.
8080         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
8081
8082 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8083
8084         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
8085         (STRICT2_WARN): Likewise.
8086
8087 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8088
8089         PR other/6955
8090         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
8091         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
8092
8093 2003-03-30  Richard Henderson  <rth@redhat.com>
8094
8095         PR c/10083
8096         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
8097         don't zero_extend const inputs.
8098
8099 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8100
8101         * reload1.c (reload_cse_move2add): Fix a comment typo.
8102
8103 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
8104
8105         * config/h8300/h8300.md (a peephole2): Remove useless code.
8106
8107 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8108
8109         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
8110         (*iorsi3_and_lshiftrt): Likewise.
8111         (*iorsi3_zero_extract): Likewise.
8112
8113 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
8114
8115         * config/h8300/h8300.md (*insv_si_8_8): New.
8116         (*insv_si_8_8_lshiftrt_8): Likewise.
8117         (a peephole2): Likewise.
8118
8119 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8120
8121         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
8122         Uniformly use bugfix instead of bug fix.
8123
8124 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8125
8126         PR doc/895
8127         * ONEWS: Remove those items that already appear in the EGCS
8128         release notes on our web pages.
8129
8130 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
8131
8132         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
8133         TARGET_HARD_FLOAT.  Reformat.
8134         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
8135
8136 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
8137
8138         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
8139         work on Solaris 2.5.1.
8140
8141 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
8142
8143         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
8144         section of h8300.md
8145         (*addsi3_and_nor_r_1): Likewise.
8146
8147 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
8148
8149         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
8150         set up before any trapping memory access if flag_non_call_exceptions.
8151
8152 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
8153
8154         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
8155
8156         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
8157
8158 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
8159
8160         * configure.in: Clarify comments.
8161         * configure: Regenerate.
8162
8163 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
8164
8165         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
8166         label even if pool empty when generating PIC.
8167         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
8168
8169 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
8170             Dhananjay Deshpande  <dhananjayd@kpit.com>
8171
8172         PR target/10205
8173         * config/h8300/h8300.c (h8300_initial_elimination_offset):
8174         Correct the offset computation when TARGET_NORMAL.
8175
8176 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8177
8178         PR target/10067
8179         * config/sparc/sparc.md (jump pattern): Correct order
8180         when issuing the annuling marker.
8181
8182 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8183
8184         PR c/8281
8185         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
8186         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
8187
8188 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
8189
8190         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
8191         globalize_label.
8192         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8193         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8194         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8195         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8196         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8197         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
8198         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
8199
8200 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
8201
8202         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
8203         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
8204         notes after hoisting.
8205         (load_mems): Adjust replace_loop_mems call.
8206
8207 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8208             Richard Henderson  <rth@redhat.com>
8209
8210         PR target/10114 and PR target/10084
8211         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
8212
8213 2003-03-27  Richard Henderson  <rth@redhat.com>
8214
8215         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
8216
8217 2003-03-27  Roger Sayle  <roger@eyesopen.com>
8218
8219         * fold-const.c (fold_inf_compare):  New function to simplify FP
8220         comparisons against +Infinity or -Infinity.
8221         (fold):  Optimize floating point comparisons against Infs and NaNs.
8222
8223 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
8224
8225         * libgcov.c: Provide only dummy functions if libc is not available.
8226
8227 2003-03-27  Richard Henderson  <rth@redhat.com>
8228
8229         * real.h (struct real_value): Add signalling.
8230         (EXP_BITS): Decrement.
8231         * real.c (get_canonical_qnan): Don't set MSB-1.
8232         (get_canonical_snan): Likewise.  Set signalling.
8233         (real_identical): Compare signalling.
8234         (round_for_format): Remove force-one-bit on code.
8235         (real_nan): Likewise.  Set signalling.
8236         (encode_ieee_single): Add force-one-bit code; honor signalling.
8237         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
8238         (decode_ieee_single): Set signalling.
8239         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
8240
8241 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
8242
8243         PR ada/9953
8244         * ada/Makefile.in (gnatlib configuration for HPUX): Split
8245         the general section for HPUX into specific sections for
8246         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
8247         11 case.
8248
8249 2003-03-27  Glen Nakamura  <glen@imodulo.com>
8250
8251         PR opt/10087
8252         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
8253         while incrementing giv.
8254         (record_biv): Check for duplicate biv locations and
8255         set (struct induction *) v->same if found.
8256
8257 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
8258
8259         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
8260         v0.9 API change: replace read of UNW_REG_HANDLER with
8261         unw_get_proc_info().
8262         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
8263         with unw_get_proc_info().
8264         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
8265         unw_get_proc_info().
8266
8267 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8268
8269         * config/rs6000/8540.md: Use presence_set instead of absence_set.
8270
8271 2003-03-26  Richard Henderson  <rth@redhat.com>
8272
8273         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
8274
8275 2003-03-26  Roger Sayle  <roger@eyesopen.com>
8276
8277         PR bootstrap/10051, PR bootstrap/10169.
8278         * mips-tfile.c (init_file): Don't provide a static initializer.
8279         (initialize_init_file): Initialize the contents of init_file.
8280         (add_file): Call initialize_init_file if not already initialized.
8281
8282 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
8283
8284         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
8285         registers used for global asm variables.
8286         (s390_frame_info, s390_arg_frame_offset): Likewise.
8287         (s390_emit_prologue, s390_emit_epilogue): Likewise.
8288
8289 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8290
8291         * config/rs6000/8540.md: New file.
8292
8293         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
8294         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
8295         reservations for imul.
8296
8297         * config/rs6000/rs6000.md: Include 8540.md.  Change
8298         delayed_compare onto mult_compare for insns generating
8299         multiplication.
8300         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
8301         New type attribute values.
8302
8303         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
8304         fpsimple instead of fp.
8305         (*divsf3_gpr): Use type vecfdiv instead of fp.
8306         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
8307         instead of vecfloat.
8308         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
8309         (spe_brinc): Use type brinc instead of veccomplex.
8310         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
8311         veccomplex.
8312         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
8313         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
8314         *movv2sf_internal): Define type attribute values for all
8315         alternatives.
8316         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
8317         of fpcompare.
8318         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
8319         instead of fpcompare.
8320
8321 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
8322
8323         * config/rs6000/power4.md: Allow delay between dispatch and
8324         function units for simple instructions.  Correct store units.
8325         Allow branch to occupy as many dispatch slots as necessary.
8326
8327 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
8328
8329         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
8330         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
8331         zero extend old to it.
8332         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
8333         operand.
8334
8335 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
8336
8337         PR target/7784
8338         * reload.c (find_reloads_address): Handle
8339         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
8340         all base registers.
8341
8342 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
8343
8344         PR other/10203
8345         * version.c: Reference the GCC web site in the URL.
8346
8347 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
8348
8349         * c-incpath.c (add_standard_paths): Add both "translated" and
8350         non-translated header paths.
8351
8352 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
8353
8354         * doc/install.texi (*-*-freebsd*): Update with known status.
8355
8356 2003-03-21  Jason Merrill  <jason@redhat.com>
8357
8358         PR optimization/10171
8359         * unroll.c (unroll_loop): Don't delete the jump at the end unless
8360         we also delete a jump at the beginning.
8361
8362 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
8363
8364         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
8365         contributor.
8366
8367 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
8368
8369         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
8370         constants are not expensive.
8371
8372 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
8373
8374         PR opt/10056
8375         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
8376         jump jumping to the next instruction.
8377         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
8378
8379 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8380
8381         * doc/passes.texi (Passes): Properly document that we do not
8382         perform jump2 any longer; remove command-line option -dJ.
8383
8384 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
8385
8386         PR optimization/8746
8387         * config/i386/i386.md (and promoting splitters): Disable HImode to
8388         SImode promoting when the sign bit matters and is not preserved, or
8389         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
8390         for size.
8391
8392 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8393
8394         * config/h8300/h8300.md (a peephole2): Extend to support loads
8395         in QImode and HImode.
8396
8397 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
8398
8399         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
8400         _return_far
8401         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
8402         (MULTILIB_EXCEPTIONS): Likewise.
8403         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
8404         by calling some board support routine.
8405         ("call_value"): Likewise.
8406         ("*return_void"): Likewise for return.
8407         ("*return_16bit"): Likewise.
8408         ("*return_32bit"): Likewise.
8409         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
8410         for 68HC11 too.
8411         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
8412         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
8413         -mlong-calls for 68HC11.
8414         * config/m68hc11/larith.asm (declare_near): New macro.
8415         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
8416         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
8417         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
8418         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
8419         (__mulhi32): Likewise.
8420         (ret): Update macro for 68HC11.
8421         (__far_trampoline): Implement for 68HC11.
8422         (__call_a16, __call_a32, __return_void, __return_16): New support
8423         routines for 68HC11 memory bank switching calling support.
8424         (__return_32): Likewise.
8425
8426 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
8427
8428         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
8429
8430 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
8431
8432         * doc/install.texi (Testing): Mention test result links from build
8433         status pages.
8434
8435 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
8436
8437         * function.c (put_var_into_stack): Change bool parameter to int.
8438         (gen_mem_addressof): Likewise.
8439         * rtl.h (gen_mem_addressof): Likewise.
8440         * tree.h (put_var_into_stack): Likewise.
8441         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
8442         gen_mem_addressof or put_var_into_stack.
8443         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
8444         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
8445
8446 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
8447
8448         * config/h8300/h8300.md (a peephole2): New.
8449
8450 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
8451
8452         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
8453
8454 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8455
8456         * doc/contrib.texi (Contributors): Update Janis Johnson.
8457
8458 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8459
8460         PR target/10072
8461         * combine.c (simplify_if_then_else): Check that the mode
8462         has MODE_INT class before applying the (OP Z (mult COND C2))
8463         transformation.
8464
8465 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8466
8467         PR optimization/9414
8468         * config/sparc/sparc.md (widening peepholes): Use
8469         widen_memory_access instead of change_address.
8470
8471 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
8472
8473         PR c++/7086
8474         * c-typeck.c (c_mark_addressable): Adjust calls to
8475         put_var_into_stack.
8476         * expr.c (expand_expr): Likewise.
8477         * function.c (put_var_into_stack): Add rescan parameter.  Do not
8478         call fixup_var_refs when rescan is false.
8479         (gen_mem_addressof): Likewise.
8480         (assign_parms): Adjust calls to put_var_into_stack.
8481         (setjmp_protect): Likewise.
8482         (setjmp_protect_args): Likewise.
8483         * rtl.h (gen_mem_addressof): Change prototype.
8484         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
8485         * tree.h (put_var_into_stack): Change prototype.
8486
8487 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
8488
8489         PR middle-end/9967
8490         * builtins.c (expand_builtin_fputs): When optimizing for size,
8491         don't transform fputs into fwrite.
8492
8493 2003-03-23  Glen Nakamura <glen@imodulo.com>
8494
8495         PR c/8224
8496         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
8497         when signedness changes for division or modulus.
8498
8499 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
8500
8501         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
8502         globalize_label.
8503
8504 2003-03-23  Roger Sayle  <roger@eyesopen.com>
8505
8506         PR c/10178
8507         * stmt.c (expand_end_case_type): Check for overflow in range when
8508         determining whether to use a bit-test implementation.
8509
8510 2003-03-23  Richard Henderson  <rth@redhat.com>
8511
8512         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
8513         before flow2.
8514         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
8515
8516 2003-03-23  Richard Henderson  <rth@redhat.com>
8517
8518         PR opt/10116
8519         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
8520         from then_bb or else_bb after flow2.
8521
8522 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
8523
8524         * configure.in: Check whether it is necessary to link against
8525         libm to use ldexp.
8526         * configure: Regenerate.
8527         * Makefile.in: Add LDEXP_LIB substitution variable.
8528
8529 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8530
8531         * config/h8300/h8300.md: Fix comment typos.
8532
8533 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8534
8535         * pa.c (output_cbranch): Fix typo in comment.
8536
8537 2003-03-22  Richard Henderson <rth@redhat.com>
8538
8539         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
8540         after reload.
8541
8542 2003-03-22  DJ Delorie  <dj at redhat dot com>,
8543         Bruce Korb  <bkorb at gnu dot org>
8544
8545         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
8546         buggy Solaris 2.6 mutex/cond initializers.
8547         (solaris_mutex_init): Rename to solaris_mutex_init_2.
8548         * fixinc/fixincl.x: Regenerate.
8549         * fixinc/tests/base/pthread.h: Update.
8550         * fixinc/fixincl.c(initialize): be explicit about the default case
8551         and indicate verbose level when being very, very verbose.
8552         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
8553
8554 2003-03-22  Andreas Jaeger  <aj@suse.de>
8555
8556         * config/i386/i386.c (ix86_init_machine_status): Return value.
8557
8558 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8559
8560         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
8561         conditional branch to the following instruction.  Use next_real_insn
8562         instead of next_active_insn.
8563         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
8564         instead of next_active_insn.
8565
8566 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8567
8568         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
8569         instead of 'm' constraint in forced-split alternatives.
8570         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
8571         VALIDATE_ADDRESS parameter to operand_subword.
8572
8573 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
8574
8575         * config/h8300/h8300.c (notice_update_cc): Correctly handle
8576         the case where the set destination is STRICT_LOW_PART.
8577
8578 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
8579
8580         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
8581         c30 instead of a c40 processor.
8582
8583 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
8584
8585         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
8586
8587 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
8588
8589         * c-common.c: Include intl.h.
8590         (shadow_warning): Rewrite to allow better diagnostic translations.
8591         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
8592         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
8593         use it throughout.
8594         * Makefile.in (c-common.o): Add intl.h.
8595
8596 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
8597
8598         * config.gcc: Remove 'float_format'.
8599
8600         * fixproto: Define NULL and size_t in generated stdlib.h and
8601         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
8602         Rearrange file generation loop for readability.  Generate time.h,
8603         string.h if missing.
8604         * tsystem.h: Include <string.h>, <time.h> unconditionally.
8605         * config.gcc: Blow away POSIX defines.
8606
8607 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
8608
8609         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
8610
8611 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
8612
8613         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
8614         writing .interrupt command.
8615         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
8616         if it's a far or near function.
8617         ("call_value"): Likewise.
8618         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
8619         near attributes.
8620         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
8621         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
8622         (m68hc11_initial_elimination_offset): Set current_function_far
8623         according to attributes.
8624         (expand_prologue): Likewise.
8625         (trap_handler_symbol): New global to keep track of trap handlers.
8626         (m68hc11_encode_section_info): Mark symbol as far if needed; set
8627         trap symbol.
8628         (m68hc11_is_far_symbol): New function.
8629         (m68hc11_is_trap_symbol): New function.
8630         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
8631         (m68hc11_is_trap_symbol): Declare.
8632
8633 2003-03-21  Jan Hubicka  <jh@suse.cz>
8634
8635         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
8636         only when amount of saved regs changed.
8637         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
8638         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
8639
8640 2003-03-21  Jan Hubicka  <jh@suse.cz>
8641
8642         PR inline-asm/7916
8643         * function.c (instantiate_virtual_regs_lossage): New function.
8644         (instantiate_virtual_regs_1): Use it.
8645         (instantiate_virtual_regs): Do not continue in substition when insn has
8646         been deleted.
8647
8648 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8649
8650         * combine.c (make_field_assignment): Fix a warning.
8651
8652 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8653
8654         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
8655
8656 2003-03-21  Dale Johannesen  <dalej@apple.com>
8657
8658         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
8659         priority for R2 on Darwin.
8660         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
8661
8662 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8663
8664         * combine.c (make_field_assignment): Remove unnecessary AND
8665         when storing into zero_extract.
8666
8667 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
8668
8669         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
8670         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
8671         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
8672         in comment.
8673
8674 2003-03-21  DJ Delorie  <dj@redhat.com>
8675
8676         * optabs.c (init_integral_libfuncs): Make sure we init at least up
8677         to "long long" size words.
8678
8679 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8680
8681         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
8682         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
8683         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
8684
8685 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8686
8687         PR doc-bug/9813
8688         * doc/extend.texi: Move misplaced paragraph about underscores in
8689         variables in macros.
8690
8691 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
8692             Richard Henderson  <rth@redhat.com>
8693
8694         PR optimization/8366
8695         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
8696         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
8697         PIC+SYMBOLIC_CONST in other modes than Pmode.
8698         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
8699         the form PIC+SYMBOLIC_CONST as mode dependent.
8700
8701 2003-03-21  DJ Delorie  <dj@redhat.com>
8702
8703         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
8704         sure we always emit at least one insn.
8705
8706 2003-03-21  Christopher Faylor  <cgf@redhat.com>
8707
8708         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
8709         stub t-cygming. Use common target header cygming.h. Add extra
8710         c_target_obj and cxx_target_obj file. Default cygwin to posix
8711         threading. Enforce i386 as float format.
8712         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
8713         Remove cygwin.h as target header. Use common target header
8714         cygming.h  Enforce i386 as float format. Correct typo.
8715         * config/i386/cygming.h: New file, containing definitions
8716         common to mingw32 and cygwin.
8717         * config/i386/cygwin.h: Remove definitions common to cygwin and
8718         mingw.  Simplify special spec logic.  Define "wrappers" around
8719         certain include path defines to accommodate -mno-cygwin.
8720         Remove some #if 0'ed code.
8721         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
8722         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
8723         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
8724         * config/i386/mingw32.h: Remove definitions common to cygwin and
8725         mingw.
8726         (EXTRA_OS_CPP_BUILTINS): Adjust.
8727         (TARGET_VERSION): Define.
8728         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
8729         mingw32.h definitions.
8730         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
8731         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
8732         Add compilation rules for cygwin1.o cygwin2.o.
8733         * config/i386/cygwin1.c: New file.
8734         * config/i386/cygwin2.c: New file.
8735         * config/i386/t-cygming: New makefile stub.
8736
8737 2003-03-20  Richard Henderson  <rth@redhat.com>
8738
8739         * fold-const.c (extract_muldiv_1): Revert changing order of
8740         operands in case MULT_EXPR of 2003-02-16 patch.
8741
8742 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
8743         Merge changes from new-regalloc-branch
8744
8745         From Michael Matz  <matz@suse.de>
8746         * df.c (df_ref_record_1): Move init of loc to safe point.
8747         Only recurse on interesting things in parallels.
8748         Handle CLASS_CANNOT_CHANGE_MODE smarter.
8749         (df_uses_record): Ditto.
8750
8751         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
8752         it's already okay to use memory operands in (IE doesn't require
8753         adding another insn or anything).
8754
8755 2003-03-20  Richard Henderson  <rth@redhat.com>
8756
8757         PR middle-end/6348
8758         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
8759         different from word_mode.
8760
8761 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8762
8763         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
8764         source operand to those that can be extracted with bld.
8765
8766 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
8767
8768         PR 10066
8769         * arm.md (UNSPEC_PIC_BASE): New constant.
8770         (pic_add_dot_plus_four): Wrap with unspec.
8771         (pic_add_dot_plus_eight): Likewise.
8772
8773 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8774
8775         * config/h8300/h8300.md (*insv_si_1_n): New.
8776         (*insv_si_1_n_lshiftrt): Likewise.
8777
8778 2003-03-20  Roger Sayle  <roger@eyesopen.com>
8779
8780         * fold-const.c (fold_mathfn_compare): New function to simplify
8781         comparisons against built-in math functions.  Fold comparisons
8782         of sqrt against constants.
8783         (fold): Call fold_mathfn_compare when appropriate.
8784
8785 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
8786
8787         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
8788         information.
8789
8790 2003-03-20  Per Bothner  <pbothner@apple.com>
8791
8792         Various cleanups to help compile server.
8793
8794         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
8795         and pass that to _cpp_init_hashtable.
8796         (cpp_read_main_file):  Drop hash_table* argument; don't call
8797         _cpp_init_hashtable.
8798         * cpplib.h:  Update declarations to match.
8799         * c-opts.c (c_common_init_options):  Pass ident_hash to
8800         cpp_create_reader.
8801         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
8802         * fix-header.c (read_scan_file):  Likewise pass NULL table to
8803         cpp_create_reader rather than cpp_read_main_file.
8804
8805         * cppfiles.c (cpp_rename_file):  Generalized and renamed
8806         to cpp_change_file.
8807         * cpplib.h:  Update declaration to match.
8808         * c-opts.c (push_command_line_line, finish_options):  Change
8809         cpp_rename_file calls to cpp_change_file.
8810
8811         * line-map.c (add_line_map):  Allow leaving the outermost file.
8812         Allowing entering an outermost-file after the initial time.
8813
8814         * toplev.c (pop_srcloc):  Allow popping from initial file.
8815
8816 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
8817
8818         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
8819
8820 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8821
8822         * config/h8300/h8300.md (a peephole2): New.
8823
8824 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8825
8826         * config/h8300/h8300.md (*addsi3_and_r_1): New.
8827         (*addsi3_and_not_r_1): Likewise.
8828
8829 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
8830
8831         * Makefile.in (STRICT2_WARN): Add @WERROR@.
8832         (GCC_WARN_CFLAGS): Remove $(WERROR).
8833         (fixinc.sh-warn): New.
8834         * ada/Make-lang.in (ada-warn): Add $(WERROR).
8835         * cp/Make-lang.in (cp-warn): Add $(WERROR).
8836         * f/Make-lang.in (f-warn): Add $(WERROR).
8837         * java/Make-lang.in (java-warn): Add $(WERROR).
8838         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
8839
8840 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
8841
8842         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
8843         langhooks-def.h (lhd_tree_dump_dump_tree),
8844         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
8845         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
8846         true and false in return statements.
8847
8848 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
8849
8850         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
8851         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
8852         DWARF_INITIAL_LENGTH_SIZE.
8853         (output_compilation_unit_header, output_pubnames, output_aranges)
8854         (output_line_info): Output 0xffffffff escape value for 64-bit
8855         DWARF extension.
8856         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
8857
8858 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
8859
8860         * config/s390/s390.c (s390_preferred_reload_class): Do not
8861         force constants to the pool unless necessary.
8862         (s390_decompose_address): Prefer to use pointer as base,
8863         not index register.
8864         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
8865         Q alternative.
8866         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
8867         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
8868         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
8869         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
8870         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
8871
8872 2003-03-19  Jan Hubicka  <jh@suse.cz>
8873
8874         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
8875         * i386.c (use_fast_prologue_epilogue): Remove.
8876         (ix86_frame): New field save_regs-using_mov;
8877         (ix86_compute_frame_layout):  Decide on fast prologues;
8878         allocate saved registers in red zone.
8879         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
8880
8881 2003-03-19  Nick Clifton  <nickc@redhat.com>
8882
8883         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
8884
8885 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8886
8887         PR 10062
8888         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
8889         * pa-protos.h (output_lbranch): New prototype.
8890         * pa.c (compute_frame_size): Change size of the frame marker on the
8891         64-bit ports to 48 bytes.
8892         (pa_output_function_prologue): Document why SAVE_SP is set.
8893         (hppa_expand_prologue): Save previous stack pointer into frame marker
8894         on targets which use the hpux unwind library.
8895         (output_cbranch): Use output_lbranch.
8896         (output_lbranch): New function to output long unconditional branches.
8897         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
8898         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
8899         64-bit ports.
8900         * pa.md (jump): Use output_lbranch.
8901         (allocate_stack): New expander for dynamic stack allocation.
8902
8903 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
8904
8905         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
8906         when debugging on XCOFF targets.  Delete "abi" temp.
8907
8908         PR target/10073
8909         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
8910
8911 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
8912
8913         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
8914         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
8915         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8916
8917         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
8918         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
8919         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8920
8921 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
8922
8923         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
8924         the result of machopic_function_base_name.
8925         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
8926         string rather than a static array.
8927
8928         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
8929
8930         * gengtype.c: Include rtl.h.
8931         (enum rtx_code): Don't define.
8932         (rtx_format): Make declaration match rtl.h.
8933         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
8934         users.
8935         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
8936         * Makefile.in (gengtype.o): Update dependencies.
8937
8938 2003-03-18  Andreas Schwab  <schwab@suse.de>
8939
8940         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
8941         martin@blom.org.
8942
8943 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
8944
8945         * function.c (next_block_index): Mark with GTY.
8946
8947         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
8948
8949 2003-03-18  Richard Henderson  <rth@redhat.com>
8950
8951         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
8952         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
8953         until after reload.
8954
8955 2003-03-18  Richard Henderson  <rth@redhat.com>
8956
8957         * builtins.c (expand_builtin_unop): New target_mode operand;
8958         use it to convert the result to the correct mode.
8959         (expand_builtin): Update all callers.
8960
8961 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
8962
8963         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
8964
8965 2003-03-18  Jan Hubicka  <jh@suse.cz>
8966
8967         * i386.md:  Fix previous commit that mistakely applied the patch
8968         twice.
8969
8970         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
8971         canonicalized.
8972         (memrefs_conflict_p): Likewise.
8973         (addr_side_effect_eval): Canonicalize the constructed address.
8974
8975 2003-03-18  Jan Hubicka  <jh@suse.cz>
8976
8977         * i386.md (cvtts?2si peep2): New.
8978
8979 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8980
8981         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
8982
8983 2003-03-18  Andreas Schwab  <schwab@suse.de>
8984
8985         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
8986         for format.
8987
8988 2003-03-17  Jason Merrill  <jason@redhat.com>
8989
8990         PR c++/10091
8991         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
8992         an unaligned member of TREE_ADDRESSABLE type.
8993
8994 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
8995
8996         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
8997         (TARGET_PROFILE_KERNEL): Define.
8998         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
8999         (PROFILE_BEFORE_PROLOGUE): Don't define.
9000         (PROFILE_KERNEL): Remove hacks.
9001         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
9002         (rs6000_stack_info): No need to save lr if just for profiling when
9003         TARGET_PROFILE_KERNEL.
9004         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
9005         (output_function_profiler): Localize label generation.  Emit code
9006         for kernel profiling.
9007
9008 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
9009
9010         * config/h8300/h8300-protos.h: Add a prototype for
9011         byte_accesses_mergeable_p.
9012         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
9013         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
9014         (a splitter): Likewise.
9015         (*iorsi3_ashift_16_ashift_24): Likewise.
9016         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
9017
9018 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9019
9020         * dwarf2asm.h: Delete obsolete comment.
9021         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
9022         dw2_asm_output_pcrel, dw2_asm_output_addr,
9023         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
9024         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
9025         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
9026         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
9027
9028 2003-03-17  Zack Weinberg <zack@codesourcery.com>
9029
9030         * c-tree.h (struct lang_identifier): Remove error_locus field.
9031         (IDENTIFIER_ERROR_LOCUS): Kill.
9032         (record_function_scope_shadow): New prototype.
9033         * c-typeck.c (build_external_ref): Don't complain if
9034         decl is error_mark_node.  When not at file scope, bind the
9035         decl's local value to error_mark_node to suppress further
9036         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
9037
9038         * c-decl.c (get_function_binding_level): New static function.
9039         (record_function_scope_shadow): New exported function.
9040         (c_make_fname_decl): Use get_function_binding_level.
9041
9042 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
9043
9044         * stmt.c (tail_recursion_args): Call promote_mode to set
9045         unsignedp flag correctly before calling convert_move.
9046
9047 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9048
9049         * loop-unroll.c (decide_peel_completely,
9050         decide_unroll_constant_iterations, decide_unroll_stupid,
9051         decide_unroll_runtime_iterations, decide_peel_simple): Set
9052         loop->has_desc.
9053
9054 2003-03-17  Jan Hubicka  <jh@suse.cz>
9055
9056         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
9057
9058 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
9059
9060         * function.c (assign_parms): For a struct value address passed as
9061         first argument, delay the function's result RTL setup code until
9062         after the emission of parameter conversions.
9063
9064 2003-03-17  Dave Love  <fx@gnu.org>
9065             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9066
9067         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
9068         __arch64__ to match Compaq cc.
9069
9070 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
9071
9072         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
9073         (c_common_init): Set EBCDIC in cpp options.
9074         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
9075         not conditional compilation.
9076         * cpplib.h (struct cpp_options): New entry EBCDIC.
9077
9078 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
9079
9080         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
9081
9082 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9083
9084         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
9085         argument to 0 for redirect_jump.
9086
9087 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
9088
9089         PR c++/8805
9090         * except.c (eh_region_u_cleanup): Add prev_try.
9091         (expand_eh_region_end_cleanup): Set it.
9092         (reachable_handlers): Use it to skip over cleanup blocks.
9093
9094 2003-03-17  Andreas Jaeger  <aj@suse.de>
9095
9096         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
9097
9098 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
9099
9100         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
9101         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
9102         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
9103         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
9104
9105 2003-03-16  Richard Henderson  <rth@redhat.com>
9106
9107         * simplify-rtx (simplify_binary_operation): Don't abort for
9108         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
9109
9110 2003-03-16  Richard Henderson  <rth@redhat.com>
9111
9112         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
9113         optimize_size as well.
9114
9115 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
9116
9117         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
9118         for D register to specify the low part of it, aka B.
9119         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
9120         the register if we are loading 1 or -1 to it; avoid using temp
9121         register when moving X/Y to Y/X.
9122         (m68hc11_gen_movqi): Likewise.
9123         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
9124
9125 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
9126
9127         PR optimization/9016
9128         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
9129         into the constant pool.
9130
9131 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9132
9133         PR target/9164
9134         * tree.c (get_narrower): For extensions with unchanged bit number,
9135         return the unsignedness of the outer mode.
9136
9137 2003-03-16  Roger Sayle  <roger@eyesopen.com>
9138
9139         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
9140         to avoid "may be used uninitialized" warning on ia64-hpux.
9141         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
9142
9143 2003-03-16  Andreas Jaeger  <aj@suse.de>
9144
9145         * configure.in: Improve check for memcheck.h.
9146         * configure: Regenerated.
9147
9148 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
9149
9150         * doc/cppopts.texi: Remove documentation of -A-.
9151
9152 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
9153
9154         * doc/libgcc.texi: Remove @tie.
9155
9156 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
9157
9158         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
9159         (rtx_pair): Added new element update_label_nuses, renamed to
9160         replace_label_data.
9161         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
9162         replace_label_data instead of rtx_pair.
9163         * loop.c (load_mems): Likewise.
9164         * rtlanal.c (replace_label): Replace label in pool constants and in
9165         INSN_LIST (in REG_LABEL note).
9166         (subrtx_p): Renamed to rtx_referenced_p.
9167         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
9168         LABEL_REF with CODE_LABEL, traverse constants from pool.
9169
9170 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
9171             Zack Weinberg  <zack@codesourcery.com>
9172
9173         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
9174         * doc/libgcc.texi: New file.
9175         * doc/interface.texi: Delete paragraph about libgcc interface.
9176         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
9177
9178 2003-03-15  Jason Merrill  <jason@redhat.com>
9179
9180         PR debug/9039
9181         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
9182
9183         PR debug/6387
9184         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
9185         function DIEs at toplevel.
9186         (decls_for_scope): At -g1, don't descend into subblocks.
9187
9188 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
9189
9190         * varasm.c (struct rtx_const): Change type of un.addr member
9191         to struct holding an additional 'symbol' member.
9192         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
9193         with equal string addresses as equal.
9194         (simplify_subtraction): Adapt to struct rtx_const change.
9195
9196 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9197
9198         * fix-header.c (read_scan_file): Read main file before handling -D.
9199
9200 2003-03-15  Roger Sayle  <roger@eyesopen.com>
9201
9202         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
9203         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
9204         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
9205         (find_sub_basic_blocks): Likewise.
9206         * cgraphunit.c (cgraph_expand_functions): Likewise.
9207         * dwarf2out.c (prune_unused_types): Likewise.
9208         * expr.c (store_field): Likewise.
9209         * genextract.c (print_path): Likewise.
9210         * haifa-sched.c (schedule_insn): Likewise.
9211         * lcm.c (compute_antinout_edge): Likewise.
9212         * loop-unroll.c (decide_peel_once_rolling): Likewise.
9213         * ra-colorize.c (ra_colorize_free_all): Likewise.
9214         * ra-debug.c (dump_igraph): Likewise.
9215         (debug_hard_reg_set): Likewise.
9216         * reg-stack.c (reg_to_stack): Likewise.
9217         * rtlanal.c (refers_to_regno_p): Likewise.
9218         * tracer.c (layout_superblocks): Likewise.
9219
9220 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9221
9222         * fix-header.c (read_scan_file): Fix thinko.
9223
9224 2003-03-15  Glen Nakamura  <glen@imodulo.com>
9225
9226         * reload1.c (choose_reload_regs): Use && instead of ||
9227         with REG_CANNOT_CHANGE_MODE_P condition.
9228
9229 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
9230
9231         * Makefile.in: Update.
9232         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
9233         * c-lex.c (init_c_lex): Register builtins hook is dead.
9234         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
9235         (c_common_decode_option): Don't call cpp_handle_option.
9236         Handle -A, -D and -U.
9237         (handle_deferred_opts): Simplify.
9238         (finish_options): Define builtins and command line macros.
9239         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
9240         * cppinit.c: Don't include intl.h.
9241         (init_builtins): Rename cpp_init_builtins.  No hook to call.
9242         (init_library): Don't need to sort options.
9243         (cpp_create_reader): Don't set pending.
9244         (cpp_destroy): Don't free pending.
9245         (struct pending_option, cl_directive_handler, struct cpp_pending,
9246         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
9247         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
9248         cl_options, cpp_handle_option): Remove.
9249         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
9250         cpp_finish_options): Remove.
9251         (cpp_init_builtins): New.
9252         * fix-header.c (read_scan_file): Update to handle -D.  Fix
9253         handling of -I.  Replace call to cpp_finish_options.
9254
9255 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9256
9257         PR optimization/9387
9258         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
9259         for conditional returns.
9260
9261 2003-03-14  Jason Merrill  <jason@redhat.com>
9262
9263         PR optimization/6871
9264         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
9265
9266 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
9267
9268         * c-opts.c (finish_options): New.
9269         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
9270         (missing_arg): Handle OPT_include and OPT_imacros.
9271         (c_common_init, c_common_parse_file): Use finish_options.
9272         (handle_deferred_opts): Update.
9273         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
9274         (cpp_finish_options): Don't handle -imacros here.
9275         (no_fil): Remove.
9276         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
9277
9278 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
9279
9280         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
9281         rs6000_maybe_dead if !fromprolog.
9282
9283 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
9284
9285         * Makefile.in: Update.
9286         * c-common.h (fe_file_change, pp_file_change): New.
9287         * c-lex.c (init_c_lex): Don't set cb_file_change.
9288         (c_common_parse_file): Move to c-opts.c.
9289         (cb_file_change): Rename fe_file_change.
9290         * c-opts.c: Include debug.h.
9291         (warn_unused_macros, include_cursor): New.
9292         (push_command_line_include, cb_file_change): New.
9293         (COMMAND_LINE_OPTIONS): Handle -include.
9294         (c_common_decode_option): Use local warn_unused_macros.
9295         Handle OPT_include.
9296         (c_common_post_options): Set file change callback.
9297         (handle_deferred_opts): Skip -include.  Don't free the array.
9298         (c_common_init): Call cpp_finish_options here, and push an
9299         initial -include file.
9300         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
9301         (preprocess_file): Don't call cpp_finish_options.
9302         (init_pp_output): Don't set the file change callback.
9303         (pp_file_change): Return if no line commands or no output.
9304         * cpphash.h (next_include_file, first_unused_line): Remove.
9305         * cppinit.c (include_head, include_tail): Remove.
9306         (cpp_destroy): Don't free -include chain.
9307         (cpp_finish_options): Don't handle -include, or worry about
9308         -Wunused-macros.
9309         (_cpp_maybe_push_include_file): Remove.
9310         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
9311         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
9312         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
9313         Used flag is set based upon the state of the warn_unused_macros
9314         flag, and so use of first_unused_line is unnecessary.
9315
9316 2003-03-13  Jan Hubicka  <jh@suse.cz>
9317
9318         * cselib.c (clear_table): Do not take argument; always clear just
9319         used slots.
9320         (cselib_process_insn):  Update call of clear_table
9321         (cselib_init): Do not call clear_table.
9322         (cselib_finish): Clear table.
9323
9324         * cse.c (count_reg_usage): Do not check side_effects_p.
9325         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
9326         like noop.
9327         (find_reg_equal_equiv_note): Do not use find_reg_note.
9328
9329 2003-03-14  Richard Henderson  <rth@redhat.com>
9330
9331         PR target/9700
9332         * config/alpha/alpha.c (alpha_va_start): Account for
9333         current_function_pretend_args_size in the AP offset.
9334
9335         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
9336         (INITIAL_ELIMINATION_OFFSET): Move out of line.
9337         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
9338         (alpha_initial_elimination_offset) New.
9339         * config/alpha/alpha-protos.h: Update.
9340
9341 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
9342
9343         * stmt.c (expand_start_case): Call emit_queue ().
9344
9345 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
9346             Alexandre Oliva  <aoliva@redhat.com>
9347
9348         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
9349         words in new abis.
9350
9351 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
9352
9353         PR optimization/8396
9354         * tree-inline.c (initialize_inlined_parameters): Make sure the value
9355         of read-only constant arguments is passed with the right type.
9356
9357 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
9358
9359         * doc/extend.texi (Function Names): Make the example compilable.
9360
9361 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
9362
9363         * config/rs6000/rs6000.c (processor_target_table): Really allow
9364         GP optional instructions on Power4.
9365
9366 2003-03-13  Roger Sayle  <roger@eyesopen.com>
9367
9368         * calls.c (flags_from_decl_or_type): Factor and remove redundant
9369         conditional tests.
9370
9371 2003-03-13  Mike Stump  <mrs@apple.com>
9372
9373         * ggc-page.c (struct page_entry): Remove varray.h header.
9374         Add index_by_depth field.
9375         Remove save_in_use_p field.
9376         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
9377         by_depth_max, by_depth, and save_in_use fields.
9378         (INITIAL_PTE_COUNT): Add.
9379         (save_in_use_p_i): Add.
9380         (save_in_use_p): Add.
9381         (adjust_depth): Add.
9382         (move_ptes_to_front): Add.
9383         (push_depth): Add.
9384         (push_by_depth): Add.
9385         (prefetch): Add.
9386         (free_page): Add support for and use faster data structures.
9387         (ggc_alloc): Likewise.
9388         (init_ggc): Likewise.
9389         (ggc_recalculate_in_use_p): Likewise.
9390         (ggc_pop_context): Likewise.
9391         (clear_marks): Likewise.
9392         (ggc_pch_read): Likewise.
9393         * Makefile.in (ggc-page.o): Remove varray.h.
9394
9395 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
9396
9397         * ChangeLog: Rotated last year's entries to...
9398         * ChangeLog.8: New.
9399
9400         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
9401         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
9402         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
9403         config/ia64/ia64-protos.h, config/ia64/ia64.c,
9404         config/ia64/ia64.h, config/ia64/ia64.md,
9405         config/ia64/itanium1.md, config/ia64/itanium2.md,
9406         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
9407         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
9408
9409 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
9410
9411         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
9412         Differentiate endianness.
9413         (s6000_override_options): Use cpu type instead of TARGET_SPE.
9414
9415 2003-03-13  Nick Clifton  <nickc@redhat.com>
9416
9417         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
9418         LDM instructions with writeback enabled.
9419         (output_return_instruction): Likewise.
9420
9421         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
9422         (CALL_USED_REGISTERS): Remove definition.
9423         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
9424
9425 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
9426
9427         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
9428         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
9429         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
9430         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
9431         (rs6000_legitimize_address): Formatting.
9432         (rs6000_emit_move): Likewise.
9433         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
9434         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
9435         (rs6000_elf_select_section): Comment reason for shlib being
9436         set for ABI_AIX.
9437         (rs6000_elf_unique_section): Likewise.
9438         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
9439         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
9440         as well as flag_pic.
9441         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
9442         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
9443         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
9444
9445 2003-03-13  Richard Henderson  <rth@redhat.com>
9446
9447         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
9448
9449         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
9450         (ia64_gp_save_reg): Remove.
9451         (struct ia64_frame_info): Move to the beginning of the file;
9452         add reg_save_gp.
9453         (ia64_expand_call): Rearrange for new call patterns.
9454         (ia64_reload_gp): New.
9455         (ia64_split_call): New.
9456         (ia64_compute_frame_size): Allocate reg_save_gp.
9457         (ia64_expand_prologue): Save reg_save_gp.
9458         (ia64_expand_epilogue): Don't restore gp.
9459         (ia64_hard_regno_rename_ok): Remove R4 hack.
9460         (ia64_function_ok_for_sibcall): New.
9461         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
9462         call try_split on sibcall pattern.
9463         * config/ia64/ia64-protos.h: Update.
9464         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
9465         Rename from nopic versions.  Confiscate 2nd argument to call as
9466         a marker.
9467         (call_pic, call_value_pic, sibcall_pic): Remove.
9468         (call_gp, call_value_gp, sibcall_gp): New.
9469         (builtin_setjmp_setup): Remove.
9470         (builtin_setjmp_receiver): Call ia64_reload_gp.
9471
9472 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9473
9474         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
9475         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
9476         "GNU CC" with "GCC".
9477
9478         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
9479         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
9480         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
9481         GCC, not GNU CC.
9482
9483         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
9484         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
9485
9486         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
9487         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
9488         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
9489         "GNU CC" with "GCC".
9490
9491         * config/v850/lib1funcs.asm, config/v850/rtems.h,
9492         config/v850/v850-c.c, config/v850/v850-protos.h,
9493         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
9494         GCC, not GNU CC.
9495
9496         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
9497         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
9498         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
9499         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
9500         GNU CC.
9501
9502 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
9503
9504         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
9505
9506 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9507
9508         * fixinc/fixinc.interix: Remove dead code (most of it).
9509         * fixinc/fixinc.dgux: Remove.
9510
9511         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
9512         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
9513
9514 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9515
9516         * pa.c (pa_init_builtins): Fix warning.
9517
9518 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
9519
9520         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
9521         (ASM_OUTPUT_XDATA_SHORT): Remove.
9522         (ASM_OUTPUT_XDATA_INT): Remove.
9523         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
9524         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
9525         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
9526         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
9527
9528 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
9529
9530         PR c++/7050
9531         * expr.c (store_expr): Don't attempt to store void-typed trees,
9532         just evaluate them for side effects.
9533
9534 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
9535
9536         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
9537         * cppinit.c (push_include): Move with changes to cppfiles.c.
9538         (cpp_read_main_file): Mark named operators here...
9539         (cpp_finish_options): ...not here.  Update.
9540         (_cpp_maybe_push_include_file): Update.
9541         * cpplib.h (cpp_push_include, cpp_rename_file): New.
9542
9543 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9544
9545         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
9546         _gcc_COMPUTE_GAS_VERSION.
9547         * configure.in: Use them.
9548         * configure: Regenerate.
9549
9550 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
9551
9552         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
9553         to detect carry.
9554         (subdi3): Reorder emitted instructions.
9555
9556 2003-03-12  Andreas Jaeger  <aj@suse.de>
9557
9558         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
9559         NETBSD_OS_CPP_BUILTINS_LP64.
9560
9561 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
9562
9563         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
9564         Rearrange.  Reorganize.
9565         * configure.in: Rearrange.
9566         * configure: Regenerate.
9567
9568 2003-03-12  Andreas Jaeger  <aj@suse.de>
9569
9570         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
9571         LP64 targets.
9572
9573         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
9574         _LP64.
9575
9576         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
9577         _LP64 macros here.
9578         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
9579
9580         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
9581         NETBSD_OS_CPP_BUILTINS_LP64.
9582         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
9583         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
9584
9585         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
9586
9587 2003-03-12  Jan Hubicka  <jh@suse.cz>
9588
9589         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
9590
9591 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
9592
9593         Fix PR target/9797 and PR c/9853.
9594         * stmt.c (expand_decl_init): Call push_temp_slots () and
9595         pop_temp_slots ().
9596
9597 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
9598
9599         * sh.c: Include basic-block.h.
9600         (sh_output_mi_thunk, emit_load_ptr): New functions.
9601         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
9602
9603 2003-03-12  Nick Clifton  <nickc@redhat.com>
9604
9605         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
9606         (CALL_USED_REGISTERS): Likewise.
9607         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
9608         describing how this value is calculated.
9609
9610 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
9611
9612         * configure.in (rlim_t): Define to long if no valid definition
9613         found in sys/resource.h.
9614         * config.in, configure: Regenerate.
9615
9616 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
9617
9618         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
9619         TARGET_OS_CPP_BUILTINS.
9620         * config/mcore/mcore-pe.h: Similarly.
9621         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
9622         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
9623
9624 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9625
9626         PR c/9928
9627         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
9628         only if it is a VAR_DECL.
9629
9630 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9631
9632         PR optimization/9888
9633         * config/i386/i386.md (jcc_1): Fix range.
9634         (jcc_2): Likewise.
9635         (jump): LIkewise.
9636         (doloop_end_internal): Likewise.
9637
9638 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
9639
9640         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
9641         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
9642         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
9643         DLL_IMPORT_EXPORT_PREFIX and "i."
9644         (i386_pe_dllexport_name_p): Here.
9645         (i386_pe_dllimport_name_p): Here.
9646         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
9647         not 9 chars when getting identifier name.
9648         (i386_pe_mark_dllimport): Here.
9649         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
9650         not 9 chars when getting identifier name. Correct comment.
9651         (i386_pe_strip_name_encoding): Here. Add comments for different
9652         cases.
9653         (gen_fastcall_suffix): Break down xmalloc() argument to
9654         components.
9655         (gen_stdcall_suffix): Likewise.
9656         Update copyright year.
9657
9658 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9659
9660         PR optimization/9888
9661         * config/i386/i386.md (movsi_1): Remove special alternatives
9662         for %eax register.
9663         (movsi_1_nointernunit): Likewise.
9664         (movhi_1): Likewise.
9665         * config/i386/i386.c (memory_address_length): Do not use
9666         short displacement when there is no base.
9667         (ix86_attr_length_address_default): Handle LEA instructions.
9668
9669 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
9670
9671         * c-cppbuiltin.c (builtin_define_std): Make non-static.
9672
9673 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
9674
9675         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
9676         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
9677         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
9678         * config/freebsd.h (CPP_PREDEFINES): Remove.
9679         (TARGET_OS_CPP_BUILTINS): New.
9680         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
9681         instead of TARGET_OS_CPP_BUILTINS.
9682         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
9683
9684 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
9685
9686         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
9687
9688 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
9689
9690         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
9691         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
9692
9693         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
9694
9695 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
9696
9697         * toplev.c (independent_decode_option): Return success for --help,
9698         --target-help and --version.
9699
9700 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
9701
9702         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
9703         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
9704         specified.
9705         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
9706         DRIVER_SELF_SPECS.
9707         (LINK_SPEC): Let endian options affect the linker emulation name.
9708
9709 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
9710
9711         * sh.md (reload_inqi): Fix mode for source in second set.
9712
9713 2003-03-11  Jan Hubicka  <jh@suse.cz>
9714
9715         * cselib.c (cselib_invalidate_mem_1): Move too ...
9716         (cselib_invalidate_mem): ... here; use new list
9717         (dummy_val, first_containing_mem): New static variables.
9718         (clear_table): Initialize first_containing_mem.
9719         (discard_useless_values):  Compact the containing_mem list.
9720         (add_mem_for_addr): Add to the list.
9721         * cselib.h (cselib_val): Add next_containing_mem.
9722
9723 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
9724
9725         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
9726         instructions for e500.
9727
9728 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
9729
9730         * Makefile.in: Update.
9731         * c-cppbuiltin.c: Include tm_p.h.
9732
9733 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
9734
9735         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
9736
9737         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
9738         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
9739         (_Unwind_SetGR): Same.
9740         (_Unwind_GetGRPtr): New.
9741         (_Unwind_SetGRPtr): New.
9742         (uw_update_context_1): Use accesor functions instead of accessing
9743         context->reg[] directly.
9744         (uw_install_context_1): Same.
9745         (execute_cfa_program): Same.
9746         (__frame_state_for): Same.
9747
9748         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
9749         the synthetic register offset.
9750
9751         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
9752
9753 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
9754
9755         * config/cris/cris.md: Remove lingering EGCS reference.
9756         ("*extopqihi_side_biap"): For HI operation, match
9757         cris_additive_operand_extend_operator, not
9758         cris_operand_extend_operator.  Adjust condition.
9759         ("*extopqihi_side", "*extopqihi"): Ditto.
9760         ("*extopqisi_side_biap"): Correct operand numbers in condition.
9761         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
9762         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
9763         ("*extophisi_swap"): Ditto.
9764         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
9765         PLUS, not cris_operand_extend_operator.  Adjust condition and
9766         output template.
9767         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
9768         * config/cris/cris.h (PREDICATE_CODES): Add
9769         cris_additive_operand_extend_operator.
9770         * config/cris/cris.c (cris_additive_operand_extend_operator):
9771         New predicate.
9772
9773 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
9774
9775         * df.c (read_modify_subreg_p): Change from static to global.
9776         * df.h (read_modify_subreg_p): Add prototype.
9777         * sched-deps.c (sched_analyze_1): Generate true dependency for
9778         strict_low_part, certain subregs and zero/sign_extract.
9779
9780 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
9781
9782         * Makefile.in: Update.
9783         * c-common.c: Don't include real.h or except.h.
9784         (REGISTER_PREFIX): Remove.
9785         (builtin_define_std, builtin_define_with_value,
9786         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
9787         builtin_define_type_max, builtin_define_type_precision,
9788         builtin_define_float_constants): Move to c-cppbuiltin.c.
9789         (c_stddef_cpp_builtins): New.
9790         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
9791         * c-cppbuiltin.c: New, extracted from c-common.c.
9792         (define__GNUC__): New.
9793         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
9794         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
9795         (cpp_unique_options): Don't support no-gcc.
9796         (do_spec_1): Remove support of version specs.
9797         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
9798         * doc/passes.texi: Update.
9799         * doc/tm.texi: Update.
9800
9801 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
9802
9803         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
9804
9805 2003-03-10  Andrew Pinski  <apinski@apple.com>
9806
9807         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
9808         is on should not get here.
9809         (machopic_indirect_data_reference): If dynamic-no-pic is on just
9810         generate high/low parts of the address.
9811         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
9812         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
9813         symbol and labels with a new reg.  Dynamic-no-pic does not have a
9814         pic_offset_table_rtx.
9815         (machopic_select_section): Change references of flag_pic to
9816         MACHOPIC_INDIRECT.
9817         (machopic_asm_out_destructor): Likewise.
9818         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
9819         reference of flag_pic to MACHOPIC_INDIRECT.
9820         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
9821         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
9822         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
9823         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
9824         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
9825         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
9826         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
9827         (TARGET_DYNAMIC_NO_PIC): Define.
9828         (SUBTARGET_SWITCHES): Define, have sub-target switches for
9829         dynamic-no-pic.
9830         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
9831         rs6000_override_options to here. Dynamic-no-pic overrides
9832         pic.
9833         (CC1_SPEC): Change from not static then pic to not static and not
9834         dynamic-no-pic then pic.
9835         * config/rs6000/rs6000.c (rs6000_override_options): Move the
9836         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
9837         (rs6000_legitimize_reload_address): Add case for loading floating in
9838         dynamic-no-pic.
9839         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
9840         of flag_pic to MACHOPIC_INDIRECT.
9841         (secondary_reload_class): Conditional change the reference of
9842         flag_pic to MACHOPIC_INDIRECT.
9843         (rs6000_output_mi_thunk): Change reference of flag_pic to
9844         MACHOPIC_INDIRECT.
9845         (output_profile_hook): Likewise.
9846         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
9847         * config/rs6000/rs6000.md (movdf_low): Add the case for
9848         MACHO_DYNAMIC_NO_PIC_P.
9849         (call): Change references for flag_pic in TARGET_MACHO to
9850         MACHOPIC_INDIRECT.
9851         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
9852         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
9853         * doc/invoke.texi (-mdynamic-no-pic): Document.
9854
9855 2003-03-10  Devang Patel  <dpatel@apple.com>
9856
9857         PR c++/9394
9858         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
9859         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
9860         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
9861         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
9862         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
9863         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
9864
9865 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
9866
9867         PR optimization/7189
9868         * toplev.c (rest_of_compilation):  Move
9869         check_function_return_warnings up to just after
9870         delete_unreachable_blocks.
9871
9872 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
9873
9874         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
9875         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
9876         Declare.
9877         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
9878         for reg rename optimization to avoid using Z and Y registers.
9879
9880 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
9881
9882         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
9883         when adding to X and Y since leax/leay are fast.
9884         ("*addhi3"): Accept 'I' constraint when adding to address register.
9885         ("rotlhi3"): Operand 1 must be a register_operand.
9886         (peephole2): New peephole to optimize some adds.
9887         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
9888         to represent -2 .. 2 small integer range.
9889
9890 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
9891
9892         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
9893         each 16-bit rotation.
9894
9895 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
9896
9897         * c-opts.c (add_prefixed_path): Don't use concat.  When
9898         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
9899         cpp_GCC_INCLUDE_DIR_len characters.
9900
9901 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
9902
9903         * testsuite/gcc.dg/altivec-9.c: New file.
9904
9905         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
9906         (rs6000_emit_prologue): Use rs6000_frame_related instead.
9907
9908 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
9909
9910         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
9911         vectors.
9912         (__ev_convert_u64): Remove macro.  Define as inline.
9913         (__ev_convert_s64): Same.
9914
9915 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
9916
9917         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
9918         (rs6000_stack_t): Add spe_64bit_regs_used.
9919
9920         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
9921         spe_64bit_regs_used, and use it to determine the size of the
9922         frame.
9923         (spe_func_has_64bit_regs_p): New.
9924         (spe_synthesize_frame_save): New.
9925         (rs6000_frame_related): Handle SPE synthetic registers.
9926         (rs6000_emit_prologue): Only save in 64-bits if the function used
9927         any registers in 64-bit mode.
9928         (rs6000_emit_epilogue): Same, but for restore.
9929
9930 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
9931
9932         * arm.h (enum floating_point_type): Delete.  Replace with...
9933         (enum fputype): ... new.
9934         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
9935         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
9936         * arm.md (attr fpu): Reworked for new underlying enum values.
9937         * arm.c (arm_fpu_arch): Now enum fputype.
9938         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
9939         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
9940         Update uses of arm_fpu_arch and arm_fpu_tune.
9941
9942 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
9943
9944         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
9945         (try_crossjump_to_edge): Replace refereces to one jump table by
9946         references to identical jump table.
9947         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
9948         (replace_label): Moved to rtlanal.c.
9949         (struct rtx_pair): Moved to rtl.h.
9950         * rtl.h (struct rtx_pair): Moved from loop.c.
9951         (replace_label): New extern function.
9952         (subrtx_p): New extern function.
9953         (tablejump_p): New extern function.
9954         * rtlanal.c (replace_label): Moved from loop.c.
9955         (subrtx_p_1): New static function.
9956         (subrtx_p): New function.
9957         (tablejump_p): New function.
9958
9959 2003-03-10  Jan Hubicka  <jh@suse.cz>
9960
9961         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
9962
9963         * cfgcleanup.c (merge_blocks): Return where to iterate next.
9964         (try_optimize_cfg): Use return value of merge_blocks
9965
9966 2003-03-10  Michael Matz  <matz@suse.de>
9967
9968         * cfg.c (unchecked_make_edge): New.
9969         (cached_make_edge): Use it.
9970         * basic-block.h (unchecked_make_edge): Declare.
9971         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
9972
9973 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
9974
9975         * fpa.md: New file.  Move all patterns relating to FPA co-processor
9976         to here...
9977         * arm.md: ... from here.
9978         (cirrus.md, fpa.md): Include at end of description.
9979         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
9980         (pic_load_addr_based): Remove register constraint from expander.
9981         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
9982         (sordered, sungt, sunle, sunge, sunlt): Likewise.
9983         (eh_epilogue, tablejump): Likewise.
9984
9985 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9986
9987         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
9988         on operands if it has a PLACEHOLDER_EXPR.
9989
9990 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
9991             Mostafa Hagog
9992
9993         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
9994         condition.
9995
9996 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
9997
9998         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
9999         * config/ip2k/ip2k.h: Similarly.
10000         * config/m32r/m32r.h: Similarly.
10001         * config/m68hc11/m68hc11.h: Similarly.
10002         * config/mn10200/mn10200.h: Similarly.
10003         * config/mn10300/mn10300.h: Similarly.
10004         * config/pdp11/pdp11.h: Similarly.
10005         * config/v850/v850.h: Similarly.
10006         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
10007         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
10008         * config/mips/iris3.h: Remove #if 0 block.
10009
10010 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10011             Joern Rennecke <joern.rennecke@superh.com>
10012
10013         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
10014         pending argument upon return from handle_braces here.
10015         (do_spec_2): Instead handle it upon return from do_spec_1 here.
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  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10025
10026         * varasm.c (make_decl_one_only): Use declare_weak().
10027
10028 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10029
10030         PR middle-end/9986
10031         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
10032         after the common builtins.
10033         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
10034         * pa.c (TARGET_INIT_BUILTINS): Define.
10035         (pa_init_builtins): New function.
10036
10037         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
10038         space has been allocated for the outgoing arguments, set the arg
10039         pointer for a call emitted after virtuals have been instantiated
10040         using the stack pointer offset, otherwise abort.
10041
10042 2003-03-09  DJ Delorie  <dj@redhat.com>
10043
10044         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
10045
10046 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
10047
10048         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
10049         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
10050         conversion to integer.
10051         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
10052
10053 2003-03-09  Roger Sayle  <roger@eyesopen.com>
10054
10055         * builtins.def: Fix typo and improve grammar.
10056         * loop-unroll.c (decide_peel_completely): Tidy log message.
10057
10058 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
10059
10060         * config/h8300/h8300.md (*tstsi_upper_bit): New.
10061         (*iorsi3_e2f): Likewise.
10062
10063 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10064
10065         * config/h8300/h8300.c (h8300_and_costs): Return the number of
10066         assembly instructions needed.
10067         (h8300_shift_costs): Likewise.
10068
10069 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
10070
10071         * config/cris/aout.h (ENDFILE_SPEC): Undef.
10072
10073         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
10074         moves from here ...
10075         * expr.c (emit_move_insn_1): ... to here.
10076
10077         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
10078         (TARGET_OS_CPP_BUILTINS): New macro.
10079         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
10080         (TARGET_OS_CPP_BUILTINS): New macro.
10081         (CPP_PREDEFINES): Don't define.  Move old definitions and...
10082         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
10083         (TARGET_CPU_CPP_BUILTINS): New macro.
10084         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
10085         definitions and the optional __PIC__, __pic__ and
10086         __NO_UNDERSCORES__ definitions to...
10087         (TARGET_OS_CPP_BUILTINS): New macro.
10088
10089         * flags.h (flag_leading_underscore): Declare.
10090
10091         * c-opts.c (c_common_post_options): On fopen failure, return
10092         false, not NULL.
10093
10094 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10095
10096         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
10097         config.h.
10098         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
10099         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
10100
10101 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10102
10103         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
10104         CPP_PREDEFINES.
10105         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
10106         CPP_PREDEFINES.
10107
10108 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10109
10110         * c-common.h (c_common_init, c_common_post_options): Update.
10111         * c-objc-common.c (c_objc_common_init): Update for new prototype.
10112         * c-opts.c (saved_lineno): New.
10113         (c_common_post_options, c_common_init): Update prototypes,
10114         move call to cpp_read_main_file from latter to former.
10115         * c-tree.h (c_ojbc_common_init): Update.
10116         * langhooks-def.h (lhd_post_options): New.
10117         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
10118         * langhooks.c (lhd_post_options): New.
10119         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
10120         * toplev.c (no_backend): New.
10121         (process_options): Call post_options hook and set main_input_filename
10122         and input_filename here.
10123         (lang_dependent_init, do_compile): post_options hook moved to
10124         process_options.
10125         * objc/objc-act.c (objc_init): Update prototype.
10126         * objc/objc-act.h (objc_init): Update prototype.
10127
10128 2003-03-08  Roger Sayle  <roger@eyesopen.com>
10129
10130         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
10131         a complex or vector type, using a load in the original mode.
10132
10133 2003-03-08  Jan Hubicka  <jh@suse.cz>
10134
10135         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
10136         * gt-cgraph.h: New GC file.
10137         * cgraph.c (known_fns): New static variable.
10138         (cgraph_node): Add the decl into varray.
10139
10140 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10141
10142         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
10143
10144 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
10145
10146         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
10147         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
10148         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
10149         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
10150         All callers changed.
10151         * arm.md, arm.h, arm-protos.h: Updated.
10152
10153         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
10154         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
10155         * arm.c (arm_regno_class, f_register_operand): Updated.
10156
10157 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
10158
10159         * config/cris/cris.h: Remove EGCS references.
10160         (CPP_SPEC): Remove "-$".
10161         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
10162
10163 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10164
10165         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
10166         preference to CPP_PREDEFINES.
10167
10168 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
10169
10170         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
10171
10172 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
10173
10174         * config/h8300/h8300.md (*extzv_16_8): New.
10175
10176 2003-03-08  Jan Hubicka  <jh@suse.cz>
10177
10178         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
10179         * cgraph.h: (cgraph_local_info): Add can_inline_once
10180         (cgraph_global_info): Add inline_once.
10181         (cgraph_node): Add previous.
10182         (cgraph_remove_node): New.
10183         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
10184         function.
10185         (cgraph_optimize): Call it.
10186         (cgraph_finalize_function):  Set inlinable flags.
10187         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
10188         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
10189         (cgraph_expand_function): Likewise.
10190         * cgraph.c
10191         (cgraph_node): Put nodes into doubly linked chain.
10192         (cgraph_remove_node): New function.
10193         * flags.h (flag_inline_functions_called_once): Declare.
10194         * tree-inline.c: Include cgraph.h
10195         (inlinable_functions_p): Add extra argument to bypass limits.
10196         (expand_call_inline):  Obey cgraph flag.
10197         * tree-inline.h (tree_inlinable_function_p): Update prototype.
10198
10199 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10200
10201         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
10202         irreducible loops.
10203
10204         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
10205         loops info correctly.
10206
10207 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
10208
10209         PR middle-end/7796
10210         * unroll.c (calculate_giv_inc): Handle constants being
10211         loaded with LSHIFTRT.
10212
10213 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
10214
10215         * config/rs6000/rs6000.c (processor_target_table): Do not disable
10216         GP optional instructions on Power3, Power4, 620, and 630.
10217
10218 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
10219
10220         * calls.c: Fix comment formatting.
10221         * cfgloopanal.c: Likewise.
10222         * cfgloopmanip.c: Likewise.
10223         * combine.c: Likewise.
10224         * dwarf2out.c: Likewise.
10225         * ggc-common.c: Likewise.
10226         * langhooks.c: Likewise.
10227         * loop-unroll.c: Likewise.
10228         * loop.c: Likewise.
10229         * ra-build.c: Likewise.
10230         * sbitmap.c: Likewise.
10231         * toplev.c: Likewise.
10232
10233 2003-03-07  James E Wilson  <wilson@tuliptree.org>
10234
10235         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
10236
10237 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
10238
10239         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
10240         support -no-integrated-cpp.
10241
10242         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
10243         than langhooks.name.
10244
10245 2003-03-07  Michael Matz  <matz@suse.de>
10246
10247         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
10248         (DF_FOR_REGALLOC): New.
10249         * df.c (df_ref_record): Set DF_REF_STRIPPED.
10250         (read_modify_subreg_p): Simplify.
10251         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
10252         Use DF_FOR_REGALLOC.
10253         * ra.h (struct web): New member subreg_stripped.
10254         (invalid_mode_change_regs): Declare.
10255         * ra.c (invalid_mode_change_regs): New.
10256         (init_ra): Initialize it.
10257         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
10258         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
10259         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
10260         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
10261         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
10262
10263 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
10264
10265         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
10266         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
10267         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
10268         machine description file from ...
10269         * cirrus.md: ... here.
10270
10271 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10272
10273         * config/h8300/h8300.md (a peephole2): Don't use
10274         reg_overlap_mentioned_p.
10275
10276 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
10277
10278         * c-pch.c: Include langhooks.h.
10279         (IDENT_LENGTH): New.
10280         (get_ident): New.
10281         (pch_ident): Delete.
10282         (pch_init): Use get_ident, IDENT_LENGTH.
10283         (c_common_valid_pch): Likewise.  Also, use actual language
10284         in warning message.
10285         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
10286
10287         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
10288         c-parse.in.
10289         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
10290         gt-objc-objc-act.h.
10291         (gt-objc-objc-act.h): New rule.
10292         * objc/lang-specs.h: Support PCH.
10293         * objc/objc-act.c: Include gt-objc-objc-act.h.
10294         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
10295         (build_selector_reference_decl): Move idx out, mark for PCH.
10296         (build_class_reference_decl): Likewise.
10297         (build_objc_string_decl): Move *_idx out, mark for PCH.
10298         (build_tmp_function_decl): Move xxx out, mark for PCH.
10299
10300 2003-03-06  Dale Johannesen  <dalej@apple.com>
10301
10302         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
10303         global functions for inlining on Darwin.
10304
10305 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
10306
10307         * haifa-sched.c (schedule_block): Don't call reorder when sorting
10308         is prohibited.
10309
10310 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
10311
10312         * Makefile.in (c-ppoutput.o): Update.
10313         * c-common.h (init_pp_output): New.
10314         (preprocess_file): Update.
10315         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
10316         Register builtins.
10317         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
10318         Make call to cpp_read_main_file common to whether preprocessing
10319         or not.  Don't register builtins.
10320         * c-ppoutput.c: Include c-pragma.h.
10321         (setup_callbacks): Rename init_pp_output.
10322         (preprocess_file): No longer setup callbacks or call
10323         cpp_read_main_file.
10324         * cpphash.h (_cpp_init_mbchar): New.
10325         * cppinit.c (init_library): Call _cpp_init_mbchar.
10326         * cpplex.c (_cpp_init_mbchar): New.
10327
10328 2003-03-06  Roger Sayle  <roger@eyesopen.com>
10329
10330         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
10331         MEM, try loading the MEM into a register and taking the low-part
10332         of that, to help CSE see the use of the MEM in its true mode.
10333
10334 2003-03-05  Tom Tromey  <tromey@redhat.com>
10335
10336         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
10337         Define.
10338
10339 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
10340
10341         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
10342         operand 2.
10343         ("*ineqbranchsi"): Likewise.
10344
10345 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
10346
10347         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
10348         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
10349         register store followed by a stack increment.
10350
10351 2003-03-05  Chris Moller  <cmoller@redhat.com>
10352
10353         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
10354         to inhibit saving CARRY_REGS.
10355
10356         * config/stormy16/stormy16.c (xs_hi_general_operand):
10357         added predicate to detect and error-out on out-of-range
10358         const_ints for movhi.
10359         * config/stormy16/stormy16.md (movhi): use
10360         xs_hi_general_operand.
10361
10362         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
10363         added a check for local vbl size overflow.
10364         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
10365         added predicate to detect and error-out on out-of-range
10366         const_ints for addhi and subhi.
10367         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
10368         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
10369
10370         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10371         add a term to accept PRE_MODIFY addresses.
10372         * config/stormy16/stormy16.c (xstormy16_expand_move):
10373         add code to expand PRE_MODIFY addresses to an add followed
10374         by a move.
10375
10376 2003-03-06  Jason Merrill  <jason@redhat.com>
10377
10378         * tree-inline.c (inlinable_function_p): Revert earlier change
10379         pending investigation.
10380
10381 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
10382
10383         * config/h8300/h8300.md (a new peephole2): New.
10384
10385 2003-03-06  Jan Hubicka  <jh@suse.cz>
10386
10387         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
10388
10389 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10390
10391         * dwarf2out.c (size_of_die): Compute size of external reference to
10392         die correctly.
10393
10394 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
10395
10396         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
10397         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
10398         expanders.
10399
10400 2003-03-05  Roger Sayle  <roger@eyesopen.com>
10401
10402         * expr.h (lang_expand_expr): Delete obsolete prototype.
10403
10404 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10405
10406         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
10407
10408 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10409
10410         * config/h8300/h8300.md (a peephole2): Generalize to
10411         accept a memory operand.
10412
10413 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
10414
10415         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
10416         * config/alpha/alpha.c (print_operand, case '+'): New.
10417         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
10418         (call_value_osf_1_noreturn): Likewise.
10419
10420 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10421
10422         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
10423         (expand_end_bindings): Likewise.
10424
10425 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10426
10427         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
10428         (epilogue): Don't generate return_external_pic when emitting PA 2.0
10429         code.
10430
10431 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
10432
10433         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
10434
10435         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
10436
10437         * hooks.c (hook_rtx_rtx_null): New.
10438
10439         * hooks.h (hook_rtx_rtx_null): Protoize.
10440
10441         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
10442         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
10443
10444         * target.h (struct gcc_target): Add dwarf_register_span.
10445
10446         * dwarf2out.c (multiple_reg_loc_descriptor): New.
10447         (one_reg_loc_descriptor): New.
10448         (reg_loc_descriptor): Add support for values that span more than
10449         one register.
10450
10451 2003-03-05  Jan Hubicka  <jh@suse.cz>
10452
10453         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
10454         * alias.c:  Include cgraph.h
10455         (mark_constant_function): Use cgraph_rtl_info.
10456         * calls.c:  Include cgraph.h
10457         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
10458         calls.
10459         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
10460         * cgraph.c (cgraph_rtl_info): New function.
10461         * cgraph.h (cgraph_rtl_info): Declare
10462         (cgraph_rtl_info): Likewise.
10463         * function.h (struct function): Add recursive_call_emit.
10464         * toplev.c: Include cgraph.h.
10465         (rest_of_compilation): Set preferred_incoming_stack_boundary.
10466
10467 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
10468
10469         * config/h8300/h8300.c (output_simode_bld): Clear the
10470         destination first if possible.
10471         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
10472         alternative.
10473         (extzv_1_r_inv_h8300hs): Likewise.
10474
10475 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10476
10477         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
10478         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
10479         * cfgloop.c (flow_loop_free): Made global.
10480         (establish_preds): New static function.
10481         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
10482         (get_loop_exit_edges): New.
10483         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
10484         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
10485         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
10486         loops.
10487         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
10488         removability of an edge.
10489         (fix_irreducible_loops): New static function.
10490         (find_path, remove_path): Add ability to remove enclosing loops.
10491         (unloop): New.
10492         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
10493         flags.
10494         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
10495         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
10496         not neccessary.
10497         (decide_peel_completely, peel_loops_completely): Allow complete peeling
10498         of non-duplicable once rolling loops.
10499         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
10500
10501 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
10502
10503         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
10504         for align_jumps is 4.
10505
10506         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
10507         use GENERAL_REGS.
10508
10509 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
10510
10511         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
10512         according to va_arg type.
10513         (EXPAND_BUILTIN_VA_ARG): Remove.
10514         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
10515         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
10516
10517 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
10518
10519         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
10520         else clauses.
10521
10522 2003-03-05  Michael Matz  <matz@suse.de>
10523
10524         * i386/i386.c (ix86_save_reg): Also test
10525         current_function_uses_const_pool.
10526
10527 2003-03-05  Michael Matz  <matz@suse.de>
10528
10529         * unwind.h: Add the GPL exception.
10530         * Makefile.in (USER_H): Add unwind.h.
10531
10532 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10533
10534         PR c/9799
10535         * c-typeck.c (push_init_level): Add sanity check.
10536
10537 2003-03-05  Jan Hubicka  <jh@suse.cz>
10538
10539         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
10540         RTL inlining is done.
10541
10542         * cgraphunit.c (cgraph_mark_local_functions): New local function.
10543         (cgraph_optimize): Mark local functions.
10544         * i386-protos.h (init_cumulative_args): Update prototype.
10545         * i386.c (init_cumulative_args): Use register passing convention for
10546         local functions.
10547
10548         * cgraph.c (cgraph_global_info_ready): New global variable
10549         (cgraph_local_info, cgraph_global_info): New functions.
10550         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
10551         structures.
10552         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
10553         Declare.
10554         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
10555         (cgraph_mark_functions_to_output): Use inline_many.
10556         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
10557         (cgraph_expand_functions): Expand inline functions last.
10558         (cgraph_optimize): Do not emit uneeded functions.
10559
10560 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
10561
10562         * expr.c (convert_modes): Check for legal hard register.
10563
10564 2003-03-04  Tom Tromey  <tromey@redhat.com>
10565
10566         * doc/sourcebuild.texi (Front End Directory): Document tags.
10567         * configure: Rebuilt.
10568         * configure.in (target_list): Added tags.
10569         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
10570         TAGS files by reference.
10571         * objc/Make-lang.in (objc.tags): New target.
10572
10573 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10574
10575         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
10576         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
10577         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
10578         gcov_read_string, gcov_write_length): Modified to enable reading/
10579         writing of whole .da file just once.
10580         (da_file_open, da_file_close, da_file_eof, da_file_error,
10581         da_file_position, da_file_seek, da_file_write, da_file_read): New
10582         functions.
10583         (actual_da_file, actual_da_file_position, actual_da_file_length,
10584         actual_da_file_buffer, actual_da_file_buffer_size): New static
10585         functions.
10586         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
10587         just once.
10588
10589
10590 2003-03-04  Andreas Schwab  <schwab@suse.de>
10591
10592         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
10593         offset without frame pointer.
10594
10595 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
10596
10597         * expr.c (expand_expr): Call promote_mode to set unsignedp.
10598
10599 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
10600
10601         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
10602         * configure: Regenerated.
10603         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
10604
10605 2003-03-04  Andreas Jaeger  <aj@suse.de>
10606
10607         * configure.in: Check for <memcheck.h>.
10608         * configure: Regenerated.
10609
10610         * config.in: Define HAVE_MEMCHECK_H.
10611
10612         * ggc-common.c: Use <memcheck.h> if available instead of
10613         <valgrind.h>.
10614         * ggc-page.c: Likewise.
10615         * cppfiles.c: Likewise.
10616
10617 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
10618
10619         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
10620
10621 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10622
10623         PR c/9262
10624         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
10625         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
10626
10627 2003-03-04  Jan Hubicka  <jh@suse.cz>
10628
10629         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
10630         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
10631         for -O3.
10632
10633 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
10634
10635         * configure.in: Delete three unused variables.  Move a variable
10636         definition closer to its use.  Simplify use_collect2 logic.  Start to
10637         organize.  Simplify tests for in-tree gas and ld.
10638         * configure: Regenerate.
10639
10640 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
10641
10642         * Makefile.in: Update.
10643         * c-common.c (flag_no_line_commands, flag_no_output,
10644         flag_dump_macros, flag_dump_includes): New.
10645         * c-common.h (flag_no_line_commands, flag_no_output,
10646         flag_dump_macros, flag_dump_includes, preprocess_file): New.
10647         (init_c_lex): Update prototype.
10648         * c-lex.c (init_c_lex): Update prototype; move some code to
10649         c_common_init.
10650         * c-opts.c (preprocess_file): Subsume into c_common_init.
10651         (c_common_decode_option): Update flags.
10652         (c_common_init): Move code from preprocess_file and init_c_lex.
10653         (sanitize_cpp_opts): Update.
10654         * c-ppoutput.c: New, cppmain.c almost verbatim.
10655         * cpphash.h (struct printer): Remove.
10656         (struct cpp_reader): Remove print.
10657         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
10658         cpp_preprocess_file): Remove.
10659         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
10660         and dump_includes.
10661         * cppmain.c: Remove.
10662         * doc/passes.texi: Update.
10663
10664 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10665
10666         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
10667         (assign_stack_local_1): Perform overall stack alignment only when
10668         STACK_ALIGNMENT_NEEDED is non-zero.
10669         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
10670
10671         * pa.c (compute_frame_size): Rename fsize to size.  Account for
10672         alignment to a word boundary before general register save block.  Only
10673         account for double-word alignment before floating point register save
10674         block if one or more are saved.  Don't allocate space for %r3 when
10675         frame pointer is needed.
10676         (hppa_expand_prologue): Include alignment to word boundary in local
10677         frame size.
10678         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
10679         (STACK_ALIGNMENT_NEEDED): Define.
10680
10681 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
10682
10683         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
10684         global register variables.
10685
10686 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
10687
10688         * reload.c (reload_adjust_reg_for_mode): New function.
10689         (subst_reloads): Call it.
10690         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
10691         * reload.h (reload_adjust_reg_for_mode): Declare.
10692         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
10693         Call it.
10694
10695 2003-03-03  James E Wilson  <wilson@tuliptree.org>
10696
10697         * optabs.c (add_equal_note): Delete SUBREG_REG use.
10698         Fixes PR c/7872.
10699
10700 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10701
10702         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
10703         (*ixorsi3_lshiftrt_16): New.
10704         (*iorsi3_ashift_16): Remove.
10705
10706 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10707
10708         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
10709         pattern.
10710
10711 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
10712
10713         * doc/install.texi (Specific): Update entry for powerpc-darwin.
10714
10715 2003-03-03  Richard Henderson  <rth@redhat.com>
10716
10717         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
10718
10719 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
10720
10721         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
10722         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
10723         (rs6000_variable_issue): Do not return negative value.
10724         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
10725         scheduling pass.
10726
10727 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10728
10729         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
10730         prune_unused_types calls.
10731
10732 2003-03-03  Jason Merrill  <jason@redhat.com>
10733
10734         * tree-inline.c (find_builtin_longjmp_call): Save and restore
10735         lineno and input_filename.
10736         (find_alloca_call): Likewise.
10737         (inlinable_function_p): Run the langhook earlier.
10738
10739         * calls.c (compute_argument_addresses): Give the new MEMs a
10740         minimum alignment of PARM_BOUNDARY.
10741
10742 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
10743
10744         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
10745         subtarget_asm_isa_spec.
10746         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
10747         (ASM_SPEC): Define as SH_ASM_SPEC.
10748         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
10749         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
10750         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
10751         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
10752
10753         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
10754         and align_jumps if not set.
10755         Force align_jumps to be at least 2.
10756         When relaxing, force align_functions to be at least the maximum of
10757         align_loops, align_jumps and 4.
10758         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
10759         (sh_loop_align): Honour align_loops_log.
10760
10761         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
10762         to check for indirect_jump_scratch.
10763         (indirect_jump_scratch): Add second set.
10764         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
10765         when looking for indirect_jump_scratch.
10766         Extract scratch register taking new structure of indirect_jump_scratch
10767         into account.
10768         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
10769
10770 2003-03-03  Jan Hubicka  <jh@suse.cz>
10771
10772         * calls.c (rtx_for_function_call): Take the address as an argument
10773         (expand_call): Do not modify the expression.
10774
10775         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
10776         optimizing.
10777
10778 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10779
10780         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
10781         TARGET_H8300H and TARGET_H8300S.
10782
10783 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10784
10785         * config/h8300/h8300.md (a peephole2): New.
10786
10787 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10788
10789         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
10790         operands[0] and operands[1] are different.
10791
10792 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10793
10794         * reload1.c (reload_cse_move2add): Remove variable success.
10795
10796 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10797
10798         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
10799         warnings.
10800
10801 2003-03-02  Richard Henderson  <rth@redhat.com>
10802
10803         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
10804         * config.in, configure: Rebuild.
10805         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
10806         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
10807         paired ldtoffx and ldxmov annotations.
10808         (load_symptr_internal1): Remove.
10809         (load_symptr_high, load_symptr_low): New.
10810
10811 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
10812
10813         * c-incpath.c (add_path): Fix sysp assignment.
10814
10815 2003-03-02  Kurt Garloff  <garloff@suse.de>
10816
10817         * params.def: Introduce parameter max-inline-insns-rtl for
10818         a separate limit for the RTL inliner.
10819         * params.h: Likewise.
10820         * integrate.c (function_cannot_inline_p): Use it.
10821         * toplev.c (decode_f_option): Set multiple parameters
10822         controlling inlining with -finline-limit.
10823         * params.def: Fix orthographic and typographic errors.
10824         * doc/invoke.texi: Document parameters controlling inlining
10825         and the way -finline-limit sets multiple of them.
10826
10827         * tree.h (struct tree_decl): Introduce inlined_function_flag,
10828         recording whether the function became eligible for inlining
10829         by a compiler flag rather than the declaration.
10830         Provide DID_INLINE_FUNC macro to access it.
10831         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
10832         * cp/decl.c (grokfndecl): Likewise.
10833         * toplev.c (rest_of_compilation): Likewise.
10834         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
10835         * print-tree.c (print_node): Report it.
10836         * params.def: Introduce new max-inline-insns-auto limit.
10837         * params.h: Likewise.
10838         * tree-inline.c (inlinable_function_p): Apply it to functions
10839         with DID_INLINE_FUNC set.
10840         * toplev.c (decode_f_option): Initialize it from -finline-limit
10841         value.
10842         * doc/invoke.texi: Document new parameter.
10843
10844 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
10845
10846         * fix-header.c (read_scan_file): Don't reference simplify_path.
10847
10848 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10849
10850         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
10851         min/max instructions by default as may result in reload errors.
10852
10853 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10854
10855         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
10856         avoid reload problems; define split for it.
10857
10858 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10859
10860         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
10861         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
10862         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
10863         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
10864         rotatert and rotate.
10865         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
10866         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
10867         ("*rotrhi3_addr"): New split for shift insns on address register.
10868         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
10869         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
10870         (___rotrhi3): Likewise.
10871         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
10872
10873 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
10874
10875         * toplev.c (aux_base_name): Moved from toplev.h.
10876         (filename): Constify.
10877         (lang_dependent_init): Don't duplicate name.
10878         (process_options): Set aux_base_name here, not...
10879         (do_compile): ...here.  Change protoype.
10880         (toplev_main): Move some code from do_compile.
10881         * toplev.h: Remove aux_base_name.
10882
10883 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10884
10885         * config/h8300/h8300-protos.h: Add a prototype for
10886         iorxor_operator.
10887         * config/h8300/h8300.c (print_operand): Handle 'c'.
10888         (iorxor_operator): New.
10889         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
10890         * config/h8300/h8300.md (*iorhi3_zext): Remove.
10891         (*iorsi3_zexthi): Likewise.
10892         (*iorsi3_zextsi): Likewise.
10893         (*xorhi3_zextqi): Likewise.
10894         (*xorsi3_zexthi): Likewise.
10895         (*xorsi3_zextsi): Likewise.
10896         (*ixorhi3_zext): New.
10897         (*ixorsi3_zext_qi): Likewise.
10898         (*ixorsi3_zext_hi): Likewise.
10899
10900 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
10901
10902         * c-incpath.c (remove_component_p, simplify_path): Move back to
10903         cppfiles.c.
10904         (remove_duplicates): Use cpp_simplify_path.
10905         * c-incpath.h (simplify_path): Remove.
10906         * c-lex.c: Don't include c-incpath.h.
10907         (init_c_lex): Remove simplify_path.
10908         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
10909         (find_or_create_entry, validate_pch): Revert.
10910
10911 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
10912
10913         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
10914           an external cpp during compilation.
10915         (option_map): Likewise.
10916         * objc/lang-specs.h (default_compilers): Similarly.
10917         * doc/invoke.texi: Document -no-integrated-cpp flag.
10918
10919 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10920
10921         * config/h8300/h8300.md (zero_extendqisi2): Change to an
10922         expander.
10923         (*zero_extendqisi2_h8300): New.
10924         (*zero_extendqisi2_h8300hs): New.
10925         (two splitters): New.
10926
10927 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10928
10929         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
10930
10931 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10932
10933         * config/h8300/h8300.md (a peephole2): Remove dead code.
10934
10935 2003-03-01  Roger Sayle  <roger@eyesopen.com>
10936
10937         PR c++/9367
10938         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
10939         (BT_FN_INT_CONST_STRING_VALIST_ARG,
10940         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
10941         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
10942         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
10943         BT_FN_INT_STRING_CONST_STRING_VAR,
10944         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
10945         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
10946         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
10947         ATTR_NONNULL_3): Also include the nothrow attribute.
10948         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
10949         vsnprintf, vscanf, vsscanf): Don't define attributes here.
10950         * builtins.def (putchar, puts): Make full C89 built-ins.
10951         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
10952         vsscanf, vsnprintf, vsprintf): New built-ins.
10953         * c-common.c (c_common_nodes_and_builtins): Handle new macro
10954         DEF_FUNCTION_TYPE_VAR_3.
10955
10956         * doc/extend.texi: Document these new built-in functions.
10957
10958 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10959
10960         * config/h8300/h8300.md (a peephole2): New.
10961
10962 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
10963
10964         * predict.c (estimate_bb_frequencies): Correctly set
10965         real_values_initialized after initialization.
10966
10967 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
10968
10969         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
10970         cppinit.o, cppdefault.o, fix-header): Update.
10971         * c-incpath.c: New file.
10972         * c-incpath.h: New file.
10973         * c-lex.c: Include c-incpath.h.
10974         (init_c_lex): Register path simplifier.
10975         * c-opts.c: Include cppdefault.h and c-incpath.h.
10976         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
10977         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
10978         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
10979         (missing_arg, c_common_decode_option): Handle them.
10980         (c_common_post_options): Register include chains.
10981         (print_help): Update.
10982         * cppdefault.h (struct default include): Update.
10983         Move some macros to ...
10984         * cppdefault.c: ... here.
10985         (cpp_include_defaults): Add extra field add_sysroot.
10986         * cppfiles.c (include_file, search_from, find_or_create_entry,
10987         cpp_included, find_include_file, remap_filename): Update for
10988         renaming of search_path to cpp_path, and of the chain headers.
10989         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
10990         * cpphash.h (struct search_path): Move to cpplib.h.
10991         (struct cpp_buffer, struct cpp_reader): Update.
10992         (_cpp_simplify_pathname): Remove.
10993         * cppinit.c: Don't include prefix.h and cppdefault.h.
10994         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
10995         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
10996         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
10997         no_pth, cpp_handle_options): Remove.
10998         (struct pending_option): Remove chain members.
10999         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
11000         cpp_handle_option): Update.
11001         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
11002         (struct cpp_options): Remove quote_include, bracket_include,
11003         include_prefix, include_prefix_len, verbose, ignore_srcdir,
11004         no_standard_includes, no_standard_cplusplus_includes.
11005         (struct cpp_callbacks): Add simplify_path.
11006         (cpp_handle_options): Remove.
11007         * fix-header.c: Include c-incpath.h.
11008         (read_scan_file): Update to use c-incpath functionality.
11009         * doc/passes.texi: Update.
11010
11011 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11012
11013         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
11014         satisfies EXTRA_CONSTRAINT 'U'.
11015
11016 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
11017
11018         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
11019         register.
11020         (*tst_extzv_memqi_1_n): Change to a splitter.
11021         (a peephole2): Update.
11022
11023 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
11024
11025         * predict.c (estimate_bb_frequencies): Initialize the sreal
11026         constants once per compilation.
11027
11028 2003-02-28  Richard Henderson  <rth@redhat.com>
11029
11030         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
11031
11032 2003-02-28  scott snyder  <snyder@fnal.gov>
11033
11034         * flags.h: Add flag_eliminate_unused_debug_types.
11035         * toplev.c: Add flag_eliminate_unused_debug_types.
11036         (f_options): Add -feliminate-unused-debug-types.
11037         * dwarf2out.c (struct file_table): Add emitted member.
11038         (splice_child_die): Fix the parent pointer for the child being
11039         spliced.
11040         (lookup_filename): Maintain file_table.emitted array.  Don't
11041         output .file directive here.
11042         (maybe_emit_file): (new)
11043         (init_file_table): Set up file_table.emitted.
11044         (dwarf2out_source_line): Use maybe_emit_file.
11045         (dwarf2out_start_source_file): Use maybe_emit_file.
11046         (dwarf2out_init): Use maybe_emit_file.
11047         (prune_unused_types_walk_attribs): (new)
11048         (prune_unused_types_mark): (new)
11049         (prune_unused_types_walk): (new)
11050         (prune_unused_types_prune): (new)
11051         (prune_unused_types): (new)
11052         (dwarf2out_finish): Call prune_unused_types if
11053         flag_eliminate_unused_debug_types is set.
11054         * doc/invoke.texi (Option Summary): Add
11055         -feliminate-unused-debug-types.
11056         (Debugging Options): Likewise.
11057
11058 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
11059
11060         * doc/invoke.texi: Change .pch to .gch.
11061         * cppfiles.c (open_file_pch): Likewise.
11062         * gcc.c (default_compilers): Likewise.
11063
11064 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
11065
11066         * floatlib.c: Remove.
11067
11068 2003-02-28  Jason Merrill  <jason@redhat.com>
11069
11070         * stor-layout.c (variable_size): Leave a "minus 1" outside the
11071         SAVE_EXPR.
11072
11073 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
11074
11075         * config/rs6000/power4.md: Add compare bypass.
11076
11077 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
11078
11079         * config/netbsd.h: Update copyright years.
11080         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
11081         -pthread is specified on the command line.
11082
11083 2003-02-28  Dale Johannesen <dalej@apple.com>
11084
11085         * loop.c (struct movable): Add insert_temp, shrink savemode.
11086         (scan_loop): Accept invariants that require copying; mark as
11087         insert_temp.
11088         (combine_movables): Don't combine insert_temp movables.
11089         (move_movables): Insert copies for insert_temp movables.
11090         Don't record the info based on regno for insert_temp's.
11091
11092 2003-02-28  Joel Sherrill <joel@OARcorp.com>
11093
11094         PR 9638/other
11095         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
11096         this constant defaults to 1.
11097
11098 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
11099
11100         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
11101
11102 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
11103
11104         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
11105         ARMv5e processor, not just for XScale.  Instructions are predicable.
11106         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
11107
11108 2003-02-28  Nick Clifton  <nickc@redhat.com>
11109
11110         * config/arm/arm.c (note_invalid_constants): Change parameter type
11111         from bool to int.
11112
11113 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
11114
11115         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
11116         test of bit 7.
11117         (*tst_extzv_memqi_1_n): Likewise.
11118         (a peephole2): New.
11119
11120 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
11121
11122         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
11123         #ifndef __mips16.
11124
11125 2003-02-28  Jan Hubicka  <jh@suse.cz>
11126
11127         * combine.c (gen_lowpart_for_combine): Update handling of
11128         subregs_of_mode
11129         * flow.c (life_analysis, mark_used_regs): Likewise.
11130         * regclass.c (subregs_of_mode): Turn into single bitmap.
11131         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
11132         dealing with subregs_of_mode
11133         * regs.h (subregs_of_mode): Update prototype.
11134
11135 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
11136
11137         * emit-rtl.c (set_reg_attrs_for_parm): New function.
11138         * rtl.h (set_reg_attrs_for_parm): New exported function.
11139         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
11140         set_reg_attrs_from_mem.
11141
11142 2003-02-27  Roger Sayle  <roger@eyesopen.com>
11143             Zack Weinberg <zack@codesourcery.com>
11144
11145         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
11146
11147 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
11148
11149         * reload1.c (sext_for_mode): Remove.
11150         (reload_cse_move2add): Use trunc_int_for_mode instead of
11151         sext_for_mode.
11152         (move2add_note_store): Likewise.
11153         Reset register information if we see a set in non-integer
11154         mode.
11155
11156 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
11157
11158         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
11159         option.
11160         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
11161         * config/rs6000/aix51.h: Same.
11162         * config/rs6000/aix52.h: Same.
11163         * config/rs6000/power4.md: Additional VMX bypasses.
11164
11165 2003-02-27   Geert Bosch <bosch@gnat.com>
11166
11167         * toplev.c (print_version): Add indentation for GGC heuristics and
11168         output after printing version information.
11169
11170 2003-02-27  James E Wilson  <wilson@tuliptree.org>
11171
11172         * combine.c (simplify_comparison): Require integral mode when
11173         permuting SUBREG with AND.
11174
11175 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
11176
11177         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
11178
11179 2003-02-27  Nick Clifton  <nickc@redhat.com>
11180
11181         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
11182         deleted when cirrus instructions were added.
11183
11184 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
11185
11186         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
11187         POSIX thread support by default.
11188
11189 2003-02-27  Roger Sayle  <roger@eyesopen.com>
11190
11191         * config/i386/cygwin.h: Don't include any other files directly.
11192         * config/i386/mingw32.h: Don't include cygwin.h directly.
11193         * config.gcc (cygwin, mingw32, uwin): Instead make these files
11194         explicit in the tm_files variable.
11195
11196 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
11197
11198         * config/rs6000/rs6000.md: Add TI constant splitter.
11199
11200 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
11201
11202         * builtins.c (purge_builtin_constant_p): Handle subreg of
11203         constant_p_rtx too.
11204
11205         * function.c (assign_stack_local_1): Truncate constant added to
11206         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
11207
11208 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
11209
11210         * config.gcc: Add power4 to PowerPC with_cpu list.
11211
11212 2003-02-26  Jan Hubicka  <jh@suse.cz>
11213
11214         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
11215
11216 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11217
11218         * gcov-dump.c (print_prefix): Fix signedness warning.
11219         * gcov-io.h (struct counter_section, struct counter_section_data): New.
11220         (struct function_info): n_arc_counts field removed, n_counter_sections,
11221         counter_sections fields added.
11222         (struct gcov_info): arc_counts, n_arc_counts fields removed,
11223         n_counter_sections, counter_sections fields added.
11224         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
11225         profile sections.
11226         * profile.h (MAX_COUNTER_SECTIONS): New.
11227         (struct section_info): New.
11228         (struct profile_info): count_instrumented_edges,
11229         count_edges_instrumented_now fields removed, n_sections, section_info
11230         fields added.
11231         (find_counters_section): Declare.
11232         * profile.c (struct function_list): count_edges field removed,
11233         n_counter_sections, counter_sections fields added.
11234         (set_purpose, label_for_tag, build_counter_section_fields,
11235         build_counter_section_value, build_counter_section_data_fields,
11236         build_counter_section_data_value, build_function_info_fields,
11237         build_function_info_value, build_gcov_info_fields,
11238         build_gcov_info_value): New static functions.
11239         (find_counters_section): New function.
11240         (instrument_edges, get_exec_counts, compute_branch_probabilities,
11241         branch_prob, create_profiler): Modified to support multiple profile
11242         sections.
11243
11244 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11245
11246         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
11247         is 8 * STACK_BOUNDARY.
11248         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
11249
11250 2003-02-26  Michael Matz  <matz@suse.de>
11251
11252         * ra-colorize.c (merge_moves): Fix list handling.
11253
11254 2003-02-26  Nick Clifton  <nickc@redhat.com>
11255
11256         * config/arm/arm.c (is_load_address): Rename to...
11257         (arm_memory_load_p) ... this and make it check for SUBREGs and
11258         constant loads that will be converted into loads from the
11259         minipool.
11260         (is_cirrus_insn): Rename to ...
11261         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
11262         of CIRRUS_NO with CIRRUS_NOT.
11263         (cirrus_reorg): Use renamed functions.
11264         (note_invalid_constants): Change from a void function to bool.
11265         Add an extra parameter, saying whether the fixups should be
11266         pushed.  Return true if fixups are needed.
11267         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
11268         of CIRRUS_NO with CIRRUS_NOT.
11269         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
11270         other floating point co-processors can also affect this.
11271         * config/arm/arm.md ("type" attribute): Add mav_farith and
11272         mav_dmult.  Replace references to "cirrus_type" attribute with
11273         "type".
11274         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
11275         ("cirrus_type" attribute): Delete - use "type" instead.
11276         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
11277         'normal'.
11278
11279 2003-02-25  Jan Hubicka  <jh@suse.cz>
11280
11281         * objc-act.c: Include cgraph.h
11282         (mark_referenced_methods): New function.
11283         (objc_init): Call it.
11284         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
11285
11286         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
11287         mode.
11288
11289         * optabs.c (expand_fix): Do not widen the input operand.
11290
11291         * expr.c (emit_group_store):  Fix crash when converting single
11292         register into complex register.
11293
11294         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
11295         * alias.c: Include timevar.h
11296         (init_alias_analysis):  Set timevar
11297         * jump.c: Include timevar.h
11298         (rebuild_jump_labels):  Set timevar
11299         * regcalss.c: Include timevar.h
11300         (reg_scan):  Set timevar
11301         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
11302
11303 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11304
11305         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
11306
11307         * Makefile.in (loop-unroll.o): New.
11308         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
11309         (unroll_and_peel_loops): Declare.
11310         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
11311         flag_old_unroll_loops.
11312         * loop.c (loop_invariant_p): Ditto.
11313         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
11314         flag_old_unroll_all_loops.
11315         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
11316         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
11317         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
11318         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
11319         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
11320         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
11321         PARAM_MAX_ONCE_PEELED_INSNS): New.
11322         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
11323         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
11324         instead of old one.
11325         (flag_peel_loops): New.
11326         (lang_independent_options): The new flags added.
11327         (rest_of_compilation): Call new unroller.
11328         (process_options): Setup flags for coexistence of old and new unroller.
11329         * doc/invoke.texi: Document new options.
11330         * doc/passes.texi: Document new unroller pass.
11331
11332 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
11333
11334         * fixinc/fixincl.x: Regenerate
11335
11336 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
11337
11338         * function.c (assign_parms): Set reg_attrs for parameters passed in
11339         registers.
11340
11341 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
11342
11343         PR target/9681
11344         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
11345
11346 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
11347
11348         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
11349         pseudo-op.
11350
11351 2003-02-25  Roger Sayle  <roger@eyesopen.com>
11352
11353         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
11354         * cse.c (invalidate_skipped_set):  Likewise.
11355         * integrate.c (subst_constants):  Likewise.
11356         * jump.c (reversed_comparison_code_parts):  Likewise.
11357         * loop.c (canonicalize_condition):  Likewise.
11358         * simplify-rtx.c (simplify_relational_operation):  Likewise.
11359
11360 2003-02-25  Roger Sayle  <roger@eyesopen.com>
11361
11362         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
11363         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
11364         the appropriate macro to define built-in function.
11365         (fmod,fmodf,fmodl): New built-in functions.
11366
11367         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
11368
11369 2003-02-25  Richard Henderson  <rth@redhat.com>
11370
11371         * config/i386/i386.c (function_arg): Pass variable sized
11372         structures correctly on the stack.
11373
11374 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
11375
11376         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
11377         does not reduce the cost of SET.
11378
11379 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11380
11381         PR target/9732
11382         * config/rs6000/rs6000.c (first_reg_to_save): Handle
11383         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
11384         (rs6000_emit_prologue): Likewise.
11385         (rs6000_emit_epilogue): Likewise.
11386         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
11387         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
11388
11389 2003-02-25  Richard Henderson  <rth@redhat.com>
11390
11391         * real.c (real_to_integer2): Force overflow result only for
11392         unsigned overflow.
11393
11394 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
11395
11396         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
11397
11398 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
11399             Richard Henderson  <rth@redhat.com>
11400
11401         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
11402         there is no similar load.
11403
11404 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
11405             Richard Henderson  <rth@redhat.com>
11406
11407         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
11408         sched-rgn.c.
11409         (add_forward_dependence): New function prototype.
11410
11411         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
11412         sched-init.h.
11413         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
11414         them to haifa-sched.c.
11415
11416         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
11417         haifa_classify_insn): Move them from sched-rgn.c.
11418
11419         * sched-deps.c (add_dependence): Return flag of creating a new
11420         entry.
11421         (add_forward_dependence): New function.
11422         (compute_forward_dependences): Use the function.
11423
11424         * sched-ebb.c (earliest_block_with_similiar_load): New function.
11425         (add_deps_for_risky_insns): New function.
11426         (schedule_ebb): Call the function.
11427
11428 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
11429
11430         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
11431         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
11432
11433         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
11434         opaque types fail.
11435
11436         * c-typeck.c (comptypes): Change call to vector_types_compatible
11437         to vector_opaque_p.
11438         (convert_for_assignment): Call vector_opaque_p instead of
11439         vector_types_compatible.
11440         (really_start_incremental_init): Disallow initialization of opaque
11441         types.
11442
11443         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
11444         Define TARGET_VECTOR_OPAQUE_P.
11445         (TARGET_INITIALIZER): Same.
11446
11447         * target.h (struct gcc_target): Remove vector_types_compatible.
11448         Add vector_opaque_p.
11449
11450         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
11451         Remove.
11452         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
11453         a vector type.  Change return type to bool.
11454         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
11455         (TARGET_VECTOR_OPAQUE_P): Define.
11456
11457         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
11458         target hook.
11459         Include target.h.
11460         (cp_parser_init_declarator): Fix typo in function comments.
11461
11462 2003-02-25  Jan Hubicka  <jh@suse.cz>
11463
11464         * Makefile.in (lcm.o):  Add dependency on function.h
11465         * lcm.c (function.h): Include.
11466         * i386.c (machine_function, ix86_stack_locals,
11467         * ix86_save_varrargs_registers) : Move to
11468         ...
11469         * i386.h (machine_function, ix86_stack_locals,
11470         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
11471         (ix86_optimize_mode_switching): New.
11472         * i386.md (fix patterns): Set ix86_optimize_mode_switching
11473
11474 2003-02-25  Nick Clifton  <nickc@redhat.com>
11475
11476         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
11477         of fourth arg is 'fndecl' not 'indirect'.  Update comment
11478         describing the function's parameters.
11479
11480 2003-02-24  Jan Hubicka  <jh@suse.cz>
11481
11482         * combine.c (simplify_shift_const):  Fix previous patch.
11483
11484 2003-02-24  Jeff Law  <law@redhat.com>
11485
11486         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
11487         alternative.
11488         (testsi_1, testhi_1, testqi_1): Likewise.
11489
11490 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11491
11492         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
11493         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
11494         * doc/extend.texi (Tru64 Pragmas): Reflect this.
11495
11496         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
11497         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
11498         * fixinc/fixincl.x: Regenerate.
11499         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11500         testcase.
11501         Fixes PR c/5059, c/6126, other/9671.
11502
11503 2003-02-24  Roger Sayle  <roger@eyesopen.com>
11504
11505         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
11506         from handle_braces in "%{...}".
11507
11508 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
11509
11510         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
11511         (prepare_move_operands): Handle TLS operands.
11512         (tls_symbolic_operand): New.
11513         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
11514         (legitimize_pic_address): Do nothing for the TLS symbol.
11515         (sh_encode_section_info): Handle TLS case.
11516         (sh_strip_name_encoding): Drop TLS encoding.
11517         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
11518         * config/sh/sh.h (SH_TLS_ENCODING): Define.
11519         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
11520         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
11521         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
11522         * config/sh/sh.md: Define TLS UNSPEC constants.
11523         (type): Add tls_load.
11524         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
11525         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
11526         ("tls_initial_exec"): New insn.
11527         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
11528         ("load_gbr"): New insn.
11529
11530         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
11531         * configure: Regenerate.
11532
11533 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
11534
11535         PR 9297, PR 9722
11536         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
11537         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
11538         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
11539         (enum block_op_methods): Reorder for better store_expr optimization.
11540         * expr.c (store_expr): Test bit 1 of "want_value" for call param
11541         stores, test bit 0 for original want_value meaning.  Pass
11542         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
11543         recursive calls, and calls to expand_param.
11544         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
11545         expected, set target to 0 rather than to subtarget.  Formatting.
11546
11547 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11548
11549         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
11550
11551 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11552
11553         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
11554         new default behavior.
11555         * ggc-common.c: Include sys/resource.h.
11556         (ggc_rlimit_bound): New function.
11557         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
11558         defaults to account for rlimits.
11559
11560 2003-02-22  Richard Henderson  <rth@redhat.com>
11561
11562         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
11563
11564 2003-02-22  Kelley Cook <kelley@dwhoops.info>
11565
11566         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
11567         (ix86_tune_string): Rename from ix86_cpu_string.
11568
11569 2003-02-22  Kelley Cook <kelleycook@comcast.net>
11570
11571         * config/i386/i386.c: Replace "mcpu" with "mtune".
11572         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
11573         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
11574         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
11575         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
11576
11577 2003-02-23  Andreas Schwab  <schwab@suse.de>
11578
11579         * config.gcc: Delete references to m68k/t-linux and
11580         m68k/t-linux-aout.
11581         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
11582
11583 2003-02-22  Jan Hubicka  <jh@suse.cz>
11584
11585         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
11586         of track scheduling patch.
11587
11588 2003-02-22  Jan Hubicka  <jh@suse.cz>
11589
11590         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
11591         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
11592
11593 2003-02-22  Jan Hubicka  <jh@suse.cz>
11594
11595         * c-decl.c (c_expand_body_1): Fix.
11596
11597 2003-02-22  Jan Hubicka  <jh@suse.cz>
11598
11599         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
11600
11601         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
11602         when not optimizing.
11603         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
11604         when not expensive.
11605         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
11606         optimizing;  Delete trivially dead insns early; fix optimize check.
11607
11608         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
11609         dependency on cgraph.h
11610         * c-decl.c: Include cgraph.h
11611         (finish_function): Update call of tree_inlinable_function_p.
11612         * c-objc-common.c: Include cgraph.h
11613         * cgraph.h: New file.
11614         * cgraphunit.c: New file.
11615         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
11616         (cgraph_nodes, cgraph_n_nodes): Globalize.
11617         (cgraph_finalize_function, cgraph_finalize_compilation_unit
11618         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
11619         Move into cgraphunit.c
11620         * tree-inline.c: Include cgraph.h
11621         * tree-inline.c: Include cgraph.h
11622
11623 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
11624
11625         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
11626         for copying a register.
11627
11628 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
11629
11630         PR other/3782
11631         * toplev.c (process_options): If flag_detailed_statistics is set,
11632         then set time_report as well.
11633
11634         PR c/8828
11635         * jump.c (never_reached_warning): Don't fall through BARRRIER
11636         insns.  Update comments to reflect what the function really does.
11637
11638 2003-02-21  Roger Sayle  <roger@eyesopen.com>
11639
11640         * fold-const.c (omit_one_operand): No longer static.
11641         * tree.h (omit_one_operand): Prototype here.
11642         (div_and_round_double): Keep fold-const.c prototypes together.
11643         * builtins.c (builtin_mathfn_code): Handle binary built-in
11644         funtions, such as "pow" and "atan2".
11645         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
11646         Simplify optimizations using "type" the builtin's return type.
11647
11648 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
11649
11650         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
11651         Fix functionalization typo.
11652
11653         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
11654         in an asm.
11655
11656 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11657
11658         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
11659         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
11660         documentation.
11661         * ggc-common.c: Include params.h
11662         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
11663         init_ggc_heuristics): New functions.
11664         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
11665         init_ggc_heuristics): Prototype.
11666         * toplev.c (print_version):  Output GGC heuristics.
11667         (parse_options_and_default_flags): Call init_ggc_heuristics.
11668
11669 2003-02-22  Jan Hubicka  <jh@suse.cz>
11670
11671         * i386.c (def_builtin):  Special case 64bit builtins.
11672         (MASK_SSE164, MASK_SSE264): New constants.
11673         (builtin_description): Add 64bit builtins.
11674         (ix86_init_mmx_sse_builtins): Likewise.
11675         * i386.h (enum ix86_builtins): Likewise.
11676         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
11677         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
11678         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
11679         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
11680         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
11681         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
11682         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
11683
11684 2003-02-22  Jan Hubicka  <jh@suse.cz>
11685
11686         * i386.c (builtin_description): Add __builtin_ia32_paddq and
11687         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
11688          and __builtin_ia32_psubq128.
11689         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
11690         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
11691         (mmx_adddi3, mmx_subdi3): New.
11692         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
11693         * xmmintrin.h (_mm_movepi64_pi64): New.
11694         (_mm_add_epi64, _mm_sub_epi64): fix.
11695         (_mm_mul_pu16): Rename to...
11696         (_mm_mul_su32): ... this one.
11697
11698         * builtins.c (expand_builtin_expect):  Do not predict
11699         flag_guess_branch_prob is not set.
11700         * c-semantics.c (expand_stmt): Likewise.
11701         * predict.c (predict_insn): Likewise.
11702         * stmt.c (expand_continue_loop): Likewise.
11703         * toplev.c (rest_of_compilation): Do not call
11704         note_prediction_to_br_prob and note_prediction_to_br_prob
11705         when not optimizing.
11706
11707 2003-02-21  Jan Hubicka  <jh@suse.cz>
11708
11709         * cfgrtl.c (commit_edge_insertions):  Call
11710         find_many_sub_basic_block only when some code has been emitted.
11711         (commit_edge_insertions_watch_calls): Bring into sync with
11712         commit_edge_insertions
11713
11714 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
11715
11716         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
11717
11718         * sh.md (binary_sf_op): Use extra constant operand instead of
11719         negating constant operand 4.
11720         * sh.c (sh_expand_binop_v2sf): Supply it.
11721
11722 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
11723
11724         * cpphash.h (struct lexer_state): Add directive_wants_padding.
11725         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
11726         for directives of type INCL.
11727         (glue_header_name, parse_include): Use get_token_no_padding.
11728         * cppmacro.c (replace_args): If directive_wants_padding,
11729         provide padding tokens.
11730
11731 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11732
11733         * config/h8300/h8300.md (a peephole2): New.
11734
11735 2003-02-21  Jan Hubicka  <jh@suse.cz>
11736
11737         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
11738         (commit_edge_insertions): Call find_many_sub_basic_blocks
11739
11740         * reg-stack.c (convert_regs): Cleax aux for blocks.
11741
11742 2003-02-21  Jan Hubicka  <jh@suse.cz>
11743
11744         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
11745
11746 2003-02-21  Glen Nakamura  <glen@imodulo.com>
11747
11748         PR optimization/8613
11749         * builtins.c (expand_builtin): Emit postincrements before expanding
11750         builtin functions.
11751
11752 2003-02-21  Ben Elliston  <bje@redhat.com>
11753
11754         PR other/5634
11755         * doc/install.texi (Configuration): Explain using $HOME instead of
11756         the ~ metacharacter when referring to home directories.
11757
11758 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
11759
11760         * configure.in (TARGET_SYSTEM_ROOT): Set default to
11761         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
11762         '${exec_prefix}' (in addition to the expansion thereof) as
11763         relocatable.
11764         * configure: Rebuilt.
11765
11766 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11767
11768         * config/h8300/h8300.md (addhi3_incdec): Change the name to
11769         *addhi3_incdec.
11770         (addsi3_incdec): Change the name to *addsi3_incdec.
11771
11772 2003-02-20  Roger Sayle  <roger@eyesopen.com>
11773
11774         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
11775
11776 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
11777
11778         PR fortran/9038
11779         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
11780         options to be ignored.
11781         (c_common_decode_option): Ignore them when preprocessing.
11782
11783 2003-02-20  Jan Hubicka  <jh@suse.cz>
11784
11785         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
11786         global variables.
11787         (lang_independent_options):  Add -fsched2-use-superblocks
11788         -fsced2-use-traces.
11789         (rest_of_compilation): Deal with it.
11790         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
11791         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
11792         Declare.
11793         * rtl.h (reg_to_stack):  Update prototype.
11794         * reg-stack.c (reg_to_stack): Return when something has changed;
11795         update liveness when executing after superblock scheduling.
11796
11797         * combine.c (simplify_shift_const):  Simplify few special cases
11798         into constants.
11799
11800 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
11801
11802         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
11803         (add.,subf.,neg.): Change attribute to fast_compare.
11804         All DFA descriptions updated.
11805
11806 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
11807
11808         Change base class access representation.
11809         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
11810         TREE_VIA_PRIVATE): Remove.
11811         (BINFO_BASEACCESSES): New binfo elt.
11812         (BINFO_BASEACCESS): New accessor.
11813         (BINFO_ELTS): Increase.
11814         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
11815         (access_public_node, access_protected_node,
11816         access_private_node): New global nodes.
11817         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
11818         * dbxout.c (dbxout_type): Adjust.
11819         * dwarf2out.c (gen_inheritance_die): Add access parameter.
11820         (gen_member_die): Adjust.
11821         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
11822         (output_type): Adjust.
11823         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
11824
11825         Change base class access representation. Share virtual base
11826         binfos.
11827         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
11828         call.
11829         * cp/class.c (build_base_path): Likewise.
11830         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
11831         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
11832         (make_new_vtable): Adjust.
11833         (force_canonical_binfo_r): Delete.
11834         (force_canonical_binfo): Delete.
11835         (mark_primary_virtual_base): Delete.
11836         (dfs_unshared_virtual_bases): Delete.
11837         (mark_primary_bases): Adjust.
11838         (maybe_warn_about_overly_private_class): Adjust.
11839         (dfs_base_derived_from): Delete.
11840         (base_derived_from): Follow the inheritance chain.
11841         (struct find_final_overrider_data): Add vpath member.
11842         (dfs_find_final_overrider): Adjust.
11843         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
11844         (find_final_overrider): Adjust.
11845         (update_vtable_entry_for_fn): Adjust.
11846         (modify_all_vtables): Adjust.
11847         (walk_subobject_offsets): Adjust.
11848         (layout_nonempty_base_or_field): Adjust.
11849         (layout_empty_base): Remove last parameter. Adjust.
11850         (build_base_field): Adjust.
11851         (build_base_fields): Adjust.
11852         (propagate_binfo_offsets): Remove last parameter. Adjust.
11853         (dfs_set_offset_for_unshared_vbases): Delete.
11854         (layout_virtual_bases): Adjust.
11855         (finish_struct_1): Adjust.
11856         (init_class_processing): Don't init access nodes.
11857         (dfs_get_primary_binfo): Delete.
11858         (get_primary_binfo): Adjust.
11859         (dump_class_hierarchy_r): Remove most derived arg, add IGO
11860         parameter. Adjust.
11861         (dump_class_hierarchy): Adjust.
11862         (finish_vtbls): Adjust.
11863         (get_original_base): Delete.
11864         (build_vtt_inits): Adjust.
11865         (dfs_build_secondary_vptr_vtt_inits): Adjust.
11866         (dfs_ctor_vtable_bases_queue_p): Adjust.
11867         (build_ctor_vtbl_group): Adjust.
11868         (dfs_accumulate_vtbl_inits): Adjust.
11869         (build_vtbl_initializer): Adjust.
11870         (build_vbase_offset_vtbl_entries): Adjust.
11871         (add_vcall_offset_vtbl_entries_1): Adjust.
11872         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
11873         (access_*_node): Remove.
11874         (CANONICAL_BINFO): Delete.
11875         (BINFO_UNSHARED_MARKED): Remove.
11876         (BINFO_MARKED): Set LANG_FLAG_0 directly.
11877         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
11878         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
11879         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
11880         Delete.
11881         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
11882         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
11883         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
11884         Delete.
11885         (BINFO_DEPENDENT_BASE_P): New.
11886         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
11887         index.
11888         (markedp, unmarkedp): Adjust.
11889         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
11890         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
11891         find_vbase_instance, binfo_for_vbase): Delete.
11892         (copied_binfo, original_binfo): Declare.
11893         (finish_base_specifier): Add virtual_p arg.
11894         (unshare_base_binfos): Delete.
11895         (copy_base_binfos): Declare.
11896         (reverse_path): Delete.
11897         * cp/decl.c (xref_basetypes): Access and virtuality passed
11898         differently. Don't copy direct base binfos here. Call
11899         copy_base_binfos.
11900         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
11901         (initialize_vtbl_ptrs): Adjust.
11902         (expand_member_init): Adjust.
11903         * cp/parser.c (cp_parser_base_specifier): Adjust.
11904         * cp/pt.c (instantiate_class_template): Adjust.
11905         (get_template_base_recursive): Adjust.
11906         * cp/rtti.c (get_pseudo_ti_init): Adjust.
11907         (get_pseudo_ti_desc): Adjust.
11908         * cp/tree.c (unshare_base_binfos): Rename to ...
11909         (copy_base_binfos): ... here, reimplement.
11910         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
11911         (reverse_path): Remove.
11912         * cp/typeck.c (get_delta_difference): Adjust error messages.
11913         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
11914         * cp/search.c (lookup_base_r): Adjust.
11915         (dynamic_cast_base_recurse): Adjust.
11916         (canonical_binfo): Remove.
11917         (dfs_canonical_queue): Remove.
11918         (dfs_assert_unmarked_p): Remove.
11919         (assert_canonical_unmarked): Remove.
11920         (shared_marked_p, shared_unmarked_p): Remove.
11921         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
11922         (dfs_access_in_type): Adjust.
11923         (access_in_type): Adjust.
11924         (dfs_accessible_queue_p): Adjust.
11925         (dfs_accessible_p): Adjust.
11926         (is_subobject_of_p_1, is_subobject_of_p): Remove.
11927         (struct lookup_field_info): Remove from_dep_base_p field.
11928         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
11929         (lookup_field_r): Remove dependent base code.
11930         (lookup_member): Likewise.
11931         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
11932         (dfs_unmarked_real_bases_queue_p): Remove.
11933         (dfs_marked_real_bases_queue_p): Remove.
11934         (dfs_skip_vbases): Remove.
11935         (dfs_get_pure_virtuals): Adjust.
11936         (markedp, unmarkedp): Adjust.
11937         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
11938         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
11939         (dfs_unmark): Adjust.
11940         (dfs_get_vbase_types):Remove.
11941         (dfs_build_inheritance_graph_order): Remove.
11942         (get_vbase_types): Remove
11943         (dfs_find_vbase_instance): Remove.
11944         (find_vbase_instance): Remove.
11945         (dfs_debug_unmarkedp): Adjust.
11946         (dependent_base_p): Remove.
11947         (dfs_push_type_decls): Adjust.
11948         (dfs_push_decls): Adjust.
11949         (dfs_no_overlap_yet): Adjust.
11950         (copied_binfo): New function.
11951         (original_binfo): New function.
11952         (binfo_for_vbase): Remove.
11953
11954         Change base class access representation.
11955         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
11956         (add_interface_do): Likewise.
11957
11958 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
11959
11960         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
11961         * config/rs6000/power4.md (power4-store,power4-vecstore): New
11962         insn reservations.
11963         (power4-fpstore): Compact.
11964
11965 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11966
11967         * config/h8300/h8300.md (*iorsi3_w): New.
11968
11969 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
11970
11971         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
11972         * rtl.c (reg_note_name): Likewise.
11973         * rtl.h (enum reg_note): Likewise.
11974         * doc/invoke.texi: Likewise.
11975         * doc/rtl.texi: Likewise.
11976
11977 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
11978
11979         * bb-reorder.c (find_traces_1_round): Fix comment typo.
11980
11981 2003-02-19  Roger Sayle  <roger@eyesopen.com>
11982
11983         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
11984         addition in the presence of signaling NaNs.
11985
11986 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
11987
11988         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
11989
11990 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11991
11992         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
11993         ORing with 0xffff??00 with the highest bit of the ?? part set.
11994         (compute_logical_op_length): Update.
11995         (compute_logical_op_cc): Likewise.
11996
11997 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
11998
11999         * bb-reorder.c (find_traces_1_round): Fixed condition for small
12000         destination block with multiple predecessors.
12001         (connect_traces): Check whether the block is a start of trace.
12002
12003 2003-02-19  Jan Hubicka  <jh@suse.cz>
12004
12005         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
12006         * function.c (assign_params): Likewise.
12007         * arm-protos.h (arm_init_cumulative_args): Update prototype.
12008         * arm.c (arm_init_cumulative_args): Update function.
12009         * arm.h (INIT_CUMULATIVE_ARGS): Update.
12010         * avr-protos.h (init_cumulative_args): Update prototype.
12011         * avr.c (init_cumulative_args): Update function.
12012         * avr.h (INIT_CUMULATIVE_ARGS): Update.
12013         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
12014         * d30v.c (d30v_init_cumulative_args): Update function.
12015         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
12016         * frv-protos.h (frv_init_cumulative_args): Update prototype.
12017         * frv.c (frv_init_cumulative_args): Update function.
12018         * frv.h (INIT_CUMULATIVE_ARGS): Update.
12019         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
12020         * pa.h (INIT_CUMULATIVE_ARGS): Update.
12021         * sparc-protos.h (init_cumulative_args): Update prototype.
12022         * sparc.c (init_cumulative_args): Update function.
12023         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
12024         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
12025
12026 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12027
12028         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
12029         (*ashiftsi_sextqi_7): Likewise.
12030
12031 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12032
12033         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
12034         ISO C99 and C++.
12035
12036         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
12037         for C++ on IRIX 6.5.1[89].
12038         * fixinc/tests/base/internal/sgimacros.h: New file.
12039
12040         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
12041         * fixinc/tests/base/internal/wchar_core.h: New file.
12042
12043         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
12044         socklen_t definition.
12045         * fixinc/fixincl.x: Regenerate.
12046         * fixinc/tests/base/sys/socket.h: New file.
12047         Fixes PR libgcj/9652.
12048
12049 2003-02-19  Jan Hubicka  <jh@suse.cz>
12050
12051         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
12052
12053 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
12054
12055         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
12056         align_jumps_max_skip and align_loops_max_skip.
12057
12058 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
12059
12060         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
12061         test size if named section.
12062
12063 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
12064
12065         * expr.c (expand_expr): Use gen_int_mode for the argument
12066         to gen_rtx_MULT.
12067
12068 2003-02-19  Jan Hubicka  <jh@suse.cz>
12069
12070         * i386.md (cosxf2):  Fix conditional.
12071
12072 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12073
12074         * config/h8300/h8300.md (extendqisi2): Change to an expander.
12075         (*extendqisi2_h8300): New.
12076         (*extendqisi2_h8300hs): Likewise.
12077
12078 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
12079
12080         * config/h8300/h8300-protos.h: Update the prototype for
12081         split_adds_subs.  Remove the prototypes for
12082         const_int_le_2_operand and const_int_le_6_operand.
12083         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
12084         (const_int_le_2_operand): Remove.
12085         (const_int_le_6_operand): Likewise.
12086         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
12087         for const_int_le_2_operand and const_int_le_6_operand.
12088         * config/h8300/h8300.md: Update all uses of split_adds_subs.
12089         (a peephole2): New.
12090
12091 2003-02-18  Jan Hubicka  <jh@suse.cz>
12092
12093         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
12094         (cgraph_expand_function): Rewrite.
12095
12096 2003-02-18  Matt Austern <austern@apple.com>
12097
12098         * toplev.c, langhooks.c, langhooks-def.h: Move
12099         write_global_declarations from toplev.c to langhooks.c.
12100
12101 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12102
12103         * config/h8300/h8300.c (general_operand_src): Always check
12104         MODE.
12105         (general_operand_dst): Likewise.
12106
12107 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12108
12109         * convert.c (convert_to_real): Also optimize (float)log(x) into
12110         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
12111
12112 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
12113
12114         * config/sh/sh.c (unspec_caller_rtx_p): New.
12115         (sh_cannot_copy_insn_p): New.
12116         (TARGET_CANNOT_COPY_INSN_P): New.
12117
12118 2003-02-18  Richard Henderson  <rth@redhat.com>
12119
12120         * c-common.c (handle_used_attribute): Accept static data too.
12121
12122 2003-02-18  Nick Clifton  <nickc@redhat.com>
12123             Aldy Hernandez  <aldyh@redhat.com>
12124
12125         * testsuite/gcc.dg/20030218-1.c: New.
12126
12127         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
12128
12129         * target-def.h (TARGET_INITIALIZER): Add
12130         TARGET_VECTOR_TYPES_COMPATIBLE.
12131         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
12132
12133         * target.h (struct gcc_target): Add field vector_types_compatible.
12134
12135         * c-typeck.c (comptypes): Take into account
12136         TARGET_VECTOR_TYPES_COMPATIBLE.
12137         (convert_for_assignment): Same.
12138
12139         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
12140         (rs6000_spe_vector_types_compatible): New.
12141         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
12142
12143 2003-02-19  Andreas Schwab  <schwab@suse.de>
12144
12145         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
12146         * toplev.c: Include langhooks-def.h.
12147
12148 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
12149
12150         * config/mips/mips.h (enum processor_type): Sort entries
12151         alphabetically.
12152         * config/mips/mips.md (define_attr cpu): Sync with processor_type
12153         enum values, including adding entries that were missing.
12154
12155 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
12156
12157         * sh.c (calc_live_regs): Also check GET_CODE when checking if
12158         initial value for PR_REG is still the PR_REG register.
12159
12160 2003-02-18  Jim Wilson  <wilson@redhat.com>
12161
12162         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
12163         instruction in output template.
12164         (bsp_value): Change output template from string to C code, add %,
12165         before actual instruction.
12166         (flushrs): Mark as not predicable.
12167
12168 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
12169
12170         * inclhack.def (netbsd_bogus_semicolon): New fix.
12171         * fixincl.x: Rebuilt.
12172         * tests/base/ctype.h: Update.
12173
12174 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12175
12176         * fold-const.c (negate_expr_p): New function to determine whether
12177         an expression can be negated cheaply.
12178         (fold) [MINUS_EXPR]: Use it to determine whether to transform
12179         -A - B into -B - A for floating point types.
12180
12181 2003-02-18  Roger Sayle  <roger@eyesopen.com>
12182
12183         * sbitmap.c (sbitmap_resize): New function.
12184         * sbitmap.h (sbitmap_resize): Prototype here.
12185         * recog.c (split_all_insns): Use sbitmap_resize.
12186
12187 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12188
12189         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
12190         insn length.
12191         (extendqisi2): Likewise.
12192         (*extendhisi2_h8300): Likewise.
12193
12194 2003-02-18  Matt Austern <austern@apple.com>
12195
12196         * langhooks.h, langhooks-def.h: introduce new langhook,
12197         final_write_globals, with write_global_declarations as default.
12198         * toplev.c: Move invocation of wrapup_global_declarations from
12199         compile_file to new function, write_global_declarations.  Change
12200         compile_file to use final_write_globals hook.  Change
12201         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
12202         conditional.
12203
12204 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12205
12206         * pa.md: Correct and enhance comment.
12207
12208 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
12209
12210         * gcc.c (validate_switches): Don't scan past closing '}'.
12211
12212 2003-02-18  Ben Elliston  <bje@redhat.com>
12213
12214         PR c++/1607
12215         * doc/extend.texi (Function Attributes): Document the effect of
12216         the C++ "this" parameter on the counting of arguments for the
12217         "format" and "format_arg" attributes.
12218
12219 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
12220
12221         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
12222         (__ev_stdw): Same.
12223         (__ev_stdh): Same.
12224
12225 2003-02-17  Jan Hubicka  <jh@suse.cz>
12226
12227         * recog.c (split_all_insns):  Fix memory overflow.
12228
12229 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12230
12231         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
12232         (cmphi): Likewise.
12233         (*cmphi_h8300): Likewise.
12234         (*cmphi_h8300hs): Likewise.
12235         (cmpsi): Likewise.
12236         (7 peephole2): Likewise.
12237
12238 2003-02-16  Jan Hubicka  <jh@suse.cz>
12239
12240         * c-typeck.c (build_c_cast):  Fold constant variables into
12241         initial values.
12242
12243 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12244
12245         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
12246         (Binaries): Ditto for Sinix/Reliant Unix.
12247
12248 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
12249
12250         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
12251         not overlap the final result register.
12252
12253 2003-02-16 Arend Bayer <arend.bayer@web.de>
12254            Richard Henderson  <rth@redhat.com>
12255
12256         PR c/8068
12257         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
12258         rearrange mult arguments for less recursion.
12259         (extract_muldiv): New.  Prevent runaway recursion.
12260
12261 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
12262
12263         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
12264         MASK_ALIGN_DOUBLE.
12265
12266 2003-02-15  Roger Sayle  <roger@eyesopen.com>
12267
12268         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
12269         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
12270         (ext_80387_constants_table): Global table of 80387 special constants
12271         guarded by ext_80387_constants_init flag when not initialized.
12272         (init_ext_80387_constants): New function to initialize this table.
12273         (standard_80387_constant_p): Extend to recognize extra 80387
12274         constants, in XFmode, on processors where this is a win.
12275         (standard_80387_constant_opcode): New function to return the
12276         opcode associated with standard_80387_constant_p.
12277         (standard_80387_constant_rtx): New function to return the XFmode
12278         CONST_DOUBLE associated with standard_80387_constant_p.
12279         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
12280
12281         * config/i386/i386-protos.h (standard_80387_constant_opcode):
12282         Prototype here.
12283         (standard_80387_constant_rtx): Likewise.
12284
12285         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
12286         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
12287         *movtf_integer): Simplify using new standard_80387_constant_opcode.
12288
12289 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
12290
12291         * doc/invoke.texi (Optimize Options): Correct @option syntax.
12292
12293 2003-02-15  Richard Henderson  <rth@redhat.com>
12294
12295         * Makefile.in (cfglayout.o): Depend on TARGET_H.
12296         * cfglayout.c: Include target.h.
12297         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
12298         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
12299         * target.h (struct gcc_target): Add cannot_copy_insn_p.
12300
12301         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
12302         (TARGET_CANNOT_COPY_INSN_P): New.
12303         (override_options): Revert 2003-02-08 hack.
12304
12305 2003-02-15  Richard Henderson  <rth@redhat.com>
12306
12307         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
12308         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
12309
12310 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
12311
12312         * config/rs6000/rs6000.h (processor_type): Add PPC440.
12313         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
12314         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
12315         TARGET_SCHED_VARIABLE_ISSUE): Define.
12316         (rs6000_use_dfa_pipeline_interface): New function.
12317         (rs6000_multipass_dfa_lookahead): New Function.
12318         (rs6000_variable_issue): New function.
12319         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
12320         (rs6000_issue_rate): Add PPC440.
12321         * config/rs6000/rs6000.md (unspec list): Correct typo.
12322         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
12323         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
12324         cmp, delayed_cr, mfcr, mtcr.
12325         (automata_option): Set "ndfa".
12326         (extendMMNN2): Update attributes.
12327         (movcc_internal1): Discourage move to non-cr0.  Update
12328         attributes.
12329         (movMM_update): Update attributes.
12330         (cmpMM_internal): Update attributes.
12331         (sCC CR materialization): Update attributes.
12332         (branch patterns): Do not discourage non-cr0.
12333         (cr logical patterns): Prefer destructive register allocation.
12334         Update attributes.
12335         (movesi_from_cr): Update attribute.
12336         (mtcrf_operation): Update attribute.
12337         (mtcrfsi): Update attribute.
12338         * config/rs6000/40x.md: New file.
12339         * config/rs6000/603.md: New file.
12340         * config/rs6000/6xx.md: New file.
12341         * config/rs6000/7450.md: New file.
12342         * config/rs6000/7xx.md: New file.
12343         * config/rs6000/mpc.md: New file.
12344         * config/rs6000/power4.md: New file.
12345         * config/rs6000/rios1.md: New file.
12346         * config/rs6000/rios2.md: New file.
12347         * config/rs6000/rs64.md: New file.
12348         [Some DFA descriptions based on work by Michael Hayes]
12349
12350 2003-02-15  Richard Henderson  <rth@redhat.com>
12351
12352         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
12353         successors with multiple predecessors.
12354         (connect_traces): Try harder to copy traces of length 1.
12355
12356         * function.h (struct function): Add computed_goto_common_label,
12357         computed_goto_common_reg.
12358         * function.c (free_after_compilation): Zap them.
12359         * stmt.c (expand_computed_goto): Use them to produce one
12360         indirect branch per function.
12361
12362 2003-02-15  Richard Henderson  <rth@redhat.com>
12363
12364         * cfgcleanup.c: Include params.h.
12365         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
12366         too many outgoing edges from a block.
12367         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
12368         * params.def (max-crossjump-edges): New.
12369         * doc/invoke.texi: Document it.
12370
12371 2003-02-15  Richard Henderson  <rth@redhat.com>
12372
12373         * recog.c (split_all_insns): Include new blocks in life update;
12374         do a global life update.
12375
12376 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
12377
12378         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
12379         Update copyright.
12380         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
12381         -mno-cygwin case.
12382
12383 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
12384
12385         PR optimization/7702
12386         * reload1.c (reload_cse_simplify_set): Honor
12387         CANNOT_CHANGE_MODE_CLASS.
12388
12389 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
12390
12391         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
12392         function.
12393         * config/mn10300/mn10300-protos.h: Declare it.
12394         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
12395         attribute cc of instructions that may use clr.
12396
12397 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
12398
12399         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
12400         (x - (x & y)) is found.
12401
12402 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12403
12404         * configure.in: Fix typo.
12405         * configure: Regenerate.
12406
12407 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
12408
12409         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
12410
12411 2003-02-13  Adam Nemet  <anemet@lnxw.com>
12412
12413         PR opt/2391
12414         * combine.c: Fix spelling in comment.
12415         (cached_nonzero_bits): New function.
12416         (cached_num_sign_bit_copies): New function.
12417         (nonzero_bits_with_known): New macro.
12418         (num_sign_bit_copies_with_known): New macro.
12419         (nonzero_bits1): Rename from nonzero_bits.  Add three new
12420         arguments.  Change calls from nonzero_bits to
12421         nonzero_bits_with_known.
12422         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
12423         three new arguments.  Change calls from num_sign_bit_copies to
12424         num_sign_bit_copies_with_known.
12425         (nonzero_bits): New macro.
12426         (num_sign_bit_copies): New macro.
12427         (update_table_tick): Don't traverse identical subexpression more
12428         than once.
12429         (get_last_value_validate): Likewise.
12430
12431 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
12432
12433         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
12434         * function.h (struct emit_status): Length of regno_pointer_align
12435         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
12436         not regno_pointer_align_length (i.e. length actually used, not
12437         length as allocated)
12438
12439         * config/i386/i386.c (struct stack_local_entry): New.
12440         (struct machine_function): Replace huge array with alist.
12441         (assign_386_stack_local): Change to match.
12442
12443 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
12444
12445         * inclhack.def (hpux_long_double): Tighten select and add bypass
12446         regexp.
12447         * fixincl.x: Rebuilt.
12448
12449 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
12450
12451         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
12452         edge and block ends with a jump insn it must be simple jump.
12453
12454 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
12455
12456         * Makefile.in (PREPROCESSOR_DEFINES): Add
12457         @TARGET_SYSTEM_ROOT_DEFINE@.
12458         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
12459         is specified or if building a cross compiler.
12460         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
12461         if the sysroot is under $exec_prefix.
12462         * configure: Regenerated.
12463         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
12464         defined.
12465         (struct default_include): Add add_sysroot field.
12466         (cpp_SYSROOT): Declare.
12467         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
12468         field.
12469         (cpp_SYSROOT): New variable.
12470         * cppinit.c (cpp_create_reader): Initialize
12471         CPP_OPTION (pfile, sysroot).
12472         (init_standard_includes): Handle add_sysroot.  Do not
12473         add unrelocated copies of relocated directories.
12474         (COMMAND_LINE_OPTIONS): Add -isysroot.
12475         (cpp_handle_option): Handle -isysroot.
12476         * cpplib.h (struct cpp_options): Add sysroot member.
12477         * gcc.c (The Specs Language): Update description of %I.
12478         (target_system_root_changed): New variable.
12479         (process_command): Conditionalize make_relative_prefix call
12480         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
12481         target_system_root_changed.
12482         (do_spec_1): Add -isysroot to %I.
12483         * doc/invoke.texi (Spec Files): Update description of %I.
12484         * doc/install.texi (--with-sysroot): Update comment about
12485         relocation.
12486
12487 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
12488
12489         * config/h8300/h8300.md (a peephole2): New.
12490
12491 2003-02-13  Robert Lipe <robertlipe@usa.net>
12492             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12493
12494         * doc/install.texi (Specific): Update three SCO-related URLs.
12495
12496 2003-02-13  Andreas Schwab  <schwab@suse.de>
12497
12498         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
12499         Parenthesize properly.
12500         (NPREDECESORS): Parenthesize properly.
12501
12502 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12503
12504         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
12505
12506 2003-02-12  Roger Sayle  <roger@eyesopen.com>
12507
12508         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
12509         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
12510
12511         * reg-stack.c (subst_stack_regs_pat): Add support for binary
12512         UNSPEC instructions (e.g. "fpatan").
12513
12514 2003-02-12  Mike Stump  <mrs@apple.com>
12515
12516         * varray.c (element_size): Remove.
12517         (uses_ggc): Remove.
12518         (element): Add.
12519         (varray_init): Use new interface.
12520         (varray_grow): Use new interface.
12521         (varray_clear): Use new interface.
12522
12523 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
12524
12525         * config/rs6000/spe.h: Add casts to the arguments of the following
12526         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
12527         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
12528         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
12529         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
12530         __ev_get_u16, __ev_get_s16.
12531
12532 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12533
12534         * config/h8300/h8300.md (a peephole2): New.
12535
12536 2003-02-12  Jan Hubicka  <jh@suse.cz>
12537
12538         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
12539         (OBJS): Add callgraph.o
12540         (callgraph.o): New.
12541         * c-decl.c (expand_body_1): Break out from ...
12542         (expand_body): This one;  change calling convention
12543         (finish_function): Move some of expand_body logic here.
12544         (c_expand_deferred_function): Update call of expand_body
12545         (c_expand_stmt): Use c_expand_body_1.
12546         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
12547         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
12548         * c-tree.h (c_expand_body): Declare.
12549         * callgraph.c: New file.
12550         * flags.h (flag_unit_at_a_time): Declare.
12551         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
12552         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
12553         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
12554         * langhooks.h (struct lang_hooks_for_callgraph): New.
12555         (struct lang_hooks): Add callgraph field.
12556         * toplev.c (flag_unit_at_a_time): New.
12557         (lang_independent_options): Add flag_unit_at_a_time.
12558         (process_options): Disable unit-at-a-time mode for frontends not
12559         supporting callgraph.
12560         * tree-inline.c (typedef struct inline_data): Add "decl"
12561         (expand_call_inline): Update callgraph.
12562         (optimize_inline_calls): Set id.decl.
12563         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
12564         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
12565         cgraph_calls_p): Declare.
12566         * invoke.texi (-funit-at-a-time): Document
12567
12568 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
12569
12570         * config/rs6000/spe.h: Fix misc formatting.
12571         (__ev_create_ufix32_fs): Cast ev argument.
12572         (__ev_create_sfix32_fs): Same.
12573         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
12574         (__ev_get_ufix32_fs_internal): Same.
12575
12576 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
12577
12578         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
12579         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
12580
12581 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
12582
12583         * cpplib.c (do_include_common): Move warnings for
12584         #include_next and #import out to callers.  Use early-return
12585         instead of nested ifs.  Don't do check_eol here.
12586         (parse_include): Do check_eol here with the rest of the
12587         parsing stuff.
12588         (do_include_next, do_import): Now handle warnings.
12589
12590 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12591
12592         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
12593
12594 2003-02-12  Jan Hubicka  <jh@suse.cz>
12595
12596         * predict.c (estimate_probability):  Fix roundoff error.
12597
12598 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12599
12600         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
12601         (two peephole2): New.
12602
12603 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
12604
12605         * config/h8300/h8300.md (several peephole2): Replace
12606         find_regno_note with peep2_reg_dead_p.
12607
12608 2003-02-11  Richard Henderson  <rth@redhat.com>
12609
12610         * gcse.c (lookup_set): Remove unused argument PAT.  Update
12611         both callers.
12612
12613 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
12614
12615         * diagnostic.c (real_abort): New.
12616         (diagnostic_report_diagnostic): Call real_abort on error.
12617         * diagnostic.h (diagnostic_abort_on_error): New.
12618         (struct diagnostic_context): Add abort_on_error field.
12619         * toplev.c (setup_core_dumping): New.
12620         (decode_d_option): Handle 'H' case.
12621         * doc/invoke.texi (Debugging Options): Document -dH.
12622
12623 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
12624
12625         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
12626         which refers to obsolete directories.
12627
12628 2003-02-11  Richard Henderson  <rth@redhat.com>
12629
12630         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
12631
12632 2002-10-21  Jan Hubicka  <jh@suse.cz>
12633
12634         * i386.c (contains_128bit_aligned_vector_p): New function.
12635         (ix86_function_arg_boundary): Properly align vector modes.
12636
12637 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
12638
12639         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
12640         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
12641         as a SET pattern.
12642
12643 2003-02-11  Roger Sayle  <roger@eyesopen.com>
12644
12645         * builtins.c:  Fix failure caused by commiting wrong patch.
12646
12647 2003-02-11  Dale Johannesen  <dalej@apple.com>
12648         * ra-build.c (compare_and_free_webs):  Relax checking.
12649         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
12650         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
12651
12652 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
12653
12654         PR optimization/9651
12655         * rtlanal.c (may_trap_p): Handle FIX.
12656
12657 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
12658
12659         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
12660         * doc/invoke.texi: Extra alias.
12661
12662 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
12663
12664         * config/rs6000/host-darwin.c: Fix comment.
12665
12666 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
12667
12668         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
12669         predicate for mod result.
12670
12671 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12672
12673         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
12674         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
12675         * fixincl.x: Rebuilt.
12676         * tests/base/stdlib.h: Update.
12677         * tests/base/ctype.h: New file.
12678
12679 2003-02-11  Jan Hubicka  <jh@suse.cz>
12680
12681         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
12682
12683 2003-02-11  Richard Henderson  <rth@redhat.com>
12684
12685         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
12686         appropriated as globals.
12687         (ix86_expand_clrstr): Similarly.
12688         * config/i386/i386.md (cmpstrsi): Similarly.
12689
12690 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
12691
12692         * config/h8300/h8300.md (a peephole2): Add a case of 255.
12693
12694 2003-02-11  Roger Sayle  <roger@eyesopen.com>
12695
12696         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
12697         (pow_optab, atan2_optab): Define corresponding macros.
12698         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
12699         * genopinit.c (optabs): Implement pow_optab and atan2_optab
12700         using pow?f3 and atan2?f3 patterns.
12701         * builtins.c (expand_errno_check): New function to update errno
12702         if necessary, split out from expand_builtin_mathfn.
12703         (expand_builtin_mathfn): Use expand_errno_check.
12704         (expand_builtin_mathfn_2): New function to handle expanding binary
12705         math functions, reusing the code in expand_errno_check.
12706         (expand_builtin): Handle the pow and atan2 math built-ins,
12707         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
12708         expand_builtin_mathfn_2.
12709
12710         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
12711
12712 2003-02-11  Jan Hubicka  <jh@suse.cz>
12713
12714         * combine.c (combine_simplify_rtx): Fix folding of
12715         nested float_truncates.
12716
12717 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
12718
12719         * config/h8300/h8300.md (a peephole2): Fix a typo.
12720
12721 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
12722
12723         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
12724         register number.
12725
12726 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
12727
12728         * config/h8300/h8300-protos.h: Add a prototype for
12729         gtuleu_operator.
12730         * config/h8300/h8300.c (gtuleu_operator): New.
12731         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
12732         * config/h8300/h8300.md (a peephole2): New.
12733
12734 2003-02-11  Jan Hubicka  <jh@suse.cz>
12735
12736         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
12737
12738 2003-02-11  Jan Hubicka  <jh@suse.cz>
12739
12740         * predict.c (choose_function_section): Choose sections correctly.
12741
12742 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12743
12744         * reload1.c (first_label_num): New.
12745         (reload): Index offsets_known_at and offsets_at using difference of
12746         label number and first label number.  Don't use offset pointers.
12747         (set_label_offsets, set_initial_label_offsets): Likewise.
12748
12749 2003-02-10  Roger Sayle  <roger@eyesopen.com>
12750
12751         * mips-tfile.c (init_file): Add missing initializers in the
12752         "#ifdef __alpha" case.
12753         (file_offset, max_file_offset): Declare as unsigned long.
12754         (write_varray): Cast to "unsigned long" in comparisons against
12755         either file_offset or max_file_offset.
12756         (write_object): Likewise.
12757         (read_seek): Likewise.
12758         (copy_object): Likewise. Declare "ifd" as int to match its use
12759         in add_ext_symbol, and avoid signed/unsigned conditional warning.
12760
12761 2003-02-10  Nick Clifton  <nickc@redhat.com>
12762             Aldy Hernandez  <aldyh@redhat.com>
12763
12764         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
12765         override options which have been specified on the command line.
12766
12767 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12768
12769         * config/h8300/h8300.md (abssf2): New.
12770         (*abssf2_h8300): Likewise.
12771         (*abssf2_h8300hs): Likewise.
12772
12773 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
12774
12775         * tree.c (build_tree_list):  Fix parameter names in comment.
12776
12777 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
12778
12779         * config/rs6000/ppc64-fp.c: New file.
12780         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
12781
12782 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
12783
12784         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
12785         * bb-reorder.c (make_reorder_chain): Deleted.
12786         (make_reorder_chain_1): Deleted.
12787         (find_traces): New function.
12788         (rotate_loop): New function.
12789         (mark_bb_visited): New function.
12790         (find_traces_1_round): New function.
12791         (copy_bb): New function.
12792         (bb_to_key): New function.
12793         (better_edge_p): New function.
12794         (connect_traces): New function.
12795         (copy_bb_p): New function.
12796         (get_uncond_jump_length): New function.
12797         (reorder_basic_blocks): Use new functions (Software Trace Cache).
12798         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
12799         boundaries.
12800
12801 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
12802
12803         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
12804
12805 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
12806
12807         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
12808         (DECL_LIVE_RANGE_RTL): Remove.
12809
12810 2003-02-10  Nick Clifton  <nickc@redhat.com>
12811
12812         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
12813         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
12814         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
12815         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
12816         config/arm/freebsd.h, config/arm/linux-elf.h,
12817         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12818         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
12819         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
12820         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
12821         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
12822         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
12823         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
12824         and reformat as appropriate.
12825
12826 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12827
12828         * config/h8300/clzsi2.c: Remove.
12829         * config/h8300/ctzsi2.c: Likewise.
12830         * config/h8300/paritysi2.c: Likewise.
12831         * config/h8300/popcountsi2.c: Likewise.
12832         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
12833         ctzsi2, paritysi2, and popcountsi2.
12834
12835 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
12836             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
12837
12838         PR c/7741
12839         * c-decl.c (duplicate_decls): Discard the initializer of the
12840         new decl when the types are conflicting.
12841
12842 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
12843
12844         * Makefile.in (sreal.o): Added.
12845         (predict.o): Depends on sreal.h instead of real.h.
12846         * sreal.c: New file.
12847         * sreal.h: New file.
12848         * predict.c: Use sreal.c instead of real.c.
12849
12850 2003-02-10  Nick Clifton  <nickc@redhat.com>
12851
12852         * Contributed support for the Cirrus EP9312 "Maverick"
12853         floating point co-processor.  Written by Aldy Hernandez
12854         <aldyh@redhat.com>.
12855         (config/arm/arm.c): Add Cirrus support.
12856         (config/arm/arm.h): Likewise.
12857         (config/arm/aout.h): Likewise.
12858         (config/arm/arm.md): Likewise.
12859         (config/arm/arm-protos.h): Likewise.
12860         (config.gcc): Likewise.
12861         (doc/invoke.texi): Describe new -mcpu value and new
12862         -mcirrus-fix-invalid-insns switch,
12863         (cirrus.md): New file.
12864
12865 2003-02-10  Jan Hubicka  <jh@suse.cz>
12866
12867         * combine.c (combine_simplify_rtx): Simplify using
12868         (float_truncate (float x)) is (float x)
12869         (float_extend (float_extend x)) is (float_extend x).
12870
12871 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
12872
12873         * calls.c (try_to_integrate): Tidy stack_usage_map access.
12874         (emit_library_call_value_1): Likewise.  Formatting.
12875         (store_one_arg): Likewise.
12876
12877 2003-02-09  Nick Clifton  <nickc@redhat.com>
12878             Aldy Hernandez  <aldyh@redhat.com>
12879
12880         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
12881         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
12882         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
12883         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
12884         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
12885         docs.  Add range test for immediate value.
12886
12887 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
12888
12889         Rename spe_evxor to xorv2si3.
12890         (xorv4hi3): New.
12891         (xorv1di3): New.
12892
12893 2003-02-10  Glen Nakamura  <glen@imodulo.com>
12894
12895         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
12896         tag.
12897
12898 2003-02-10  Jan Hubicka  <jh@suse.cz>
12899
12900         * i386.c (vector_move_operand): New predicate.
12901         (ix86_expand_vector_move): Be happy about 0.
12902         * i386.h (PREDICATE_CODES): Add sse-move_operand.
12903         * i386.md (mov*_internal): Add 'C' alternative.
12904
12905 2003-02-09  Jan Hubicka  <jh@suse.cz>
12906
12907         * i386.md (floathi*): Deal with SSE.
12908
12909 2003-02-09  Jan Hubicka  <jh@suse.cz>
12910
12911         * simplify-rtx.c (simplify_unary_operation,
12912         simplify_binary_operation):  Deal with vector modes
12913         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
12914
12915 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
12916
12917         * toplev.c (rest_of_compilation): Recompute register usage after
12918         split_all_insns.
12919
12920 2003-02-09  Richard Henderson  <rth@redhat.com>
12921
12922         * libgcc-std.ver (__clztf2): New.
12923         (__ctztf2, __popcounttf2, __paritytf2): New.
12924         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
12925         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
12926         adjust code to match the different type sizes.
12927         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
12928         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
12929
12930         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
12931         TImode; select word_mode and twice that.
12932         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
12933         select the modes from float, double, and long double.
12934         (init_optabs): Remove duplicate initializations.
12935
12936 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
12937
12938         * doc/install.texi: Squeeze and streamline section on
12939         testing and regression checking.
12940
12941 2003-02-09  Jan Hubicka  <jh@suse.cz>
12942
12943         * i386.md (ahi?v*3): Set third operand type to TImode.
12944         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
12945
12946         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
12947         integer mode.
12948
12949         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
12950         Change code so they are arithmetic expressions now.
12951         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
12952         simplify_ternary_operation): Deal with VEC_* expressions.
12953
12954         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
12955
12956 2003-02-08  Jan Hubicka  <jh@suse.cz>
12957
12958         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
12959         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
12960         possibly got duplicated.
12961
12962 2003-02-08  Richard Henderson  <rth@redhat.com>
12963
12964         * config/alpha/alpha.c (override_options): Turn off explicit
12965         relocs until post-peep2 code duplication resolved.
12966
12967 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12968
12969         * optabs.c (expand_unop): Widen clz properly when clz is done
12970         via libcall.
12971
12972 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12973
12974         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
12975         * config/h8300/crti.asm: Likewise.
12976         * config/h8300/crtn.asm: Likewise.
12977         * config/h8300/ctzsi2.c: Likewise.
12978         * config/h8300/fixunssfsi.c: Likewise.
12979         * config/h8300/h8300-protos.h: Likewise.
12980         * config/h8300/h8300.c: Likewise.
12981         * config/h8300/h8300.h: Likewise.
12982         * config/h8300/h8300.md: Likewise.
12983         * config/h8300/paritysi2.c: Likewise.
12984         * config/h8300/popcountsi2.c: Likewise.
12985         * config/h8300/rtems.h: Likewise.
12986
12987 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12988
12989         * doc/invoke.texi: Documentation for my previous commit.
12990         * doc/passes.texi: Ditto.
12991
12992 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12993
12994         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
12995         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
12996         Declare.
12997         (DLTHE_FLAG_UPDATE_FREQ): New.
12998         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
12999         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
13000         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
13001         fix_bb_placement, fix_bb_placements, place_new_loop,
13002         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
13003         New static functions.
13004         (fix_loop_placement, can_duplicate_loop_p,
13005         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
13006         New functions.
13007
13008         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
13009         unswitch_loops): Declare.
13010         * loop-init.c: New file.
13011         * loop-unswitch.c: New file.
13012         * Makefile.in (loop-init.o, loop-unswitch.o): New.
13013         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
13014         * toplev.c (DFI_loop2): New dump.
13015         (flag_unswitch_loops): New.
13016         (lang_independent_options): Add it.
13017         (rest_of_compilation): Call new loop optimizer.
13018         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
13019
13020 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13021
13022         * config/h8300/clzsi2.c: New.
13023         * config/h8300/ctzsi2.c: Likewise.
13024         * config/h8300/paritysi2.c: Likewise.
13025         * config/h8300/popcountsi2.c: Likewise.
13026         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
13027
13028 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
13029
13030         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
13031         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
13032         (ctzsi2): New pattern.
13033         (ffssi2): Use clz instead of unspec.
13034         (clzdi2): Rename from cntlzd2.
13035         (ctzdi2): New pattern.
13036         (ffsdi2): Use clz instead of unspec.
13037
13038 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
13039
13040         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
13041         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
13042         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
13043         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
13044
13045 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
13046
13047         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
13048
13049 2003-02-07  Richard Henderson  <rth@redhat.com>
13050
13051         PR 9226
13052         * gcse.c (local_cprop_find_used_regs): New.
13053         (local_cprop_pass): Use it.
13054
13055 2003-02-07  Fred Fish  <fnf@intrinsity.com>
13056
13057         * mips-tfile.c (parse_def): Parenthesize assignments to fix
13058         precedence bugs.
13059
13060 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
13061
13062         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
13063
13064 2003-02-07  Roger Sayle  <roger@eyesopen.com>
13065
13066         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
13067         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
13068         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
13069         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
13070         builtin functions (and their __builtin_* variants).
13071         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
13072         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
13073         when not optimizing.
13074
13075         * doc/extend.texi: Document new pow and atan2 builtins, and
13076         their float and long double variants.  Realphabetize builtins.
13077
13078 2003-02-07  Jan Hubicka  <jh@suse.cz>
13079
13080         * i386.md (sse2_nandv2di3): Fix.
13081
13082 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
13083
13084         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
13085         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
13086         definition.
13087         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
13088         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
13089
13090 2003-02-07  Jan Hubicka  <jh@suse.cz>
13091
13092         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
13093
13094 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
13095
13096         * cfg.c (dump_flow_info): Add back accidently deleted line.
13097
13098 2003-02-07  Andrey Petrov <petrov@netbsd.org>
13099
13100         * optabs.c (expand_float): Search wider integer modes first.
13101
13102 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
13103
13104         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
13105         based on preprocessor flag.
13106
13107 2003-02-07  Roger Sayle  <roger@eyesopen.com>
13108             Richard Henderson  <rth@redhat.com>
13109
13110         * gcse.c (implicit_sets): New.
13111         (compute_hash_table_work): Include them in hash table.
13112         (find_implicit_sets, fis_get_condition): New.
13113         (one_cprop_pass): Allocate and free implicit_sets; call
13114         find_implicit_sets before building hash table.
13115
13116 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
13117
13118         * config/t-netbsd (USER_H): Revert previous change.
13119
13120 2003-02-07  Gabor Greif  <ggreif@lucent.com>
13121
13122         * doc/c-tree.texi (Namespaces): Fix typo.
13123
13124 2003-02-07  Jan Hubicka  <jh@suse.cz>
13125
13126         * regrename.c (do_replace, find_oldest_value_reg,
13127         copyprop_hardreg_forward_1): Update register attributes.
13128
13129 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
13130
13131         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
13132         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
13133         variables starting with underscore.
13134         (struct unit_usage): New structure.
13135         (unit_usages, cycle_alt_unit_usages): New global variables.
13136         (check_unit_distribution_in_reserv): Remove it.
13137         (store_alt_unit_usage): New function.
13138         (check_regexp_units_distribution): Rewrite it.
13139
13140 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13141
13142         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
13143         target_cpu_default.
13144         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
13145         if not MASK_NO_SPACE_REGS.
13146         (output_call): Adjust return pointer, don't load new space register
13147         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
13148         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
13149         TARGET_NO_SPACE_REGS is true.
13150         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
13151         conditions.
13152         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
13153         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
13154         true.  Use bve when TARGET_64BIT is true.
13155
13156 2003-02-06  Richard Henderson  <rth@redhat.com>
13157
13158         * combine.c (nonzero_bits): Fix double break.
13159
13160 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
13161             Richard Henderson <rth@redhat.com>
13162
13163         PR c/9530
13164         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
13165         from functions that return a float to functions that don't.
13166
13167 2003-02-06  Jan Hubicka  <jh@suse.cz>
13168
13169         * i386.c (x86_inter_unit_moves): New variable.
13170         (ix86_secondary_memory_needed): Fix 64bit case, honor
13171         TARGET_INTER_UNIT_MOVES
13172         * i386.h (x86_inter_unit_moves): Declare.
13173         (TARGET_INTER_UNIT_MOVES): New macro.
13174         * i386.md (movsi_1): Cleanup constraints; disable
13175         when not doing inter-unit moves.
13176         (movsi_1_nointernunit): New.
13177         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
13178         (movdi_1_rex64_nointerunit): New.
13179         (mivsf_1): disable when not doing inter-unit moves.
13180         (movsf_1_nointerunit): New.
13181
13182         * basic-block.h (inside_basic_block_p):  Declare.
13183         * cfgbuild.c (inside_basic_block_p): Make global.
13184         * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
13185         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
13186         update CFG.
13187         (fix_basic_block_boundaries, add_missing_bbs): New.
13188         (rank): Use profile.
13189         (scheudle_ebbs): Rely on CFG; update coments.
13190
13191 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
13192
13193         * Makefile.in (host_hook_obj): New.
13194         (OBJS): Add $(host_hook_obj).
13195         (host_default.o): New rule.
13196         * config.gcc (host_hook_obj): New, default to host-default.o.
13197         (powerpc-*-darwin*): Use host-darwin.o.
13198         (out_host_hook_obj): New.
13199         * configure: Regenerate.
13200         * configure.in: Print information about out_host_hook_obj, substitute
13201         into output files.
13202         * host-default.c: New file.
13203         * hosthooks.h: New file.
13204         * toplev.c (general_init): Call host_hooks.extra_signals.
13205         * config/rs6000/host-darwin.c: New file.
13206         * config/rs6000/x-darwin: New file.
13207         * doc/hostconfig.texi: Add documentation for new host hook.
13208         Rearrange existing documentation.
13209
13210 2003-02-05  Roger Sayle  <roger@eyesopen.com>
13211
13212         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
13213         with *targetm.delegitimize_address.
13214         (rtl_for_decl_location): Likewise.
13215         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
13216         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
13217
13218         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
13219         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
13220         prototype.
13221         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
13222         i386_simplify_dwarf_addr.  Made static.  Prototyped.
13223         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
13224         i386_simplify_dwarf_addr to ix86_delegitimize_address.
13225         (ix86_find_base_term): Likewise.
13226         (maybe_get_pool_constant): Likewise.
13227
13228         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
13229         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
13230         prototype.
13231         * config/s390/s390.c (s390_delegitimize_address): Renamed from
13232         s390_simplify_dwarf_addr.  Made static.  Prototyped.
13233         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
13234
13235 2003-02-05  Richard Henderson  <rth@redhat.com>
13236
13237         PR c/8602
13238         * integrate.c (output_inline_function): Reset input_filename
13239         and lineno from the decl before rest_of_compilation.
13240
13241 2003-02-05  Richard Henderson  <rth@redhat.com>
13242
13243         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
13244         (CTZ_DEFINED_VALUE_AT_ZERO): New.
13245         * doc/rtl.texi, doc/tm.texi: Document them.
13246
13247         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
13248         of the value at zero properly.
13249         * fold-const.c (tree_expr_nonnegative_p): Likewise.
13250         * simplify-rtx.c (simplify_unary_operation): Likewise.
13251
13252         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
13253         (CTZ_DEFINED_VALUE_AT_ZERO): New.
13254
13255         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
13256         (TARGET_EXPAND_BUILTIN): Remove.
13257         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
13258         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
13259         (enum arm_builtins): Remove.
13260         * config/arm/arm.md (UNSPEC_CLZ): Remove.
13261         (clzsi2): Rename from clz; use clz instead of unspec.
13262         (ctzsi2): New.
13263         * config/arm/arm-protos.h: Update.
13264
13265 2003-02-05  Jan Hubicka  <jh@suse.cz>
13266
13267         * i386-protos.h (x86_emit_floatuns):  Declare.
13268         * i386.c (x86_emit_floatuns): New global function.
13269         * i386.md (floatunssisf2, floatunsdisf2,
13270         floatunsdidf2):  New patterns.
13271
13272 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13273
13274         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
13275
13276 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
13277
13278         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
13279           config/ia64/linux.h
13280
13281 2003-02-05  Roger Sayle  <roger@eyesopen.com>
13282
13283         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
13284
13285 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
13286
13287         PR optimization/8555
13288         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
13289         instead of aborting.
13290
13291 2003-02-04  Richard Henderson  <rth@redhat.com>
13292
13293         * config/i386/i386.md (UNSPEC_BSF): Remove.
13294         (ffssi2): Split into cmove and no_cmove insns and splitters;
13295         lose pentium float trick for now.
13296         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
13297         (ctzsi2, clzsi2, bsr): New.
13298
13299 2003-02-04  Richard Henderson  <rth@redhat.com>
13300
13301         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
13302         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
13303         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
13304         (ffsdi2): Use popcount instead of unspec.
13305         (popcountdi2): Rename from *popcnt.
13306         (ctzdi2, clzdi2, getf_exp_tf): New.
13307
13308 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13309
13310         * genconfig.c (main): Generate CC0_P.
13311         * rtl.h (CC0_P): Remove.
13312
13313 2003-02-04  Richard Henderson  <rth@redhat.com>
13314
13315         * libgcc2.h, libgcc2.c (__ffsSI2): New.
13316         (__ffsDI2): Rename from __ffsdi2.
13317         * mklibgcc.in (lib2funcs): Add _ffssi2.
13318
13319 2003-02-04  Richard Henderson  <rth@redhat.com>
13320
13321         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
13322         rounds with a "bit table" lookup.
13323
13324 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13325
13326         * reload.c (find_reloads): Do not use the mode specified in the insn
13327         pattern as reload mode for address operands.  Do not generate optional
13328         reloads for operands where a mandatory reload was already pushed.
13329
13330 2003-02-04  Richard Henderson  <rth@redhat.com>
13331
13332         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
13333         builtins instead of inline assembly.
13334
13335 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
13336
13337         PR c/9376
13338         * libgcc2.c (__subvdi3): Fix typo.
13339
13340 2003-02-04  Jan Hubicka  <jh@suse.cz>
13341
13342         * i386.md (movti_rex64):  Fix constraint.
13343
13344 2003-02-04  Jan Hubicka  <jh@suse.cz>
13345
13346         * i386.md (vector push splitters):  Fix typo in resolving conflict.
13347
13348 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
13349
13350         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
13351
13352 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
13353
13354         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
13355         for recent libstdc++.  Remove formatting cruft.
13356
13357 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
13358
13359         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
13360         attribute even if input file name is absolute, but one of the
13361         includes is relative.
13362
13363 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
13364
13365         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
13366         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
13367         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
13368
13369 2003-02-03  Richard Henderson  <rth@redhat.com>
13370
13371         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
13372         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
13373         return type to "int".  Shuffle declarations and undef int trap.
13374         * libgcc2.h: Remove their declarations.
13375         * optabs.c (expand_unop): Force outmode to int for bitops.
13376
13377 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
13378
13379         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
13380         coprocessor registers before floating-point registers.
13381         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
13382         to account for a previously removed register.
13383         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
13384         Delete unused macros.
13385
13386 2003-02-03  Jan Hubicka  <jh@suse.cz>
13387
13388         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
13389         (mov*_internal): Fix predicates; require one of operands to not be
13390         memory.
13391         (SSE?MMX move expanders):  Fix predicates; force one of operands to
13392         register.
13393         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
13394         (movups/movupd/movdqu patterns): Force one of operands to not be
13395         memory.
13396
13397 2003-02-03  Roger Sayle  <roger@eyesopen.com>
13398
13399         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
13400         takes a single rtx and returns it unmodified.
13401         * hooks.h (hook_rtx_rtx_identity): Prototype here.
13402         * target.h (struct gcc_target): Add "delegitimize_address"
13403         field to target structure.
13404         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
13405         for delegitimize_address target using hook_rtx_rtx_identity.
13406         (TARGET_INITIALIZER): Initialize delegitimize_address field
13407         using TARGET_DELEGITIMIZE_ADDRESS macro.
13408         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
13409         extensions of constant pool references.  Use delegitimize_address
13410         to undo the obfuscation of "-fpic".
13411         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
13412
13413         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
13414         i386_simplify_dwarf_addr.
13415         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
13416         (maybe_get_pool_constant): Likewise.
13417
13418 2003-02-03  Jan Hubicka  <jh@suse.cz>
13419
13420         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
13421
13422 2003-02-03  Jan Hubicka  <jh@suse.cz>
13423
13424         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
13425
13426 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13427
13428         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
13429         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
13430
13431 2003-02-02  Andreas Schwab  <schwab@suse.de>
13432
13433         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
13434
13435 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
13436
13437         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
13438         (epilogue_insns): Likewise.
13439
13440 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13441
13442         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
13443
13444 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13445
13446         * pa-protos.h (attr_length_millicode_call): Remove second argument.
13447         (attr_length_indirect_call, attr_length_indirect_call,
13448         attr_length_save_restore_dltp): New prototypes.
13449         * pa.c (attr_length_millicode_call): Remove second argument.  Check
13450         INSN_ADDRESSES_SET_P in distance calculation.
13451         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
13452         INSN_ADDRESSES.
13453         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
13454         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
13455         Call attr_length_call directly.
13456         (attr_length_indirect_call, output_indirect_call,
13457         attr_length_save_restore_dltp): New functions.
13458         * pa.md (attr_length_millicode_call): Drop second argument from all
13459         patterns.
13460         (return_internal_pic): Delete.
13461         (return_external_pic): Remove use of PIC register and pic operand and
13462         flag checks.
13463         (epilogue): Use return_internal for both normal and pic code.
13464         (call, call_value): Emit new 32-bit pic patterns for symref and
13465         indirect calls.  Remove uses for arg pointer and pic register.
13466         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
13467         call_reg_pic_post_reload, call_val_symref_pic,
13468         call_val_symref_pic_post_reload, call_val_reg_pic,
13469         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
13470         Implement define_split and define_peephole2 patterns for pre reload
13471         patterns.
13472         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
13473         call_value_internal_reg_64bit): Shorten names.
13474         (all call patterns): Explicitly indicate registers used and clobbered.
13475         Use attr_length_indirect_call and attr_length_save_restore_dltp for
13476         attribute length calculation.  Move code generation for indirect calls
13477         to output_indirect_call.
13478         (sibcall, sibcall_value): Don't restore PIC register.
13479         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
13480         register retore.
13481
13482 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13483
13484         * doc/install.texi (Testing): Simplify and compress instructions
13485         concerning Dejagnu.
13486
13487 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13488
13489         * collect2.c (pexecute_pid): Rename to pid.
13490         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
13491         pid.
13492
13493 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
13494
13495         * doc/extend.texi (Function Attributes): Remove documentation
13496         for PowerPC Windows NT function attributes..
13497
13498 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
13499
13500         * dwarf2out.c (gen_type_die): Check for typedefs before calling
13501         for TYPE_MAIN_VARIANT.
13502
13503 2003-02-01  Richard Henderson  <rth@redhat.com>
13504
13505         * libgcc2.c: Include auto-host.h.
13506         (ATTRIBUTE_HIDDEN): New.
13507         (__clz_tab): Don't declare here for clz and ctz.
13508         (__clzsi2, __clzdi2): Use count_leading_zeros.
13509         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
13510         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
13511         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
13512         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
13513
13514 2003-02-01  Richard Henderson  <rth@redhat.com>
13515
13516         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
13517         to the conditional.
13518         (ashlsi3_1_zext splitter): Likewise.
13519
13520 2003-02-01  Richard Henderson  <rth@redhat.com>
13521
13522         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
13523         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
13524         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
13525         return type to Wtype.
13526
13527         * libgcc-std.ver (GCC_3.4): Fix inheritance.
13528
13529         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
13530         expander input constraint.
13531
13532 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
13533
13534         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
13535         OTI_parity.
13536         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
13537         * optabs.c (widen_clz, expand_parity): New.
13538         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
13539         for libcalls to clz, ctz, popcount, and parity.
13540         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
13541         parity_optab, and set up libfunc handlers.
13542         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
13543         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
13544         __popcount_tab): New.
13545         * libgcc2.h: Declare them.
13546         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
13547         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
13548         and parity_optab.
13549         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
13550         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
13551         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
13552         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
13553         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
13554         BUILT_IN_PARITYLL): New.
13555         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
13556         and add optab argument.
13557         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
13558         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
13559         * expr.c (expand_expr): Handle them.
13560         * fold-const.c (tree_expr_nonnegative_p): Likewise.
13561         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
13562         * reload1.c (eliminate_regs): Handle them.
13563         (elimination_effects): Likewise.
13564         * function.c (instantiate_virtual_regs_1): Likewise
13565         * genattrtab.c (check_attr_value): Likewise.
13566         * simplify-rtx.c (simplify_unary_operation): Likewise.
13567         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
13568         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
13569         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
13570         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
13571         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
13572         __builtin_arm_clz.
13573         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
13574         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
13575         * doc/extend.texi (Other Builtins): Add new builtins.
13576         * doc/md.texi (Standard Names): Add new patterns.
13577
13578 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
13579
13580         * reload.c: Revert 2003-01-31 change.
13581
13582 2003-02-01  Jan Hubicka  <jh@suse.cz>
13583
13584         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
13585
13586 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
13587
13588         * flags.h (flag_volatile): Remove declaration.
13589         (flag_volatile_global, flag_volatile_static): Likewise.
13590         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
13591         * toplev.c (flag_volatile): Remove definition.
13592         (flag_volatile_global, flag_volatile_static): Likewise.
13593         (f_options): Remove corresponding entries here.
13594         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
13595         or flag_volatile_static.
13596         * doc/invoke.texi: Remove documentation of -fvolatile,
13597         -fvolatile-global and -fvolatile-static.
13598
13599 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13600
13601         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
13602         updating of total_code_bytes from prologue to epilogue.
13603
13604 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
13605
13606         * reload.c (find_reloads): Do not use the mode specified in the insn
13607         pattern as reload mode for address operands.  Do not generate optional
13608         reloads for operands where a mandatory reload was already pushed.
13609         Generate optional reloads only in the final pass though find_reloads.
13610         (have_replacement_p): New function.
13611
13612 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13613
13614         * doc/install.texi (Testing): Remove a reference to our obsolete
13615         /testresults web pages and strip redundant information concerning
13616         test results.
13617         (Binaries): Refer to Microsoft Windows instead of listing all
13618         possible variants.
13619
13620 2003-02-01  Jan Hubicka  <jh@suse.cz>
13621
13622         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
13623         RTL chain.
13624
13625         * combine.c (simplify_set): Reverse order of ragumetns to
13626         REG_CANNOT_CHANGE_MODE_P
13627         * df.c (df_def_record_1): Likewise.
13628         * recog.c (register_operand): Likewise.
13629         * simplify-rtx.c (simplify_subreg): Likewise.
13630         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
13631         CANNOT_CHANGE_MODE_CLASS.
13632         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
13633         Likewise.
13634         * reload.c (push_reload): Likewise.
13635         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13636         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13637         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13638         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
13639         * mips.c (mips_cannot_change_mode_class): Update.
13640         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13641         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13642         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13643         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
13644         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
13645         * sh.c (sh_cannot_change_mode_class): Update.
13646         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
13647         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
13648
13649 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
13650
13651         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
13652         change to LINK_COMMAND_SPEC in gcc.c.
13653
13654 2003-01-31  Jan Hubicka  <jh@suse.cz>
13655
13656         PR c/9506
13657         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
13658
13659 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13660
13661         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
13662         duplicated code.
13663
13664 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
13665
13666         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
13667         (BINFO_ELTS): New #define.
13668         * stor-layout.c (finalize_record_size): Don't set them.
13669         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
13670         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
13671         (BINFO_LANG_ELTS): New #define.
13672         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
13673         * java/class.c (make_class): Use BINFO_ELTS.
13674         (set_super_info): Likewse.
13675         (add_interface_do): Likewise.
13676         * objc/objc-act.c (start_class): Use BINFO_ELTS.
13677
13678 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
13679
13680         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
13681         (times): Don't ever declare if not HAVE_TIMES.
13682         (clock): Don't ever declare if not HAVE_CLOCK.
13683
13684 2003-01-30  Richard Henderson  <rth@redhat.com>
13685
13686         * flow.c (update_life_info): Zap life info after cleanup_cfg.
13687         (regno_uninitialized): Use correct live at function entry set.
13688         (regno_clobbered_at_setjmp): Likewise.
13689
13690         * expr.c (store_expr): Promote all MEM intermediates to regs.
13691
13692 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13693
13694         * config/arm/arm.c: Fix comment typos.
13695         * config/arm/arm.h: Likewise.
13696         * config/arm/netbsd-elf.h: Likewise.
13697         * config/arm/netbsd.h: Likewise.
13698
13699 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
13700
13701         * gengtype.c (struct walk_type_data): Add needs_cast_p.
13702         (walk_type): Set needs_cast_p in walk_type_data.
13703         (write_types_process_field): Supply casts when required to suppress
13704         warnings.
13705         (write_root): Cast gt_pch_n_S to suppress warning.
13706         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
13707         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
13708         when they might exist.
13709         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
13710         insn-conditions.o, and rs6000.o.
13711
13712 2003-01-30  Richard Henderson  <rth@redhat.com>
13713
13714         * ggc-page.c (G.context_depth_allocations): New.
13715         (G.context_depth_collections): New.
13716         (alloc_page): Set G.context_depth_allocations.
13717         (ggc_collect): Set G.context_depth_collections.
13718         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
13719         (ggc_pop_context): Early exit for no allocations or collections.
13720
13721 2003-01-30  Richard Henderson  <rth@redhat.com>
13722
13723         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
13724
13725 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
13726
13727         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
13728         size, the link register is always saved if any other register is
13729         saved.
13730
13731 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13732
13733         * config/h8300/h8300-protos.h: Update the prototype for
13734         compute_plussi_cc.
13735         (cpp_reader): Declare before it is used.
13736         * config/h8300/h8300.c (compute_plussi_cc): Change the return
13737         type to int.
13738         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
13739         see an unknown H8 variant.
13740
13741 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
13742
13743         PR target/9316
13744         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
13745         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
13746         * config/rs6000/t-rtems: New file. multilib variants to match OS.
13747         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
13748         rs6000/t-ppcgas so we get the desired multilibs.
13749
13750 2003-01-30  Nick Clifton  <nickc@redhat.com>
13751
13752         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
13753         when popping saved IP register off the stack.
13754
13755 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13756
13757         * config/rs6000/aix43.h: Fix comment typos.
13758         * config/rs6000/aix51.h: Likewise.
13759         * config/rs6000/aix52.h: Likewise.
13760         * config/rs6000/altivec.h: Likewise.
13761         * config/rs6000/rs6000.c: Likewise.
13762         * config/rs6000/rs6000.h: Likewise.
13763         * config/rs6000/rs6000.md: Likewise.
13764         * config/rs6000/spe.md: Likewise.
13765
13766 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
13767
13768         * c-common.c (builtin_define_float_constants): Define
13769         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
13770
13771 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13772
13773         * config/sh/lib1funcs.asm: Fix comment typos.
13774         * config/sh/linux.h: Likewise.
13775         * config/sh/sh.c: Likewise.
13776         * config/sh/sh.md: Likewise.
13777
13778 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
13779
13780         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
13781
13782 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
13783
13784         * config/fp-bit.h (__make_dp): Declare if TMODES.
13785
13786 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13787
13788         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
13789         general_operand_src and general_operand_dst.
13790
13791 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
13792
13793         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
13794         Return true for variable sized types.
13795         (rs6000_va_arg): Handle variable sized types passed by reference
13796         on non-SVR4 ABI.
13797
13798 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
13799
13800         * arm.c (arm_legtimize_address): New function.
13801         * arm-protos.h (arm_legtimize_address): Add prototype.
13802         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
13803         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
13804         do ... while (0)
13805
13806 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13807
13808         PR bootstrap/9296
13809         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
13810         depended on it being defined until now.
13811
13812 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13813
13814         PR target/9295
13815         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
13816         RTEMS code knows which C++ initialization style the toolset
13817         configuration is using.
13818
13819 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13820
13821         PR bootstrap/9293
13822         * config/m68k/t-crtstuff: Replace spaces with tabs, add
13823          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
13824
13825 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
13826
13827         PR bootstrap/9292
13828         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
13829         RTEMS threads.
13830         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
13831
13832 2003-01-29  Nick Clifton  <nickc@redhat.com>
13833
13834         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
13835         not $(srcdir).
13836
13837 2003-01-29  Andrew Haley  <aph@redhat.com>
13838
13839         * tree-inline.c (walk_tree): Add CHAR_TYPE.
13840
13841 2003-01-29  Jan Hubicka  <jh@suse.cz>
13842
13843         * i386.md (subdi3_carry_rex64): Fix typo.
13844
13845 2003-01-28  Stan Shebs  <shebs@apple.com>
13846
13847         * coretypes.h (cpp_reader): Forward declare struct.
13848         * c-pragma.h (cpp_reader): Remove forward declaration.
13849         * hashtable.h (cpp_reader): Likewise.
13850         * scan.h (cpp_reader): Likewise.
13851         * tree.h (cpp_reader): Likewise.
13852         * config/darwin-protos.h (cpp_reader): Likewise.
13853         * config/arm/arm-protos.h (cpp_reader): Likewise.
13854         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
13855         struct cpp_reader in prototypes.
13856
13857 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
13858
13859         * doc/install.texi: Add documentation for installation into
13860         tooldirs and with DESTDIR.
13861
13862 2003-01-28  Richard Henderson  <rth@redhat.com>
13863
13864         * config.gcc (ia64*-*-aix*): Remove.
13865         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
13866         * config/ia64/unwind-aix.c: Remove file.
13867
13868 2003-01-28  Andreas Schwab  <schwab@suse.de>
13869
13870         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
13871         register.
13872         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
13873         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
13874         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
13875         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
13876         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
13877         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
13878         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
13879
13880 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
13881
13882         * combine.c (nonzero_bits): Fix check for negative divide operands.
13883
13884 2003-01-28  Richard Henderson  <rth@redhat.com>
13885
13886         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
13887         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
13888
13889 2003-01-28  Richard Henderson  <rth@redhat.com>
13890
13891         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
13892
13893         * config/cris/cris.c (cris_address_cost): Make static.
13894         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
13895         * config/cris/cris.h (ADDRESS_COST): Remove.
13896         * config/cris/cris-protos.h: Update.
13897
13898 2003-01-23  Mike Stump  <mrs@apple.com>
13899
13900         * regclass.c (init_reg_autoinc): New function.
13901         (regclass): Move initialization of forbidden_inc_dec_class from
13902         here...
13903         (init_regs): to here.  Avoids reinitialization for each function,
13904         saving compilation time.
13905
13906 2003-01-28  Jason Merrill  <jason@redhat.com>
13907
13908         * cpplib.h (struct cpp_options): Add warn_deprecated field.
13909         * cppinit.c (cpp_create_reader): Turn it on by default.
13910         * c-opts.c (c_common_decode_option): Set it.
13911         * cpplib.c (do_pragma_once): Only complain about #pragma once
13912         if warn_deprecated is set.
13913
13914 2003-01-28  Dale Johannesen  <dalej@apple.com>
13915
13916         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
13917         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
13918         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
13919
13920 2003-01-28  Richard Henderson  <rth@redhat.com>
13921
13922         * target.h (targetm.address_cost): New.
13923         * target-def.h (TARGET_ADDRESS_COST): New.
13924         (TARGET_RTX_COSTS): Uncomment.  Oops.
13925         * cse.c (address_cost): Use new target hook.
13926         (default_address_cost): New.
13927         * output.h (default_address_cost): Declare.
13928         * hooks.c (hook_int_rtx_0): New.
13929         * hooks.h (hook_int_rtx_0): Declare.
13930         * loop.c (combine_givs_p): Remove if 0 code.
13931         * system.h (ADDRESS_COST): Poison.
13932
13933         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
13934         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
13935         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
13936         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
13937         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
13938         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
13939         config/xtensa/xtensa.c, config/xtensa/xtensa.h
13940         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
13941         (ADDRESS_COST): Remove.
13942
13943         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
13944         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
13945         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
13946         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13947         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
13948         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
13949         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
13950         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
13951         config/mips/mips.c, config/mips/mips.h,
13952         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
13953         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
13954         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
13955         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
13956         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
13957         config/vax/vax.c, config/vax/vax.h
13958         (foo_address_cost): Make static.
13959         (TARGET_ADDRESS_COST): New.
13960         (ADDRESS_COST): Remove.
13961
13962         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
13963         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
13964         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
13965         config/stormy16/stormy16.h
13966         (ADDRESS_COST): Move code ...
13967         (foo_address_cost): ... here.
13968         (TARGET_ADDRESS_COST): New.
13969
13970         * config/m32r/m32r.c (m32r_address_cost): Remove.
13971         * config/m32r/m32r-protos.h: Update.
13972
13973         * config/mmix/mmix.c (mmix_address_cost): Remove.
13974         * config/mmix/mmix-protos.h: Update.
13975
13976         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
13977         mn10300_address_cost; move unsig allocation ...
13978         (mn10300_address_cost): ... here.
13979         (TARGET_ADDRESS_COST): New.
13980         * config/mn10300/mn10300-protos.h: Update.
13981         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
13982
13983         * doc/tm.texi: Update.
13984
13985 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
13986
13987         * haifa-sched.c (schedule_insn): Return necessary cycle advance
13988         after issuing the insn.
13989         (rank_for_schedule): Make a insn with /S the highest priority
13990         insn.
13991         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
13992         (choose_ready): Check SCHED_GROUP_P.
13993         (schedule_block): Advance cycle after issuing insn if it is
13994         necessary.  Don't reorder insns if there is an insn with /S.
13995         (set_priorities): Ignore schedule groups.
13996
13997         * sched-deps.c (remove_dependence, group_leader): Remove the
13998         functions.
13999         (add_dependence): Ignore schedule groups.
14000         (set_sched_group_p): Don't make copy of dependencies from previous
14001         insn of the schedule group.  Add anti-dependency to the previous
14002         insn of the schedule group.
14003         (compute_forward_dependences): Ignore schedule groups.
14004
14005         * sched-ebb.c (init_ready_list): Ignore schedule groups.
14006
14007         * sched-rgn.c (init_ready_list): Ditto.
14008         (can_schedule_ready_p): Ditto.
14009
14010 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
14011
14012         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
14013         register to another one.
14014
14015 2003-01-28  Richard Henderson  <rth@redhat.com>
14016
14017         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
14018
14019 2003-01-28  Roger Sayle  <roger@eyesopen.com>
14020
14021         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
14022
14023 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
14024
14025         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
14026         class contains a floating-point register, return the size of the
14027         mode in half words.
14028
14029 2003-01-28  Jan Hubicka  <jh@suse.cz>
14030
14031         * i386.c (ix86_carry_flag_operator):  New predicate.
14032         (fcmov_operator): Fix whitespace.
14033         (ix86_expand_carry_flag_compare):  Deal with floating point.
14034         (ix86_expand_int_movcc): Deal with fp; update insn expansion
14035         (ix86_expand_int_addcc): Likewise.
14036         (ix86_expand_strlensi_unroll_1): likewsie.
14037         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
14038         * i386.md (add?i_carry_rex64): Use new predicate.
14039         (sub?i3_carry_rex64): Likewise.
14040         (x86_mov?icc_0_m1*): Likewise.
14041
14042 2003-01-28  Andreas Schwab  <schwab@suse.de>
14043
14044         * cfgloopmanip.c (create_preheader): Initialize src to avoid
14045         warning.
14046
14047         * expmed.c (emit_store_flag): Fix cast to avoid sign
14048         comparison warning.
14049
14050         * combine.c (force_to_mode): Add cast to fix warning when
14051         STORE_FLAG_VALUE is negative.
14052
14053 2003-01-27  Richard Henderson  <rth@redhat.com>
14054
14055         * Makefile.in (cse.o): Depend on TARGET_H.
14056         * cse.c (rtx_cost): Use targetm.rtx_costs.
14057         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
14058         * doc/tm.texi: Update.
14059
14060         * target.h (targetm.rtx_costs): New.
14061         * target-def.h (TARGET_RTX_COSTS): New.
14062         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
14063         * hooks.h: Update.
14064
14065         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
14066         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
14067         * config/alpha/alpha.h (PROCESSOR_MAX): New.
14068         (CONST_COSTS, RTX_COSTS): Remove.
14069
14070         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
14071         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
14072         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
14073         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
14074         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
14075         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
14076         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
14077         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
14078         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
14079         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
14080         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
14081         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
14082         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
14083         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
14084         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
14085         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
14086         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
14087         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
14088         config/v850/v850.c, config/v850/v850.h,
14089         config/xtensa/xtensa.c, config/xtensa/xtensa.h
14090         (CONST_COSTS, RTX_COSTS): Move code ...
14091         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
14092
14093         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
14094         (arm_rtx_costs, TARGET_RTX_COSTS): New.
14095         * config/arm/arm-protos.h: Update.
14096         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
14097
14098         * config/avr/avr.h (CONST_COSTS): Move code ...
14099         * config/avr/avr.c (avr_rtx_costs): ... here.
14100         (default_rtx_costs): Make static.
14101         * config/avr/avr-protos.h: Update.
14102
14103         * config/h8300/h8300.c (const_costs): Make static.
14104         (h8300_and_costs, h8300_shift_costs): Likewise.
14105         * config/h8300/h8300-protos.h: Update.
14106
14107         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
14108         (CONST_COSTS): Move code ...
14109         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
14110         default_rtx_costs; update for signature change.
14111         * config/ip2k/ip2k-protos.h: Update.
14112
14113         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
14114         (CONST_COSTS): Move code ...
14115         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
14116         (TARGET_RTX_COSTS): New.
14117         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
14118         * config/m68hc11/m68hc11-protos.h: Update.
14119
14120         * config/m68k/m68k.c (const_int_cost): Make static.
14121         * config/m68k/m68k-protos.h: Update.
14122
14123         * config/mcore/mcore.c (mcore_const_costs): Make static.
14124         (mcore_and_cost, mcore_ior_cost): Likewise.
14125         * config/mcore/mcore-protos.h: Update.
14126
14127         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
14128         (mmix_rtx_cost_recalculated): Remove.
14129         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
14130         * config/mmix/mmix-protos.h: Update.
14131
14132         * config/sh/sh.c (shiftcosts): Make static.
14133         (addsubcosts, andcosts, multcosts): Likewise.
14134         * config/sh/sh-protos.h: Update.
14135
14136         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
14137         (sparc_rtx_costs): Make static; update for change in signature.
14138         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
14139         * config/sparc/sparc-protos.h: Update.
14140
14141         * config/v850/v850.c (const_costs): Make static.
14142         * config/v850/v850-protos.h: Update.
14143
14144         * config/vax/vax.h (RTX_COSTS): Remove.
14145         (CONST_COSTS): Move code ...
14146         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
14147         from vax_rtx_cost.
14148         (vax_rtx_costs, TARGET_RTX_COSTS): New.
14149
14150 2003-01-27  Richard Henderson  <rth@redhat.com>
14151
14152         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
14153         * config/vax/vax-protos.h: Update.  Really.
14154
14155 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
14156
14157         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
14158         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
14159         zero if no hardware floating point.
14160         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
14161         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
14162         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
14163         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
14164         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
14165         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
14166         even FP registers on N32 and N64.
14167         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
14168         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
14169         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
14170         even-register-like alignment to 128-bit arguments.
14171         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
14172         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
14173         on N32 or N64.
14174         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
14175         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
14176         (TPBIT): Set to tp-bit.c.
14177         (tp-bit.c): Create out of fp-bit.c.
14178
14179 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14180
14181         * c-parse.in: Remove '%expect 32' directive in objc mode.
14182
14183 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
14184
14185         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
14186         (LIBGCOV): New variable.
14187         (libgcc.mk): Add LIBGCOV.
14188         (LIBGCC_DEPS): Add libgcov.c.
14189         (libgcov.a): New target.
14190         (clean): Remove libgcov.a.
14191         (install-libgcc): Do libgcov too.
14192         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
14193         with libgcov.a.
14194         * libgcc2.c (L_gcov): Move into ...
14195         * libgcov.c: ... here. New file.
14196         * mklibgcc.in: Add libgcov rules.
14197         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
14198
14199         * doc/invoke.texi (profile-arcs, test-coverage): Update and
14200         clarify.
14201
14202         * profile.c (index_counts_file): Remove duplicate check for open file.
14203
14204 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
14205
14206         * gcc/doc/invoke.texi (Optimization Options): Group together
14207         optional and experimental flags.  Move trapv and bounds-check
14208         out of this section.  Group floating point flags together.
14209         (Code Gen Options): Move trapv and bounds-check to here.
14210
14211 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
14212
14213         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
14214
14215 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
14216
14217         PR optimization/9090
14218         * function.c (purge_addressof_1): After pushing an addressed register
14219         onto the stack, simplify the result.
14220
14221 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14222
14223         * doc/extend.texi: Fix typo.
14224
14225 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14226
14227         * doc/cppopts.texi: Fix typo.
14228         * doc/objc.texi: Likewise.
14229         * doc/passes.texi: Likewise.
14230
14231 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
14232
14233         * real.c (ibm_extended_format): Add 53 to minimum exponent.
14234         (encode_ibm_extended): Adjust.
14235
14236 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
14237
14238         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
14239         timevar_id enumerations.
14240
14241 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14242
14243         * combine.c: Fix formatting.
14244
14245 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14246
14247         * doc/gccint.texi: Update the copyright.
14248
14249 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14250
14251         * doc/cpp.texi: Fix typos.
14252         * doc/extend.texi: Likewise.
14253         * doc/gty.texi: Likewise.
14254         * doc/install.texi: Likewise.
14255         * doc/passes.texi: Likewise.
14256         * doc/rtl.texi: Likewise.
14257         * doc/tm.texi: Likewise.
14258
14259 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14260
14261         * config/ia64/fde-glibc.c: Fix comment typos.
14262         * config/ia64/hpux.h: Likewise.
14263         * config/ia64/ia64.c: Likewise.
14264         * config/ia64/ia64.h: Likewise.
14265         * config/ia64/unwind-ia64.c: Likewise.
14266
14267 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14268
14269         * config/i386/i386-modes.def: Fix comment typos.
14270         * config/i386/i386.c: Likewise.
14271         * config/i386/i386.md: Likewise.
14272
14273 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
14274
14275         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
14276         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
14277         ASM_FINISH_DECLARE_OBJECT before defining it.
14278         * toplev.c (rest_of_decl_compilation):  Don't define
14279         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
14280         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
14281         parameters for DWARF2 targets because they _are_ used.
14282
14283 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
14284
14285         * fp-bit.h: Define macros for TFmode floating-point constants
14286         in IBM-extended TFmode types.
14287         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
14288         widths.
14289         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
14290         TFmode type.
14291
14292         * config/fp-bit.h: Define macros for TFmode floating-point
14293         constants in IEEE quad TFmode type.  Declare functions according
14294         to L_ macros.
14295         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
14296         (TFtype, TItype, UTItype): Define if TMODES is defined.
14297         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
14298         (F_T_BITOFF, D_T_BITOFF): Define.
14299         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
14300         guaranteed to be wide enough.
14301         * config/fp-bit.c: Check for L_ macros for tf functions.
14302         (__thenan_tf): New.
14303         (nan): Adjust.
14304         (pack_d, unpack_d): Support IEEE 854 quad type.
14305         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
14306         from FRAC_NBITS, FRAC_BITS and NGARDS.
14307         (usi_to_float): Cast constants to be shifted to fractype
14308         instead of assuming long long is wide enough.
14309         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
14310
14311 2003-01-26  Andreas Jaeger  <aj@suse.de>
14312
14313         * df.c: Remove prototype of unused function df_regno_rtl_debug.
14314
14315 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
14316
14317         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
14318         (DBBIT_FUNCS): Added _df_to_tf.
14319         (TPBIT_FUNCS): New.
14320         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
14321         (LIBGCC_DEPS): Added TPBIT.
14322         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
14323
14324         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
14325         been able to move the result to target.
14326
14327         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
14328         for the appropriate mode.
14329
14330         * calls.c (emit_library_call_value_1): Handle return values
14331         in a PARALLEL.
14332
14333         * rtl.c (get_mode_alignment): Moved to...
14334         * stor-layout.c: ... here.
14335
14336         * print-rtl.c (print_rtx): Don't print MEM details in
14337         GENERATOR_FILEs.
14338
14339 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
14340
14341         * df.h: Update comments, tidy formatting.
14342         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
14343         REVERSE, UNION, INTERSECTION.  All uses updated.
14344         (OLD_DF_INTERFACE): Remove.
14345         (struct insn_info): Remove commented out insn field.
14346         * df.c: Update comments, tidy formatting.
14347         (df_def_table_realloc): Remove.
14348
14349
14350 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
14351
14352         * calls.c (save_fixed_argument_area): Tidy.
14353         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
14354         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
14355         call chain loop at 1 if !try_tail_call.  Formatting.
14356         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
14357         Use save_fixed_argument_area and restore_fixed_argument_area.
14358
14359 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14360
14361         * df.c (df_uses_record): Handle CC0.
14362
14363 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
14364
14365         * reload.c (maybe_memory_address_p): New function.
14366         (find_reloads_address): Use it instead of memory_address_p.
14367
14368 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
14369
14370         * final.c (shorten_branches): Align the address of code label
14371         when computing initial lengths and addresses.
14372
14373 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14374
14375         * config/m68hc11/m68hc11.md: Fix a comment typo.
14376
14377 2003-01-25  Andreas Jaeger  <aj@suse.de>
14378
14379         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
14380         TARGET_MACHO.
14381
14382 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14383
14384         * gcse.c (bypass_last_basic_block): New global variable.
14385         (bypass_block):  Use redirect_edge_and_branch_force to redirect
14386         fall-through edges.  Use bypass_last_basic_block to determine
14387         which blocks have valid PRE information.
14388         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
14389
14390 2003-01-25  Jan Hubicka  <jh@suse.cz>
14391
14392         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
14393
14394 2003-01-25  Jan Hubicka  <jh@suse.cz>
14395                               Eric Botcazou <ebotcazou@libertysurf.fr>
14396         PR opt/8492
14397         * gcse.c (one_cprop_pass): Delete unreachable blocks.
14398
14399 2003-01-25  Richard Henderson  <rth@redhat.com>
14400
14401         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
14402         from ia64_aix_select_rtx_section.
14403         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
14404         instead of saving and restoring flag_pic.
14405         (ia64_rwreloc_unique_section): Similarly.
14406         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
14407         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
14408         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
14409         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
14410
14411 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14412
14413         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
14414         comment.
14415
14416 2003-01-25  Richard Henderson  <rth@redhat.com>
14417
14418         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
14419
14420 2003-01-25  Kelley Cook <kelleycook@comcast.net>
14421
14422         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
14423
14424 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
14425
14426         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
14427         type for bitmaps.  Use unsigned long.
14428         (nBITMAP_WORD_BITS): New macro.
14429         (BITMAP_WORD_BITS): New macro.
14430         (rest of file): Use it.
14431         * bitmap.c: Use it.
14432
14433 2003-01-25  Richard Henderson  <rth@redhat.com>
14434
14435         2002-02-19  Robert Lipe  <robertlipe@usa.net>
14436         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
14437
14438 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14439
14440         * builtins.c (purge_builtin_constant_p): Scan insn stream
14441         sequentially rather than by basic block.
14442         * function.c (purge_addressof): Simplify test with INSN_P.
14443
14444 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14445
14446         * combine.c (simplify_comparison, case AND): Remove a redundant test.
14447
14448 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14449
14450         * function.h (struct function): New field calls_constant_p.
14451         (current_function_calls_constant_p): New macro for above.
14452         * function.c (prepare_function_start): Initialize calls_eh_return
14453         and calls_constant_p.
14454         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
14455         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
14456         when the current_function_calls_constant_p.
14457         * integrate.c (expand_inline_function): Set calls_constant_p if
14458         the function being inlined has calls_constant_p set.
14459
14460 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14461
14462         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
14463         optimizing, even if flag_gcse is true.
14464         * toplev.c (rest_of_compilation): purge_builtin_constant_p
14465         only needs to be called when "optimize > 0 && flag_gcse".
14466
14467 2003-01-25  Roger Sayle  <roger@eyesopen.com>
14468
14469         * stmt.c (emit_case_bit_tests): New routine to implement suitable
14470         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
14471         (case_bit_test_cmp): New comparison function for "qsort" to order
14472         case_bit_tests by decreasing number of destination nodes.
14473         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
14474         (expand_end_case_type): Use emit_case_bit_tests to implement
14475         suitable switch statments.
14476         (CASE_USE_BIT_TESTS): New target macro to disable the above.
14477         * Makefile.in (stmt.o): Add dependency on optab.h.
14478         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
14479
14480 2003-01-23  Andreas Schwab  <schwab@suse.de>
14481
14482         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
14483         __do_global_ctors_aux hidden global and don't put it in
14484         .init_array.
14485         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
14486         instead so that it comes first.
14487
14488 2003-01-25  Jan Hubicka  <jh@suse.cz>
14489
14490         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
14491         subreg is read/modify.
14492
14493 2003-01-25  Jan Hubicka  <jh@suse.cz>
14494
14495         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
14496         do libcall for large blocks.
14497         * i386.md (comi patterns): Set type to ssecomi.
14498         (sse2_unpck?pd): Fix mode of vec_select.
14499
14500         * cse.c: Include except.h
14501         (cse_set_around_loop):  Do not create new basic blocks.
14502         * Makefile.in (cse.o): Add dependnecy on except.h
14503
14504 2003-01-25  Jan Hubicka  <jh@suse.cz>
14505
14506         * builtins.c (fold_trunc_transparent_mathfn): New function.
14507         (fold_builtin): Use it.
14508         * convert.c (convert_to_real): Re-enable code to convert
14509         math functions; add support for floor familly functions.
14510
14511 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14512
14513         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
14514         dependencies on coretypes.h and $(TM_H).
14515
14516 2003-01-25  Jan Hubicka  <jh@suse.cz>
14517
14518         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
14519
14520 2003-01-24  Stuart Hastings  <stuart@apple.com>
14521
14522         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
14523
14524 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14525
14526         * config/c4x/c4x.md (UNSPEC_BU): New constants.
14527         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
14528         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
14529         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
14530         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
14531         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
14532         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
14533         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
14534
14535 2003-01-24  Jan Hubicka  <jh@suse.cz>
14536
14537         * emit-rtl.c (reg_attrs_htab): New static variable.
14538         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
14539         functions.
14540         (reg_rtx): Do not maintain regno_decl.
14541         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
14542         set_mem_attrs_from_reg): New global function.
14543         (init_emit): Do not initialize regno_decl.
14544         (init_emit_once): initialize reg_attrs_htab.
14545         * final.c (alter_subreg): Do not replace REG by SUBREG.
14546         (gen_mem_expr_from_op): Improve output.
14547         (output_asm_operands): Likewise.
14548         * function.c (assign_params): Do not set REGNO_DECL.
14549         * function.h (struct function): Kill regno_decl.
14550         (REGNO_DECL): Kill.
14551         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
14552         * print_rtl.c (print_rtx): Output REG information.
14553         * regclass.c (reg_scan_mark_refs): Update attrs.
14554         * reload1.c (alter_reg): Likewise.
14555         * simplify_rtx.c (simplify_subreg): Likewise.
14556         * stmt.c (expand_decl): Likewise.
14557         * rtl.def (REG): Add new field.
14558         * rtl.h (struct reg_attrs): New.
14559         (rtunion_def): At rtreg.
14560         (X0MEMATTR): Add checking.
14561         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
14562         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
14563         Declare.
14564         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
14565
14566 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
14567
14568         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
14569         (xtensa_emit_call, print_operand): Fix printf format strings
14570         to avoid compile warnings.
14571         (xtensa_function_prologue, xtensa_function_epilogue): Change type
14572         of "size" argument to HOST_WIDE_INT to fix compile warnings.
14573         * config/xtensa/xtensa-protos.h
14574         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
14575
14576 2003-01-24  Jan Hubicka  <jh@suse.cz>
14577
14578         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
14579         (implicit_built_in_decls): New global array.
14580         (mathfn_built_in): New global function.
14581         (fold_trunc_transparent_mathfn): New static function
14582         (expand_builtin_strstr, expand_bultin_strchr,
14583         expand_builtin_strpbrk, expand_builtin_strcpy,
14584         expand_builtin_strncpy, expand_bultin_strcmp,
14585         expand_bultin_strncat, expand_builtin_fputs): Use
14586         implicint_built_in_decls.
14587         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
14588         * builtins.def: Fix comments.
14589         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
14590         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
14591         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
14592         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
14593         (DEF_C99_C90RES_BULTIN): New.
14594         (*f, *l builtins): Update.
14595         * c-common.c (DEF_BUILTIN): Initialize implicit array.
14596         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
14597         * convert.c (strip_float_extensions): New global function.
14598         * tree.h (DEF_BUILTIN): Accept 10 arguments.
14599         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
14600         Declare.
14601         * java/builtins.c (define_builtin): Handle implicit.
14602         (DEF_BUILTIN): Update.
14603         * tm.texi (TARGET_C99_FUNCTIONS): Document.
14604         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
14605         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
14606         when using glibc2.
14607
14608 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
14609
14610         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
14611         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
14612         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
14613         * config/xtensa/crti.asm: New file.
14614         * config/xtensa/crtn.asm: New file.
14615         * config/xtensa/t-elf: New file.
14616         * config/xtensa/t-linux: New file.
14617         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
14618         Move various CFLAGS settings to new t-elf file.
14619
14620 2003-01-24  Richard Henderson  <rth@redhat.com>
14621
14622         PR optimization/4382
14623         * tree-inline.c (find_builtin_longjmp_call_1): New.
14624         (find_builtin_longjmp_call): New.
14625         (inlinable_function_p): Use it.
14626
14627 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14628
14629         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
14630         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
14631         * config/i386/i386.c (function_arg_pass_by_reference): New.
14632         (ix86_va_arg): Support arguments passed by reference.
14633
14634 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14635
14636         * cfgloopanal.c: New file.
14637         * cfgloopmanip.c: New file.
14638         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
14639         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
14640         cfglayout.o): Add dependency on cfgloop.h.
14641         (cfgloop.o): Add flags.h dependency.
14642         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
14643         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
14644         (struct loop, struct loops, flow_loops_find, flow_loops_update,
14645         flow_loops_free, flow_loops_dump, flow_loop_dump,
14646         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
14647         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
14648         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
14649         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
14650         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
14651         find_common_loop, verify_loop_structure): Declarations moved to ...
14652         * cfgloop.h: New file.
14653         * bb-reorder.c (reorder_basic_blocks): Modified.
14654         * cfglayout.c: Include cfgloop.h.
14655         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
14656         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
14657         (break_superblocks): New static function.
14658         (cfg_layout_finalize): Use it.
14659         (cfg_layout_split_block): New function.
14660         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
14661         fields.
14662         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
14663         changed.
14664         (cfg_layout_split_block): Declare.
14665         * cfgloop.c: Include cfgloop.h and flags.h.
14666         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
14667         get_loop_body): Avoid signed versus unsigned comparison warnings.
14668         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
14669         loop_latch_edge): Modified.
14670         (verify_loop_structure): Modified to use flags stored in loop structure;
14671         check irreducible loops.
14672         (cancel_loop, cancel_loop_tree): New functions.
14673         (estimate_probability): Use loop analysis code for predictions.
14674         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
14675         warnings.
14676         * doloop.c: Include cfgloop.h.
14677         * loop.c: Include cfgloop.h.
14678         * predict.c: Include cfgloop.h.
14679         * toplev.c: Include cfgloop.h.
14680         * unroll.c: Include cfgloop.h.
14681         * tracer.c (tracer): Modified.
14682
14683 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14684
14685         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
14686
14687 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
14688
14689         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
14690         * configure: Regenerate.
14691
14692         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
14693         (tls_symbolic_reference_mentioned_p): Add prototype.
14694         (s390_tls_get_offset): Add prototype.
14695         (emit_pic_move): Remove prototype, replace by ...
14696         (emit_symbolic_move): .. this new prototype.
14697
14698         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
14699         (tls_model_chars): New global variable.
14700         (s390_encode_section_info): Encode TLS model.
14701         Use targetm.binds_local_p to check for local symbols.
14702         (s390_strip_name_encoding): New function.
14703         (TARGET_STRIP_NAME_ENCODING): Define.
14704
14705         (get_thread_pointer): New function.
14706         (legitimize_tls_address): New function.
14707         (legitimize_address): Call it.
14708         (emit_pic_move): Remove, replace by ...
14709         (emit_symbolic_move): ... this new function.
14710
14711         (larl_operand): Handle TLS operands.
14712         (legitimate_constant_p): Likewise.
14713         (s390_decompose_address): Likewise.
14714         (s390_cannot_force_const_mem): New function.
14715         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
14716
14717         (s390_output_symbolic_const): Handle TLS unspecs.
14718         (print_operand): New code 'J'.
14719         (machine_function): Add struct member 'some_ld_name'.
14720         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
14721
14722         (enum s390_builtin): New type.
14723         (code_for_builtin_64, code_for_builtin_31): New global variables.
14724         (s390_init_builtins, s390_expand_builtin): New functions.
14725         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14726
14727         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
14728         (ASM_OUTPUT_LABELREF): Define.
14729         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
14730
14731         * config/s390/s390.md: Define TLS UNSPEC constants.
14732         ("movdi", "movsi"): Handle TLS operands.
14733         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
14734         ("*tls_load_64", "*tls_load_31"): New insns.
14735         ("call_value_tls", "call_value_tls_exp"): New expanders.
14736         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
14737         "bas_tls_64", "bas_tls_31"): New insns.
14738
14739 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
14740
14741         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
14742         spe ABI is configured, if requested.
14743
14744 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14745
14746         * doc/passes.texi: Fix typo.
14747
14748 2003-01-24  Andreas Schwab  <schwab@suse.de>
14749
14750         * stor-layout.c (excess_unit_span): Only define if used.
14751
14752 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
14753
14754         * gcc/doc/invoke.texi (Optimization Options): List -O levels
14755         for each optimization flag.
14756
14757 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14758
14759         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
14760
14761 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14762
14763         * doc/bugreport.texi: Use @command instead of @code for commands.
14764         * doc/collect2.texi: Likewise.
14765         * doc/headerdirs.texi: Likewise.
14766         * doc/invoke.texi: Likewise.
14767         * doc/standards.texi: Likewise.
14768         * doc/tm.texi: Likewise.
14769         * doc/trouble.texi: Likewise.
14770
14771 2003-01-24  Nick Clifton  <nickc@redhat.com>
14772
14773         * config/arm/arm.c (use_return_insn): Do not use a single return
14774         instruction for interrupt handelrs which have to create a stack
14775         frame.
14776         (arm_expand_prologue): Do not pre-bias the return address of
14777         interrupt handlers which create a stack frame.
14778
14779 2003-01-24  Nick Clifton  <nickc@redhat.com>
14780
14781         * Add sh2e support:
14782
14783         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
14784
14785                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
14786                 med_cbranches.  Fix logic in short_cbranches.
14787
14788         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
14789
14790                 * config/sh/sh.md (delay for cbranch): Don't annul delay
14791                 slots on SH2e.
14792                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
14793                 cbranch with unfilled delay slot on SH2e.
14794                 (output_branch): Fill with a nop the delay slot of a
14795                 branch that required a delay slot but didn't get one.
14796
14797         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
14798
14799                 * doc/invoke.texi (SH options): Document -m2e.
14800                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
14801                 * config/sh/lib1funcs.asm: Likewise.
14802                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
14803                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
14804                 not __sh1__.
14805                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
14806                 SH2E up.
14807                 (SH3E_BIT): Renamed to...
14808                 (SH_E_BIT): ... this.  Replace all uses.
14809                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
14810                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
14811                 (TARGET_SWITCHES): Added 2e.
14812                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
14813                 (processor_type): Added PROCESSOR_SH2E.
14814                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
14815                 TARGET_SH2E, except in sqrtsf2_i.
14816                 (attribute cpu): Added sh2e.
14817                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
14818                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
14819                 * config.gcc: Add sh2e target support.
14820
14821 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
14822
14823         Rename -W to -Wextra.
14824         * c-decl.c:  Update comments.
14825         * c-typeck.c:  Likewise.
14826         * flags.h:  Likewise.
14827         * function.c:  Likewise.
14828         * stmt.c:  Likewise.
14829         * toplev.c:  Update comments.
14830         (W_options):  Add 'extra'.
14831         (display_help):  Remove '-W'.
14832         (decode_W_option):  Special warn_uninitialized treatment in the case
14833         of -Wextra.
14834         * doc/invoke.texi:  Update with new entries.
14835
14836 2003-01-23  Richard Henderson  <rth@redhat.com>
14837
14838         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
14839         in no-else-block case.  Add commentary.
14840
14841 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14842
14843         * configure.in: Revert last change.
14844
14845 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14846
14847         * configure.in: Don't include ansidecl.h in tconfig.h.
14848         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED: Define if IN_LIBGCC2.
14849         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
14850         ATTRIBUTE_UNUSED.
14851
14852         * configure: Regenerate.
14853
14854 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14855
14856         PR java/6748
14857         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
14858         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
14859         kernels.
14860
14861 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14862
14863         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
14864
14865 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
14866
14867         * genattrtab.c (write_attr_get): Mark 'insn' paramter
14868         as ATTRIBUTE_UNUSED.
14869
14870 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
14871
14872         * arm.c (thumb_base_register_rtx_p): New function.
14873         (thumb_index_register_rtx_p): New function.
14874         (thumb_legitimate_address_p): New function.
14875         (thumb_legitimate_offset_p): New function.
14876         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
14877         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
14878         definitions.
14879         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
14880         (THUMB_LEGITIMATE_OFFSET): Delte.
14881         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
14882         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
14883         (thumb_legitimate_offset_p): Likewise.
14884
14885 2003-01-23  Andreas Schwab  <schwab@suse.de>
14886
14887         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
14888
14889 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14890
14891         * fixinc/Makefile.in (FL_LIST): Revert last change.
14892
14893 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14894
14895         PR other/7341
14896         * invoke.texi (ftest-coverage): Fix broken cross-reference.
14897         Change @code to @command for gcov command.
14898
14899         * gcc.texi: Adjust title of gcov section.
14900         Adjust copyright.
14901         * gcov.texi: Likewise.
14902
14903 2003-01-22  Roger Sayle  <roger@eyesopen.com>
14904
14905         PR optimization/8423
14906         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
14907         its argument is constant, or 0 if !flag_gcse.
14908         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
14909         if it's argument is constant.
14910         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
14911         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
14912         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
14913         * builtins.c (purge_builtin_constant_p): New function to force
14914         instantiation of any remaining CONSTANT_P_RTX nodes.
14915         * rtl.h (purge_builtin_constant_p): Prototype here.
14916         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
14917         pass after GCSE and before loop.
14918         (flag_gcse): No longer static.
14919         * flags.h (flag_gcse): Prototype here.
14920
14921 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14922
14923         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
14924         introduced by last change.
14925
14926 2003-01-22  Andreas Schwab  <schwab@suse.de>
14927
14928         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
14929
14930 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14931
14932         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
14933         request a scratch reg on H8S when the shift count is 8.
14934
14935 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14936
14937         * config/s390/s390-protos.h (preferred_la_operand_p):
14938         Remove second parameter.
14939         * config/s390/s390.c (preferred_la_operand_p): Likewise.
14940         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
14941         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
14942         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
14943         Add peepholes to transform ADD to LOAD ADDRESS.
14944
14945 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
14946
14947         * arm.c (arm_address_register_rtx_p): New function.
14948         (arm_legitimate_address_p): New function.
14949         (arm_legitimate_index_p): New function.
14950         (legitimize_pic_address): Use arm_legitimate_index_p.
14951         * arm-protos.h (arm_legtimate_address_p): Add prototype.
14952         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
14953         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
14954
14955 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
14956
14957         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
14958         * config/s390/2064.md (define_bypass): Correct 'Load' and
14959         'Load-address' bypass values.
14960
14961 2003-01-22  Andreas Schwab  <schwab@suse.de>
14962
14963         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
14964
14965 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
14966
14967         * genautomata.c (output_internal_insn_latency_func,
14968         output_print_reservation_func): Short circuit when there is no
14969         automaton to generate code for.
14970
14971 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14972
14973         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
14974         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
14975
14976 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
14977
14978         * config/rs6000/rs6000.md: Remove warning.
14979         (builtin_setjmp_receiver): Likewise.
14980         * config/darwin.c (update_stubs): Slightly improve terrible hack
14981         with identifiers.  Add comment pointing out problems with it.
14982         (update_non_lazy_ptrs): Likewise.
14983
14984 2003-01-21  Richard Henderson  <rth@redhat.com>
14985
14986         * dwarf2out.c (lookup_filename): Fix printf format warning.
14987         * system.h (fread_unlocked, fwrite_unlocked): Undef.
14988
14989         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
14990         (fixincl.o-warn, gnu-regex.o-warn): New.
14991         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
14992         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
14993         * fixinc/fixincl.c (process): Fix printf format warning.
14994
14995 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
14996
14997         * dwarf2out (output_file_names): Don't crash if called
14998         with empty file_table.
14999
15000 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15001
15002         * genautomata.c (output_internal_insn_latency_func): Add
15003         missing break statement to generated code.
15004
15005 2003-01-21  Roger Sayle  <roger@eyesopen.com>
15006
15007         * stmt.c (same_case_target_p): New function to determine whether
15008         two case labels branch to the same target.  Split out from...
15009         (group_case_nodes): ... here.  Use same_case_target_p instead.
15010         (strip_default_case_nodes): Remove explicit case nodes
15011         that branch to the default destination.
15012         (expand_end_case_type): Call strip_default_case_nodes after
15013         group_case_nodes, to simplify the case-list before we count it.
15014         Only generate table_label RTX when actually needed.  Try to share
15015         thiscase->exit_label and thiscase->data.case_stmt.default_label
15016         when a switch has no explicit default case.  Simplify test for
15017         constant index.
15018
15019 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15020
15021         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
15022         \t.
15023         (*negsf2_h8300hs): Likewise.
15024         (*addsi3_lshiftrt_16_zexthi): Likewise.
15025         (*iorhi3_lshiftrt_8): Likewise.
15026
15027 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
15028
15029         * dwarf2out.c (fde_table_in_use): Mark GTY.
15030         (dwarf2out_cfi_label_num): New variable, marked GTY.
15031         (dwarf2out_cfi_label): Use it instead of static label_num.
15032         * emit-rtl.c (label_num): Mark GTY.
15033
15034 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15035
15036         * config/h8300/h8300.c (output_plussi): Support H8/300.
15037         (compute_plussi_length): Likewise.
15038         (compute_plussi_cc): Likewise.
15039         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
15040         output assembly instructions.
15041
15042 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15043
15044         * calls.c (fix_unsafe_tree): Prototype.
15045
15046         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
15047         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
15048         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
15049         c-parse.o-warn): Add -Wno-error.
15050         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
15051
15052         * configure.in (--enable-werror): Add new flag.
15053         * doc/install.texi (--enable-werror): Document.
15054         * configure: Regenerate.
15055
15056         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
15057
15058 2003-01-21  Andreas Schwab  <schwab@suse.de>
15059
15060         * genautomata.c (output_internal_insn_latency_func): Fix missing
15061         close paren in output.
15062
15063 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
15064
15065         * genautomata.c: Space savings in generated code:
15066         (output_dfa_insn_code_func): Split out the table-enlargement
15067         path to an out-of-line static function, dfa_insn_code_enlarge.
15068         (output_internal_insn_latency_func): Use a lookup table for the
15069         default latencies.
15070         (output_print_reservation_func): Use a lookup table for the
15071         strings.
15072
15073 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
15074
15075         PR opt/7507
15076         * calls.c (fix_unsafe_tree): Split out from ...
15077         (expand_call): ... here.  Use it on the function address too.
15078
15079 2003-01-20  Richard Henderson  <rth@redhat.com>
15080
15081         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
15082
15083 2003-01-20  Richard Henderson  <rth@redhat.com>
15084
15085         PR opt/7154
15086         * stmt.c (expand_asm_operands): Validize memory operands.
15087
15088 2003-01-20  Richard Henderson  <rth@redhat.com>
15089
15090         PR opt/8848
15091         * ifcvt.c (noce_process_if_block): Correct arguments to
15092         modified_between_p for no-else-block case.
15093
15094 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15095
15096         * config/h8300/h8300.c (const_costs): Remove a warning.
15097         (output_plussi): Likewise.
15098         (compute_plussi_length): Likewise.
15099         (compute_plussi_cc): Likewise.
15100
15101 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15102
15103         * config/h8300/h8300.md (addsi_h8300): Remove the last
15104         alternative.
15105
15106 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15107
15108         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
15109
15110 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15111
15112         * system.h (__NO_STRING_INLINES): Define.
15113
15114 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15115
15116         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
15117         is not a scalar int mode.
15118
15119 2003-01-20  Roger Sayle  <roger@eyesopen.com>
15120
15121         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
15122         insn's notes following a substitution inside a libcall.
15123
15124 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
15125
15126         * configure.in: Check for system-provided 'uchar' type.
15127         * configure, config.in: Regenerate.
15128         * cpphash.h: Only typedef 'uchar' if the system doesn't.
15129
15130 2003-01-20  Richard Henderson  <rth@redhat.com>
15131
15132         * expr.h (MUST_PASS_IN_STACK): Move implementation...
15133         * calls.c (default_must_pass_in_stack): ... here.
15134
15135 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
15136
15137         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
15138
15139         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
15140
15141         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
15142         Wrap up definition of `insn_alts'.
15143
15144         * genattrtab.c (main): Wrap up `insn_alts'.
15145
15146 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15147
15148         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
15149         prototyping.
15150         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
15151
15152         * config.in, configure: Regenerate.
15153
15154 2003-01-20  Nick Clifton  <nickc@redhat.com>
15155
15156         * config/arm/arm.md (sibcall_epilogue): Add an
15157         UNSPEC_PROLOGUE_USE to prevent the link register from being
15158         considered dead.
15159
15160 2003-01-20  Jan Hubicka  <jh@suse.cz>
15161
15162         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
15163
15164 2003-01-20  Andreas Schwab  <schwab@suse.de>
15165
15166         * system.h: Don't declare strsignal if the decl test hasn't been
15167         run yet.
15168
15169 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15170
15171         * config/h8300/h8300.c (notice_update_cc): Don't assume that
15172         recog_data.operands[0] is always associated with cc0.
15173
15174 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
15175
15176         * collect2.c (ldgetname): Expand declaration to prototype.
15177         * read-rtl.c (atoll): Add prototype.
15178         * system.h (strsignal): Also declare if no declaration found.
15179
15180 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
15181
15182         * config.gcc (mips64*-*-linux*): Added.
15183         * config/mips/linux64.h, config/mips/t-linux64: New file.
15184         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
15185         * config/mips/mips.c (override_options): Use it.
15186         * config/mips/mips.h (TARGET_SWITCHES): Added...
15187         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
15188         * Makefile.in (SPECS): New.
15189         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
15190         * gcc.c (process_command): Move self-spec processing past spec
15191         file loading.
15192         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
15193         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
15194         CRTSTUFF_T_CFLAGS.
15195         (SPECS): Document.
15196         * doc/invoke.texi (-mabi-fake-default): Document.
15197
15198 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
15199
15200         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
15201         z_reg, z_reg_qi): Declare static and GTY().
15202         (da_reg): Remove.
15203         (create_regs_rtx): Don't create da_reg.
15204         ("gt-m68hc11.h"): Include for GTY roots.
15205         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
15206         and GTY() here.
15207         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
15208         (m68hc11_soft_tmp_reg): Likewise.
15209         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
15210
15211 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15212
15213         * basic-block.h: Fix comment formatting.
15214         * calls.c: Likewise.
15215         * combine.c: Likewise.
15216         * convert.c: Likewise.
15217         * gcov.c: Likewise.
15218         * haifa-sched.c: Likewise.
15219         * libgcc2.c: Likewise.
15220         * loop.c: Likewise.
15221         * profile.c: Likewise.
15222         * system.h: Likewise.
15223
15224 2003-01-18  Roger Sayle  <roger@eyesopen.com>
15225
15226         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
15227
15228 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15229
15230         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
15231
15232 2003-01-17  Dale Johannesen  <dalej@apple.com>
15233
15234         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
15235           (*floatunssidf2_internal):  Ditto.
15236
15237 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15238
15239         * alias.c: Fix comment typos.
15240         * basic-block.h: Likewise.
15241         * c-common.c: Likewise.
15242         * c-common.h: Likewise.
15243         * c-decl.c: Likewise.
15244         * c-opts.c: Likewise.
15245         * c-pragma.c: Likewise.
15246         * c-pretty-print.h: Likewise.
15247         * cfg.c: Likewise.
15248         * cfganal.c: Likewise.
15249         * cfgbuild.c: Likewise.
15250         * cfgcleanup.c: Likewise.
15251         * cfglayout.c: Likewise.
15252         * cfgrtl.c: Likewise.
15253         * convert.c: Likewise.
15254         * cpphash.h: Likewise.
15255         * cpplex.c: Likewise.
15256         * cpplib.h: Likewise.
15257         * df.h: Likewise.
15258         * diagnostic.c: Likewise.
15259         * diagnostic.h: Likewise.
15260         * dwarf2.h: Likewise.
15261
15262 2003-01-17  Stan Shebs  <shebs@apple.com>
15263
15264         * config/darwin-protos.h: Forward-declare struct cpp_reader.
15265
15266 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
15267
15268         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
15269         mistake in last checkin.
15270
15271 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
15272
15273         * et-forest.c: Fix comment typos.
15274         * et-forest.h: Likewise.
15275         * except.c: Likewise.
15276         * expr.c: Likewise.
15277         * flags.h: Likewise.
15278         * flow.c: Likewise.
15279         * gcc.c: Likewise.
15280         * gcse.c: Likewise.
15281         * genattrtab.c: Likewise.
15282         * genautomata.c: Likewise.
15283         * gengtype.c: Likewise.
15284         * genrecog.c: Likewise.
15285         * global.c: Likewise.
15286         * gthr-rtems.h: Likewise.
15287
15288 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15289
15290         * i386.c (x86_function_profiler): Fix format specifier.
15291
15292 2003-01-17  Richard Henderson  <rth@redhat.com>
15293
15294         * gengtype.c (walk_type): Allow paramN_is.
15295
15296 2003-01-17  Nick Clifton  <nickc@redhat.com>
15297
15298         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
15299
15300 2003-01-16  Richard Henderson  <rth@redhat.com>
15301
15302         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
15303
15304 2003-01-16  Richard Henderson  <rth@redhat.com>
15305
15306         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
15307         (alpha_next_sequence_number): Likewise.
15308         (alpha_this_literal_sequence_number): Likewise.
15309         (alpha_this_gpdisp_sequence_number): Likewise.
15310         (struct alpha_funcs, alpha_funcs_num): Likewise.
15311         (struct alpha_links): Fix branch merge error.
15312         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
15313
15314 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
15315
15316         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
15317         R. Ghazi.
15318
15319 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15320
15321         * ifcvt.c: Fix comment typos.
15322         * lcm.c: Likewise.
15323         * libgcc2.c: Likewise.
15324         * local-alloc.c: Likewise.
15325         * loop.c: Likewise.
15326         * predict.c: Likewise.
15327         * ra-build.c: Likewise.
15328         * ra.c: Likewise.
15329         * ra-colorize.c: Likewise.
15330         * ra.h: Likewise.
15331         * ra-rewrite.c: Likewise.
15332         * regmove.c: Likewise.
15333         * reload.h: Likewise.
15334         * rtlanal.c: Likewise.
15335         * toplev.c: Likewise.
15336         * tree.h: Likewise.
15337         * unwind-dw2-fde-glibc.c: Likewise.
15338         * vmsdbgout.c: Likewise.
15339
15340 2003-01-16  Richard Henderson  <rth@redhat.com>
15341
15342         * dwarf2out.c (struct file_table): Remove.
15343         (FILE_TABLE_INCREMENT): Remove.
15344         (file_table): Make a varray; mark for GC.  Update all users.
15345         (file_table_last_lookup_index): Extract from struct file_table.
15346         (output_file_names): Fix unsigned compare warnings.
15347         (add_name_attribute): Remove inline marker.
15348         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
15349         (lookup_filename): Don't manage size of file_table.
15350         (init_file_table): Allocate file_table with GC.
15351         (dwarf2out_init): Don't record main_input_filename here.
15352         (dwarf2out_finish): Do it here instead.
15353
15354 2003-01-16  Bruce Korb  <bkorb@gnu.org>
15355
15356         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
15357
15358 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
15359
15360         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
15361         instead of rotldi3_mextr.
15362
15363 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
15364
15365         * haifa-sched.c (move_insn): Restore moving all schedule group.
15366         (set_priorities): Restore taking SCHED_GROUP_P into account.
15367
15368         * sched-deps.c (add_dependence): Restore processing the last group
15369         insn.
15370         (remove_dependence, group_leader): Restore the functions.
15371         (set_sched_group_p): Restore adding dependencies from previous insn
15372         in the group.
15373         (compute_forward_dependences): Restore usage of group_leader.
15374
15375         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
15376         account.
15377
15378         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
15379         account.
15380         (can_schedule_ready_p): Ditto.
15381         (add_branch_dependences): Restore skipping over the group insns.
15382
15383 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
15384
15385         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
15386         68HC12 pre/post inc/dec side effects.
15387
15388 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
15389
15390         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
15391
15392 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
15393
15394         * sh.md (mshflo_w_x): Fix description of operation.
15395
15396 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
15397
15398         * config/rs6000/rs6000.h: Mention Altivec registers in
15399         commentary.  Fix typo.
15400
15401 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
15402
15403         * config/rs6000/rs6000.md (movti_string): Remove clobber.
15404         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
15405         generate PARALLEL with clobber for TARGET_POWER.
15406
15407 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15408
15409         * ra-colorize.c (colorize_one_web): Initialize variable.
15410         * regmove.c (fixup_match_1): Likewise.
15411         * reload1.c (reload_as_needed): Likewise.
15412         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
15413
15414 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15415
15416         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
15417
15418 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15419
15420         * dbxout.c (lastfile, cwd): Fix `unused' warning.
15421         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
15422         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
15423         is_main_source, file_table, decl_die_table_in_use,
15424         abbrev_die_table_in_use, line_info_table_in_use,
15425         separate_line_info_table_in_use, pubname_table_in_use,
15426         arange_table_in_use, ranges_table_in_use,
15427         current_function_has_inlines): Likewise.
15428         * flow.c (life_analysis): Likewise.
15429         * genemit.c (gen_insn): Likewise.
15430         * protoize.c (cplus_suffix): Likewise.
15431
15432         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
15433         * arm.h (ROUND_UP_WORD): Likewise.
15434
15435         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
15436         warning.
15437         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
15438         init_emit_once): Likewise.
15439         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
15440         Likewise.
15441         * function.c (assign_stack_temp_for_type): Likewise.
15442         * loop.c (loop_invariant_p): Likewise.
15443         * recog.c (push_operand): Likewise.
15444         * regclass.c (init_reg_sets_1): Likewise.
15445         * reload.c (update_auto_inc_notes): Likewise.
15446         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
15447         * stmt.c (expand_asm_operands): Likewise.
15448         * stor-layout.c (start_record_layout): Likewise.
15449
15450 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
15451
15452         * config/c4x/c4x.md (epilogue): Correct last patch.
15453
15454 2003-01-15  Richard Henderson  <rth@redhat.com>
15455
15456         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
15457         also check that GP is being used.
15458         (alpha_find_lo_sum_using_gp): New.
15459         (alpha_does_function_need_gp): Use get_attr_usegp.
15460         * config/alpha/alpha-protos.h: Update.
15461         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
15462         as needed.
15463
15464 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15465
15466         * gcse.c (one_cprop_pass): Change function arguments to take both
15467         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
15468         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
15469         (bypass_jumps): New function to perform separate jump bypassing pass.
15470         * rtl.h (bypass_jumps): Add function prototype.
15471         * timevar.def (TV_BYPASS): New timing variable.
15472         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
15473         (dump_file): New entry for the bypass RTL dump file.
15474         (rest_of_compilation): Insert new jump bypassing optimization
15475         pass after loop.
15476         * doc/passes.texi: Document new pass.
15477
15478 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15479
15480         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
15481         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
15482         * pa.h (TARGET_SOM_SDEF): Define.
15483         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
15484
15485 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
15486
15487         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
15488         allocate 4-bytes of locals on 68HC11.
15489         (expand_epilogue): Likewise.
15490         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
15491
15492 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
15493
15494         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
15495         and -mshort-double to the assembler to specify the ABI.
15496         (LINK_SPEC): Likewise.
15497         (CPP_SPEC): Pass HCS12 specific define.
15498         (MASK_M68S12): New define.
15499         (TARGET_M68S12): Likewise.
15500         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
15501         (TARGET_VERSION): Update.
15502         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
15503         (LINK_SPEC): Update.
15504         (ASM_SPEC): Update.
15505         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
15506         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
15507
15508 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
15509
15510         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
15511         the return code.
15512
15513 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
15514
15515         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
15516         flag before setting it.
15517
15518 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15519
15520         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
15521         when loop condition is known true, i.e.  "while (1) { ... }".
15522         (genrtl_for_stmt): Similarly for "for" statements.
15523
15524 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15525
15526         * real.c (real_sqrt): Return a bool result indicating whether
15527         a floating point exception or trap should be raised.
15528         * real.h (real_sqrt): Update function prototype.
15529         * builtins.c (fold_builtin): Only fold non-trapping square
15530         roots unless we're ignoring errno and trapping math.
15531
15532 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
15533
15534         * expr.h (emit_conditional_add): Add PARAMS to declaration.
15535         * gengtype-lex.l (malloc, realloc): Move defines after include of
15536         system.h.  Remove duplicate include of system.h.
15537
15538 2003-01-15  Roger Sayle  <roger@eyesopen.com>
15539
15540         PR middle-end/9009
15541         * optabs.c (expand_unop):  When manipulating the FP sign bit
15542         using integer operations, account for targets with different
15543         integer and FP word orders.
15544         (expand_abs): Likewise.
15545
15546 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
15547
15548         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
15549         file extension in section name.
15550
15551 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
15552
15553         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
15554         constant offset.
15555
15556 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
15557
15558         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
15559         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
15560         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
15561         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
15562
15563 2003-01-15  Jan Hubicka  <jh@suse.cz>
15564
15565         PR f/9258
15566         * global.c (struct allocno): Add no_stack_reg.
15567         (global_conflicts): Set no_stack_reg.
15568         (find_reg): Use it.
15569
15570         * convert.c (convert_to_real): Fold - and abs only when profitable.
15571         * fold-const.c (fold): Fold truncates in - and abs.
15572
15573 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
15574
15575         Segher Boessenkool  <segher@koffie.nl>
15576
15577         * predict.c (real_inv_br_prob_base): New variable.
15578         (propagate_freq): Use multiply by reciprocal instead of
15579         division.  Don't divide by 1.0 at all.
15580         (estimate_bb_frequencies): Similar.
15581
15582 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
15583
15584         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
15585         * configure: Rebuilt.
15586
15587 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
15588
15589         * config/s390/s390.c (s390_safe_attr_type): New function.
15590         (s390_use_dfa_pipeline_interface): New function, return true for z900.
15591         (s390_issue_rate): New function.
15592         (s390_agen_dep_p): New function.
15593         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
15594         (s390_adjust_cost): Return 'cost' if new DFA is used.
15595         (s390_adjust_priority): Delete function.
15596         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
15597         * config/s390/s390.md (atype attribute): Attribute 'atype' default
15598         determined by 'op_type'.
15599         (type attribute): Added more type attributes.
15600         * config/s390/2064.md: New DFA description for z900 pipeline.
15601
15602 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
15603
15604         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
15605         forced to memory.  Fixes PR bootstrap/9036.
15606
15607         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
15608         to set $gp before the call.
15609
15610 2003-01-14  Richard Henderson  <rth@redhat.com>
15611
15612         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
15613         for force_const_mem.
15614
15615 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15616
15617         * genattr.c (main): Rearrange output to avoid prototype warning.
15618         * genautomata.c (transform_3): Fix ambiguous-else warning.
15619         * local-alloc.c (requires_inout): Add parentheses around
15620         assignment used as truth-value.
15621         * timevar.c: Move system includes above local includes.  Include
15622         toplev.h
15623         * Makefile.in (timevar.o): Depend on toplev.h.
15624
15625 2003-01-14  Denis Chertykov  <denisc@overta.ru>
15626
15627         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
15628         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
15629
15630         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
15631         attributes.
15632         (TARGET_ATTRIBUTE_TABLE): New macro.
15633         (valid_machine_type_attribute): Remove.
15634         (valid_machine_decl_attribute): Remove.
15635         (ip2k_handle_progmem_attribute): New function.
15636         (ip2k_handle_fndecl_attribute): New function.
15637
15638 2003-01-10  Andrew Haley  <aph@redhat.com>
15639
15640         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
15641         registers to be in correct order.  Add rip.
15642
15643 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15644
15645         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
15646         (*iorsi3_and_lshiftrt_9_sb): Likewise.
15647
15648 2003-01-14  Jan Hubicka  <jh@suse.cz>
15649
15650         * convert.c (strip_float_extensions):  Look for narrowest type handling
15651         FP constants.
15652
15653         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
15654         float1 CMP float2.
15655         * convert.c (strip_float_extensions): Make global.
15656         * tree.h (strip_float_extensions): Declare.
15657
15658 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15659
15660         * timevar.def: define TV_NAME_LOOKUP.
15661         * timevar.c (timevar_pop): Be verbose when aborting.
15662
15663 2003-01-13  Andreas Schwab  <schwab@suse.de>
15664
15665         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
15666         $(parsedir), just move the temporary file at the end.
15667         ($(parsedir)/gengtype-yacc.c): Likewise.
15668
15669 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
15670
15671         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
15672         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
15673         splitting.
15674         * configure: Rebuilt.
15675
15676 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15677
15678         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
15679         internal_mcount): Don't use PARAMS.
15680         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
15681         ISO C style.
15682         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
15683
15684 2003-01-13  Andreas Schwab  <schwab@suse.de>
15685
15686         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
15687         directive.
15688
15689 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15690
15691         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
15692         (*iorsi3_and_lshiftrt_n_sb): Likewise.
15693
15694 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
15695
15696         PR c++/9264
15697         * c-lex.c (c_lex): Set the token value to error_mark_node for
15698         invalid numeric constants.
15699
15700 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15701
15702         * c-pch.c (asm_file_startpos): Change to `long'.
15703         (pch_init): Use ftell, not ftello.
15704         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
15705         Use `long' instead of `off_t'.
15706         (c_common_read_pch): Likewise.
15707         * ggc-common.c (gt_pch_save): Use long/ftell instead of
15708         off_t/ftello.
15709
15710 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
15711
15712         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
15713
15714 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
15715
15716         * arm-protos.h (struct cpp_reader): Add declaration.
15717
15718 2003-01-11  Jan Hubicka  <jh@suse.cz>
15719
15720         PR target/9068
15721         * i386.c (output_fp_compare): Fix typo.
15722
15723 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
15724
15725         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
15726
15727 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
15728
15729         * Makefile.in (parsedir): New variable.
15730         (docobjdir): New variable.
15731         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
15732         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
15733         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
15734         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
15735         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
15736         Use docobjdir.
15737         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
15738         objc.maintainer-clean): Use parsedir.
15739
15740         * varasm.c (struct constant_descriptor_rtx): Remove unused
15741         `label' field.
15742
15743         * toplev.c (documented_lang_options): Document -Winvalid-pch.
15744
15745 2003-01-10  Richard Henderson  <rth@redhat.com>
15746
15747         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
15748         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
15749
15750 2003-01-10  Richard Henderson  <rth@redhat.com>
15751
15752         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
15753         not INTEGRAL_MODE_P when widening extensions.
15754
15755 2003-01-10  Richard Henderson  <rth@redhat.com>
15756
15757         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
15758
15759 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
15760
15761         * ggc-page.c (ggc_collect): Avoid overflow computing
15762         min_expand.
15763
15764         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
15765         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
15766         Remove calls.
15767         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
15768
15769 2003-01-10  Jan Hubicka  <jh@suse.cz>
15770
15771         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
15772         with weird operands.
15773
15774 2003-01-10  Dale Johannesen <dalej@apple.com>
15775
15776         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
15777         parameters.  Call check_sibcall_argument_overlap if indicated.
15778         (check_sibcall_argument_overlap):  Add mark_stored_args_map
15779         parameter.  Don't mark parameter area as clobbered if not set.
15780         (expand_call):  Adjust calls to above.
15781
15782 2003-01-10 Kelley Cook <kelleycook@comcast.net>
15783
15784         * configure.in (linker read-only and read-write section mixing):
15785         Squelch some assembler warnings.
15786         * configure: Likewise.
15787
15788 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
15789
15790         * doc/invoke.texi: Document -mtune, delete -mcpu
15791         option for S/390 and zSeries.
15792         * config/s390/s390.c (s390_tune_string) New variable.
15793         (s390_cpu_string) Delete variable.
15794         (override_options): Use s390_tune_string instead of
15795         s390_cpu_string.
15796         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
15797
15798 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
15799
15800         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
15801
15802 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
15803
15804         * jump.c (next_nonnote_insn_in_loop): New function.
15805         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
15806         next_nonnote_insn.
15807         (duplicate_loop_exit_test). Likewise.
15808
15809 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
15810
15811         Merge from pch-branch:
15812
15813         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
15814
15815         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
15816         load.
15817
15818         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
15819
15820         * cpplib.c (count_registered_pragmas): New function.
15821         (save_registered_pragmas): New function.
15822         (_cpp_save_pragma_names): New function.
15823         (restore_registered_pragmas): New function.
15824         (_cpp_restore_pragma_names): New function.
15825         * cpphash.h (_cpp_save_pragma_names): Prototype.
15826         (_cpp_restore_pragma_names): Likewise.
15827         * cpppch.c (struct save_macro_item): Split from save_macro_data.
15828         (struct save_macro_data): New field 'saved_pragmas'.
15829         (save_macros): Update for changes to struct save_macro_data.
15830         (cpp_prepare_state): Call _cpp_save_pragma_names, update
15831         for changes to struct save_macro_data.
15832         (cpp_read_state): Call _cpp_restore_pragma_names, update
15833         for changes to struct save_macro_data.
15834
15835         * cpppch.c (cpp_read_state): Restore the hashtable references
15836         in the cpp_reader.
15837
15838         * tree.h (built_in_decls): Mark for PCH.
15839
15840         * dbxout.c (lastfile): Don't mark for PCH.
15841
15842         * ggc.h: Document PCH calls into memory managers.
15843
15844         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
15845
15846         * doc/invoke.texi (Precompiled Headers): Document the
15847         directory form of PCH.
15848         * cppfiles.c (validate_pch): New function.
15849         (open_file_pch): Search suitably-named directories for PCH files.
15850
15851         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
15852
15853         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
15854         reorder options.
15855         (Type Information): Mention that the information is also
15856         used to implement PCH.
15857         * doc/passes.texi (Passes): Improve documentation of
15858         language-specific files.
15859
15860         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
15861
15862         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
15863         (struct walk_type_data): Add reorder_fn field.
15864         (walk_type): Process 'reorder' option.
15865         (write_types_process_field): Reorder parameters to gt_pch_note_object,
15866         call reorder_note_routine.
15867         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
15868         (ggc_wtd): Update for change to struct write_types_data.
15869         (pch_wtd): Likewise.
15870         * ggc.h (gt_pch_note_object): Reorder parameters.
15871         (gt_handle_reorder): New definition.
15872         (gt_pch_note_reorder): New prototype.
15873         * ggc-common.c (struct ptr_data): Add reorder_fn.
15874         (gt_pch_note_object): Reorder parameters.
15875         (gt_pch_note_reorder): New.
15876         (gt_pch_save): Call reorder_fn.
15877         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
15878
15879         * dbxout.c (cwd): Don't mark for PCH.
15880
15881         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
15882
15883         * gengtype.c (finish_root_table): Fix some warnings.
15884         (write_root): Handle TYPE_STRING.
15885         * ggc.h (gt_ggc_m_S): Add prototype.
15886         * stringpool.c (gt_ggc_m_S): New function.
15887
15888         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
15889
15890         * dwarf2out.c (dw2_string_counter): New.
15891         (AT_string_form): Use it.
15892         (same_dw_val_p): Update for removal of hashtable.h hash tables.
15893
15894         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
15895
15896         * dbxout.c: Include gt-dbxout.h.
15897         (lastfile): Mark for PCH/GGC.
15898         (cwd): Likewise.
15899         (struct typeinfo): Likewise.
15900         (typevec): Likewise.
15901         (typevec_len): Likewise.
15902         (next_type_number): Likewise.
15903         (struct dbx_file): Likewise.
15904         (current_file): Likewise.
15905         (next_file_number): Likewise.
15906         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
15907         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
15908         (dbxout_end_source_file): Don't free struct dbx_file.
15909         (dbxout_type): Use GGC to allocate typevec.
15910         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
15911         (GTFILES): Add dbxout.c.
15912         (gt-dbxout.h): New rule.
15913
15914         * Makefile.in (c-pch.o): Add debug.h as dependency.
15915         * c-pch.c: Include debug.h.
15916         (pch_init): Call start_source_file to keep nesting right.
15917         (c_common_read_pch): Add orig_name parameter.  Call
15918         start_source_file debug hook.  Call end_source_file debug hook.
15919         * c-common.h (c_common_read_pch): Update prototype.
15920         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
15921         callback.
15922         * cppfiles.c (struct include_file): Add new field `header_name'.
15923         (find_or_create_entry): Default it to `name'.
15924         (open_file_pch): Set it to the original header file searched for.
15925         (stack_include_file): Don't stack an empty buffer, just handle
15926         PCH files immediately.  Pass header_name field to read_pch callback.
15927
15928         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
15929
15930         * function.c (funcdef_no): Mark to be saved in a PCH.
15931
15932         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
15933
15934         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
15935
15936         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
15937
15938         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
15939
15940         * optabs.h (code_to_optab): Add GTY marker.
15941
15942         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
15943
15944         * Makefile.in (GTFILES): Add cpplib.h.
15945         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
15946         * c-decl.c (build_compound_literal): Don't use var_labelno.
15947         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
15948         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
15949         * varasm.c (const_labelno): Use gengtype to mark.
15950         (var_labelno): Likewise.
15951         (in_section): Likewise.
15952         (in_named_name): Likewise.
15953         (struct in_named_entry): Likewise.
15954         (in_named_htab): Likewise.
15955         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
15956         (init_varasm_once): Use GGC to allocate in_named_htab.
15957         * config/darwin.c (current_pic_label_num): Mark for PCH.
15958
15959         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
15960
15961         * ggc-simple.c (init_ggc_pch): New stub procedure.
15962         (ggc_pch_count_object): Likewise.
15963         (ggc_pch_total_size): Likewise.
15964         (ggc_pch_this_base): Likewise.
15965         (ggc_pch_alloc_object): Likewise.
15966         (ggc_pch_prepare_write): Likewise.
15967         (ggc_pch_write_object): Likewise
15968         (ggc_pch_finish): Likewise.
15969         (ggc_pch_read): Likewise.
15970
15971         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
15972
15973         * c-pch.c (c_common_write_pch): Write the macro definitions after
15974         the GCed data.
15975         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
15976         definitions after the GCed data.
15977         * cpplib.c (save_macros): New.
15978         (reset_ht): New.
15979         (cpp_write_pch_deps): Split out of cpp_write_pch.
15980         (cpp_write_pch_state): Split out of cpp_write_pch.
15981         (cpp_write_pch): Delete.
15982         (struct save_macro_data): Delete.
15983         (cpp_prepare_state): New.
15984         (cpp_read_state): Erase and restore initial macro definitions.
15985         * cpplib.h (struct save_macro_data): Forward-declare.
15986         (cpp_write_pch_deps): Prototype.
15987         (cpp_write_pch_state): Prototype.
15988         (cpp_write_pch): Delete prototype.
15989         (cpp_prepare_state): Prototype.
15990         (cpp_read_state): Add fourth argument.
15991
15992         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
15993
15994         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
15995         (write_array): Remove warning.
15996
15997         * gengtype.c (contains_scalar_p): New.
15998         (finish_root_table): Add the table to all languages, even if it's
15999         empty.
16000         (write_roots): Output gt_pch_scalar_rtab.
16001         * ggc-common.c (gt_pch_save): Write out scalars.
16002         (gt_pch_restore): Read scalars back.
16003
16004         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
16005         (struct page_entry): Delete pch_page field.
16006         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
16007         (clear_marks): Likewise.
16008         (sweep_pages): Likewise.
16009         (poison_pages): Likewise.
16010         (ggc_print_statistics): Likewise.
16011         (ggc_pch_read): Don't free objects read from a PCH.
16012         Properly set up in_use_p and page_tails.
16013
16014         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
16015
16016         * gengtype.c (struct write_types_data): New.
16017         (struct walk_type_data): Make `cookie' const; add extra
16018         prev_val item; add `orig_s' field.
16019         (walk_type): Update prev_val[3].
16020         (write_types_process_field): New.
16021         (write_func_for_structure): Take write_types_data structure.
16022         (write_types): New.
16023         (ggc_wtd): New.
16024         (pch_wtd): New.
16025         (write_types_local_process_field): New.
16026         (gc_mark_process_field): Delete.
16027         (write_local_func_for_structure): New.
16028         (gc_mark_func_name): Delete.
16029         (write_gc_types): Delete.
16030         (write_local): New.
16031         (finish_root_table): Don't include 'ggc_' in PFX.
16032         (write_root): Rename from write_root.  Fill pchw field of structures.
16033         (write_array): New.
16034         (write_roots): Rename from write_gc_roots.  Split out to write_array.
16035         Update to changes to other routines.  Write gt_pch_cache_rtab table.
16036         (main): Write PCH walking routines.
16037         * ggc-common.c: Include toplev.h, sys/mman.h.
16038         (ggc_mark_roots): For cache hashtables, also mark the hash table
16039         and the array of entries.
16040         (saving_htab): New.
16041         (struct ptr_data): New.
16042         (POINTER_HASH): New.
16043         (gt_pch_note_object): New.
16044         (saving_htab_hash): New.
16045         (saving_htab_eq): New.
16046         (struct traversal_state): New.
16047         (call_count): New.
16048         (call_alloc): New.
16049         (compare_ptr_data): New.
16050         (relocate_ptrs): New.
16051         (write_pch_globals): New.
16052         (struct mmap_info): New.
16053         (gt_pch_save): New.
16054         (gt_pch_restore): New.
16055         * ggc-page.c (ROUND_UP_VALUE): New.
16056         (ROUND_UP): New.
16057         (struct page_entry): Add field `pch_page'.
16058         (init_ggc): Use ROUND_UP.
16059         (struct ggc_pch_data): Declare.
16060         (init_ggc_pch): New.
16061         (ggc_pch_count_object): New.
16062         (ggc_pch_total_size): New.
16063         (ggc_pch_this_base): New.
16064         (ggc_pch_alloc_object): New.
16065         (ggc_pch_prepare_write): New.
16066         (ggc_pch_write_object): New.
16067         (ggc_pch_finish): New.
16068         (ggc_pch_read): New.
16069         * ggc.h (gt_pointer_operator): New.
16070         (gt_note_pointers): New.
16071         (gt_pch_note_object): New prototype.
16072         (gt_pointer_walker): New.
16073         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
16074         (LAST_GGC_ROOT_TAB): Update.
16075         (gt_pch_cache_rtab): Declare.
16076         (gt_pch_scalar_rtab): Declare.
16077         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
16078         (LAST_GGC_CACHE_TAB): Update.
16079         (gt_pch_save_stringpool): Declare.
16080         (gt_pch_restore_stringpool): Declare.
16081         (gt_pch_p_S): Declare.
16082         (gt_pch_n_S): Declare.
16083         (struct ggc_pch_data): Forward-declare.
16084         (init_ggc_pch): Declare.
16085         (ggc_pch_count_object): Declare.
16086         (ggc_pch_total_size): Declare.
16087         (ggc_pch_this_base): Declare.
16088         (ggc_pch_alloc_object): Declare.
16089         (ggc_pch_prepare_write): Declare.
16090         (ggc_pch_write_object): Declare.
16091         (ggc_pch_finish): Declare.
16092         (ggc_pch_read): Declare.
16093         (gt_pch_save): Declare.
16094         (gt_pch_restore): Declare.
16095         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
16096         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
16097         const_double_htab, mem_attrs_htab using GGC.
16098         * c-pch.c: Include ggc.h.
16099         (pch_init): Allow reading PCH file back.
16100         (c_common_write_pch): Call gt_pch_save.
16101         (c_common_read_pch): Call gt_pch_restore.
16102         * c-parse.in (init_reswords): Delete now-untrue comment.
16103         Allocate ridpointers using GGC.
16104         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
16105         calling expand_deferred_fns.
16106         * c-common.h (ridpointers): Mark for GTY machinery.
16107         * Makefile.in (stringpool.o): Update dependencies.
16108         (c-pch.o): Update dependencies.
16109         (ggc-common.o): Update dependencies.
16110         * stringpool.c: Include gt-stringpool.h.
16111         (gt_pch_p_S): New.
16112         (gt_pch_n_S): New.
16113         (struct string_pool_data): New.
16114         (spd): New.
16115         (gt_pch_save_stringpool): New.
16116         (gt_pch_restore_stringpool): New.
16117         * tree.c (init_ttree): Make type_hash_table allocated using GC.
16118
16119         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
16120
16121         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
16122         (output_mangled_typename): Don't pass size_t to printf.
16123
16124         * tree.h (union tree_type_symtab): Add tag to `address' field.
16125         (union tree_decl_u2): Add tag to 'i' field.
16126         * varasm.c (union rtx_const_un): Add tags to all fields.
16127         * gengtype.c (struct walk_type_data): New.
16128         (output_escaped_param): Take struct walk_type_data parameter.
16129         (write_gc_structure_fields): Delete.
16130         (walk_type): New.
16131         (write_gc_marker_routine_for_structure): Delete.
16132         (write_func_for_structure): New.
16133         (gc_mark_process_field): New.
16134         (gc_mark_func_name): New.
16135         (gc_counter): Delete.
16136         (write_gc_types): Use write_func_for_structure.
16137         (write_gc_roots): Use walk_type.
16138
16139         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
16140
16141         * ggc-common.c (ggc_mark_roots): Delete 'x'.
16142         (ggc_splay_dont_free): Fix warning about unused 'x'.
16143         (ggc_print_common_statistics): Remove warnings.
16144
16145         2002-10-01  Mike Stump  <mrs@apple.com>
16146
16147         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
16148         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
16149
16150         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
16151             Catherine Moore  <clm@redhat.com>
16152
16153         * Makefile (c-pch.o): Update dependencies.
16154         (LIBCPP_OBJS): Add cpppch.o.
16155         (cpppch.o): New.
16156         * c-common.c (c_common_init): Don't call pch_init here.
16157         * c-common.h (c_common_read_pch): Update prototype.
16158         * c-lex.c (c_common_parse_file): Call pch_init here.
16159         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
16160         (c_common_decode_option): Handle them.
16161         * c-pch.c: Include c-pragma.h.
16162         (save_asm_offset): Delete.
16163         (pch_init): Move contents of save_asm_offset into here, call
16164         cpp_save_state.
16165         (c_common_write_pch): Call cpp_write_pch.
16166         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
16167         cpp_valid_state.
16168         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
16169         * cppfiles.c (stack_include_file): Update for change to
16170         parameters of cb.read_pch.
16171         * cpphash.h (struct cpp_reader): Add `savedstate' field.
16172         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
16173         `restore_pch_deps' fields.
16174         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
16175         (cpp_save_state): Prototype.
16176         (cpp_write_pch): Prototype.
16177         (cpp_valid_state): Prototype.
16178         (cpp_read_state): Prototype.
16179         * cpppch.c: New file.
16180         * flags.h (version_flag): Remove prototype.
16181         * mkdeps.c (deps_save): New.
16182         (deps_restore): New.
16183         * mkdeps.h (deps_save): Prototype.
16184         (deps_restore): Prototype.
16185         * toplev.c (late_init_hook): Delete.
16186         (version_flag): Make static again.
16187         (compile_file): Don't call late_init_hook.
16188         * toplev.h (late_init_hook): Delete.
16189         * doc/cppopts.texi: Document -fpch-deps.
16190         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
16191
16192         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
16193
16194         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
16195         callers.
16196         (c_common_valid_pch): Rename from c_valid_pch, change callers.
16197         (c_common_read_pch): Rename from c_read_pch, change callers.
16198
16199         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
16200         a space between it and its argument.
16201
16202         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
16203
16204         * c-pch.c: New file.
16205         * toplev.h (late_init_hook): Declare.
16206         * toplev.c (late_init_hook): Define.
16207         (version_flag): Make globally visible.
16208         (compile_file): Call late_init_hook.
16209         (init_asm_output): Make output file seekable.
16210         * gcc.c (default_compilers): Update c-header rule.
16211         * flags.h (version_flag): Declare.
16212         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
16213         fields.
16214         * cppfiles.c (struct include_file): Add 'pch' field.
16215         (INCLUDE_PCH_P): New.
16216         (open_file_pch): New.
16217         (stack_include_file): Handle PCH files specially.
16218         (find_include_file): Call open_file_pch instead of open_file.
16219         (_cpp_read_file): Explain why open_file is used instead of
16220         open_file_pch.
16221         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
16222         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
16223         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
16224         in cpplib callbacks.
16225         * c-common.c (pch_file): Correct comment.
16226         (allow_pch): Define.
16227         (c_common_init): Call pch_init.
16228         * c-common.h (allow_pch): Declare.
16229         (pch_init): Declare.
16230         (c_valid_pch): Declare.
16231         (c_read_pch): Declare.
16232         (c_write_pch): Declare.
16233         * Makefile.in (c-pch.o): New.
16234         (C_AND_OBJC_OBJS): Add c-pch.o.
16235         * doc/invoke.texi (Precompiled Headers): Add index entries,
16236         complete truncated paragraph.
16237
16238         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
16239
16240         * c-common.c: (pch_file): Define.
16241         * c-common.h (pch_file): Declare.
16242         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
16243         (missing_arg): Require --output-pch= to have an argument.
16244         (c_common_decode_option): Handle --output-pch=.
16245         * gcc.c: Document new %V.
16246         (default_compilers): Handle compiling C header files.
16247         (do_spec_1): Implement %V.
16248         (main): Handle "gcc foo.h" without trying to run linker.
16249         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
16250         (Overall Options): Document what the driver does with header files,
16251         document new -x option possibilities.
16252         (Invoking G++): More documentation for PCH.
16253         (Precompiled Headers): New.
16254
16255         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
16256
16257         * ggc.h: Don't include varray.h.  Rearrange functions to be more
16258         organized.
16259         (ggc_add_root): Delete.
16260         (ggc_mark_rtx): Delete.
16261         (ggc_mark_tree): Delete.
16262         (struct ggc_statistics): Remove contents.
16263         * ggc-common.c: Remove unneeded includes.
16264         (struct ggc_root): Delete.
16265         (roots): Delete.
16266         (ggc_add_root): Delete.
16267         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
16268         (ggc_print_common_statistics): Remove most of the contents.
16269         * Makefile.in (GGC_H): No longer uses varray.h.
16270         (ggc-common.o): Update dependencies.
16271         (c-parse.o): Add varray.h to dependencies.
16272         (c-common.o): Add varray.h.
16273         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
16274         (mark_ident_hash): Rename to ggc_mark_stringpool.
16275         (init_stringpool): Don't use ggc_add_root.
16276         * c-parse.in: Include varray.h.
16277         * c-common.c: Include varray.h.
16278         * objc/Make-lang.in (objc-act.o): Add varray.h.
16279         * objc/objc-act.c: Include varray.h.
16280
16281         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
16282
16283         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
16284         (dw_cfi_oprnd1_desc): Likewise.
16285
16286         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
16287
16288         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
16289         move out of ifdef.
16290         (alpha_links): Use gengtype to mark; move out of ifdef.
16291         (mark_alpha_links_node): Delete.
16292         (mark_alpha_links): Delete.
16293         (alpha_need_linkage): Use GGC to allocate splay tree, struct
16294         alpha_links, strings.  Don't use ggc_add_root.
16295         * ggc-common.c (ggc_splay_alloc): New.
16296         (ggc_splay_dont_free): New.
16297         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
16298         (ggc_mark_tree): Likewise.
16299         (splay_tree_new_ggc): New.
16300         (ggc_splay_alloc): Declare.
16301         (ggc_splay_dont_free): Declare.
16302         * dwarf2asm.c: Include gt-dwarf2asm.h.
16303         (mark_indirect_pool_entry): Delete.
16304         (mark_indirect_pool): Delete.
16305         (indirect_pool): Use gengtype to mark.
16306         (dw2_force_const_mem): Don't use ggc_add_root.
16307         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
16308         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
16309         (gt-dwarf2asm.h): Depend on s-gtype.
16310
16311         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
16312
16313         * tree.h (union tree_type_symtab): Mark `die' field.
16314         * Makefile.in (dwarf2out.o): Update dependencies.
16315         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
16316         hash tables.
16317         (dw_cfi_oprnd1_desc): New function.
16318         (dw_cfi_oprnd2_desc): New function.
16319         (indirect_string_alloc): Delete.
16320         (debug_str_do_hash): New function.
16321         (debug_str_eq): New function.
16322         (mark_limbo_die_list): Delete.
16323         (dwarf2out_init): Don't call ggc_add_root.
16324
16325 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
16326
16327         The following changes are merged from itanium-sched-branch:
16328
16329         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
16330
16331         * doc/md.texi: Clarify assignment of units to automata description.
16332
16333         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
16334
16335         * genautomata.c (unit_decl): Remove members
16336         `the_same_automaton_unit' and
16337         `the_same_automaton_message_reported_p'.
16338         (process_unit_to_form_the_same_automaton_unit_lists,
16339         form_the_same_automaton_unit_lists_from_regexp,
16340         form_the_same_automaton_unit_lists, the_same_automaton_lists):
16341         Remove them.
16342         (annotation_message_reported_p): New global variable.
16343         (check_unit_distribution_in_reserv,
16344         check_regexp_units_distribution): New functions.
16345         (check_unit_distributions_to_automata): Rewrite it.
16346
16347         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
16348
16349         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
16350         Use continue instead of break if cycle is too big.
16351
16352         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
16353
16354         * genautomata.c (check_unit_distributions_to_automata): Output at
16355         most one message for a unit.
16356         (process_unit_to_form_the_same_automaton_unit_lists): Check
16357         automaton of units instead of units themself.
16358
16359         * doc/md.texi: Describe the constraint about assigning unit to
16360         automata.
16361
16362         2002-12-20  Jan Hubicka  <jH@suse.cz>
16363                     Vladimir Makarov  <vmakarov@redhat.com>
16364
16365         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
16366         and `in_set_p'.
16367         (gen_cpu_unit): Initialize the new members.
16368         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
16369         up `min_occ_cycle_num'.
16370         (evaluate_max_reserv_cycles): Change the function call.
16371         (CLEAR_BIT): New macro.
16372         (states_union, state_shift): Use the mask.
16373         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
16374         (form_reservs_matter): New function.
16375         (make_automaton): Call the function and use the mask.
16376         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
16377         account.
16378
16379         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16380
16381         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
16382
16383         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16384
16385         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
16386         for Itanium.
16387
16388         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16389
16390         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
16391         default cpu.
16392
16393         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
16394                 2002-10-31  Dale Johannesen <dalej@apple.com>
16395
16396         * haifa-sched.c (find_set_reg_weight): New function.
16397         (find_insn_reg_weight): Use the new function.
16398         (schedule_block): Do sorting ready queue always
16399         after insn issue.
16400
16401         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
16402
16403         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
16404
16405         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
16406
16407         * haifa-sched.c (choice_entry): New structure.
16408         (choice_stack, cycle_issued_insns): New variables.
16409         (max_issue): Rewrite it.
16410         (choose_ready): Set up ready_try for unknown insns too.
16411         (schedule_block): Allocate and free choice_stack.  Set up
16412         and modify cycle_issued_insns.
16413
16414         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
16415         with and without filling the bundle.
16416         (bundling): Combine calls of issue_nops_and_insn.
16417
16418         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
16419
16420         * config/ia64/itanium1.md: New file.
16421
16422         * config/ia64/itanium2.md: New file.
16423
16424         * config/ia64/ia64.md: Move DFA descriptions into the new files.
16425         Remove the old pipeline description.
16426
16427         * config/ia64/ia64.c (ia64_override_options): Add aliases of
16428         itanium processor names.
16429
16430         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
16431
16432         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
16433         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
16434
16435         * config/ia64/ia64.md: Add descriptions for Itanium2.
16436
16437         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
16438
16439         * config/ia64/ia64.h (processor_type): New enumeration.
16440         (ia64_tune, ia64_tune_string): New external declarations.
16441         (TARGET_OPTIONS): Add option `tune='.
16442
16443         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
16444         variables.
16445         (ia64_override_options): Set up `ia64_tune'.
16446         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
16447         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
16448         (bundling): Add nops for MM-insns only for Itanium.
16449         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
16450         Itanium.
16451
16452         * config/ia64/ia64.md (cpu): New attribute.
16453         (DFA description): Enable it only for Itanium.
16454
16455         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
16456                     Richard Henderson  <rth@redhat.com>
16457
16458         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
16459         MASK_EARLY_STOP_BITS.
16460         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
16461         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
16462         `early-stop-bits'.
16463
16464         * config/ia64/ia64.c (ia64_dfa_new_cycle,
16465         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
16466         instead of TARGET_TUNE_STOP_BITS.
16467
16468         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
16469         `-mearly-stop-bits'.
16470
16471         * config/ia64/ia64.c (automata_option "v"): Comment it.
16472
16473         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
16474
16475         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
16476         New macros.
16477         (TARGET_SWITCHES): Add entries for the new option.
16478
16479         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
16480         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
16481         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
16482         global variables.
16483         (ia64_sched_reorder2): Set up `clocks'.
16484         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
16485         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
16486         queue when TARGET_TUNE_STOP_BITS.
16487         (bundling): Insert additional nops for MM-insns.
16488         (final_emit_insn_group_barriers): Add insertion of stop bits
16489         according `stops_p'.
16490         (ia64_reorg): Initiate the new varibales.
16491
16492         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
16493
16494         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
16495
16496         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
16497         insns at the end of block insn scheduling.
16498
16499         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
16500
16501         * sched-deps.c (remove_dependence, group_leader): Remove it.
16502         (add_dependence): Add dependence to group leader to.
16503         (set_sched_group_p): Add dependence to the first insn of the
16504         schedule group too.
16505         (sched_analyze_insn): Make dependence to jump as anti-dependence.
16506         Change true dependence by anti-dependence when
16507         `reg_pending_barrier'.
16508
16509         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
16510         add_branch_dependences): Ignore schedule groups.
16511
16512         * sched-ebb.c (init_ready_list): Ditto.
16513
16514         * (move_insn, set_priorities): Ditto.
16515
16516         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
16517         flag is clear after reload.
16518         (adjust_cost): Change cost only for output dependencies.
16519
16520         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
16521
16522         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
16523
16524         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
16525
16526         * target.h (gcc_target): Add member
16527         `dependencies_evaluation_hook'.
16528
16529         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
16530         macro.
16531         (TARGET_SCHED): Add initiatialization of the new member.
16532
16533         * sched-ebb.c: Include `target.h'.
16534         (schedule_ebb): Call `dependencies_evaluation_hook'.
16535
16536         * sched-rgn.c (schedule_region): Call
16537         `dependencies_evaluation_hook'.
16538
16539         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
16540         New macro.
16541         (ia64_dependencies_evaluation_hook): New function.
16542
16543         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
16544         Describe the new hook.
16545
16546         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
16547
16548         * target.h (gcc_target): Add members
16549         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
16550
16551         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
16552         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
16553         macros.
16554         (TARGET_SCHED): Add initiatialization of the new members.
16555
16556         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
16557         insn scheduling too.
16558         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
16559         initialize `ready_try'.
16560         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
16561         `dfa_new_cycle' says not to do it.
16562
16563         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
16564         bundling.
16565
16566         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
16567
16568         * config/ia64/ia64.c: Include `hashtab.h'.
16569         (ia64_first_cycle_multipass_dfa_lookahead_guard,
16570         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
16571         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
16572         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
16573         bundle_state_eq_p, insert_bundle_state,
16574         initiate_bundle_state_table, finish_bundle_state_table,
16575         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
16576         get_template, get_next_important_insn, bundling): New functions.
16577         (ia64_internal_sched_reorder): Remove it.
16578         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
16579         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
16580         (ia64_safe_itanium_requires_unit0): Remove it.
16581         (group_barrier_needed_p): Place group barrier right before a real
16582         insn.
16583         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
16584         Remove them.
16585         (bundle_name): New variable.
16586         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
16587         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
16588         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
16589         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
16590         temp_dfa_state, prev_cycle_state): New global variables.
16591         (insn_matches_slot, maybe_rotate, finish_last_head,
16592         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
16593         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
16594         find_best_packet, itanium_reorder, dump_current_packet,
16595         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
16596         (sched_data, sched_ready, sched_types): Remove them.
16597         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
16598         `init_insn_group_barriers'.
16599         (ia64_sched_reorder, ia64_sched_reorder2): Call
16600         ia64_dfa_sched_reorder.
16601         (ia64_variable_issue): Rewrite it.
16602         (bundle_state): New structure.
16603         (index_to_bundle_states, bundle_states_num,
16604         allocated_bundle_states_chain, free_bundle_state_chain): New
16605         global variables.
16606         (ia64_sched_finish): Add stop bits and call `bundling' after the
16607         2nd insn scheduling.
16608         (ia64_use_dfa_pipeline_interface): Return zero always.
16609         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
16610         insn scheduling.
16611         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
16612         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
16613         (ia64_reorg): Add bundling insns.
16614
16615         * doc/tm.texi
16616         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
16617         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
16618
16619         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
16620
16621         * config/ia64/ia64.md: Add Itanium1 DFA description.
16622         (itanium_class): Add `nop' and `pre_cycle'.  Add
16623         define_function_unit for `nop'.
16624         (nop): Change attribute `itanium_class'.
16625         (pre_cycle): New define_insn.
16626
16627         * config/ia64/ia64-protos.h (bundling_p): New external variable.
16628         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
16629         ia64_produce_address_p): New function prototypes.
16630
16631         * config/ia64/ia64.c (bundling_p): New global variable.
16632         (ia64_use_dfa_pipeline_interface,
16633         ia64_first_cycle_multipass_dfa_lookahead,
16634         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
16635         functions.
16636         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
16637         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
16638         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
16639         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
16640         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
16641         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
16642         (dfa_pre_cycle_insn): New variable.
16643
16644         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
16645
16646         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
16647         constructions.
16648
16649         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
16650         New function prototypes.
16651
16652         * genattrtab.c (main): Process the new constructions.
16653
16654         * genautomata.c (gen_presence_absence_set,
16655         process_presence_absence_names, process_presence_absence_patterns,
16656         add_presence_absence, check_absence_pattern_sets): Add parameter
16657         `final_p'.
16658         (unit_decl): Add new members `final_presence_list' and
16659         `final_absence_list'.
16660         (unit_pattern_rel_decl): Add new member `final_p'.
16661         (gen_final_presence_set, gen_final_absence_set): New functions.
16662         (process_decls): Use member `final_p'.
16663         (temp_reserv): New global variable.
16664         (reserv_sets_are_intersected): Add processing `final_presence_set'
16665         and `final_absence_set'.
16666         (initiate_states): Allocate `temp_reserv'.
16667         (unit_final_presence_set_table, unit_final_absence_set_table): New
16668         gloabal variables.
16669         (initiate_presence_absence_pattern_sets): Initiate them.
16670         (NDFA_to_DFA): Fix typo.
16671         (output_description): Output `final_presence_set' and
16672         `final_absence_set'.
16673
16674         * doc/md.texi (final_presence_set, final_absence_set): Describe
16675         them.
16676
16677         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
16678
16679         * genautomata.c (transform_3): Process a missing case (nothing on
16680         unit place).
16681
16682         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
16683
16684         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
16685         comments about queried units and the minimization.
16686
16687         * doc/md.texi: Ditto.
16688
16689         * genautomata.c (create_composed_state): Return nonzero if the new
16690         state has been created.
16691         (first_cycle_unit_presence): New function.
16692         (state_is_differed): Add new parameter.  Use the new function.
16693         Take queried units into account.
16694         (partition_equiv_class): Pass additional parameter to
16695         `state_is_differed'.
16696         (merge_states): Process composed states too.
16697         (build_automaton, create_automata, output_min_issue_delay_table,
16698         output_tables, output_statistics): Output more information.
16699         (output_reserved_units_table): Use function
16700         `first_cycle_unit_presence'.
16701         (output_tables): Output table of queried units even if the
16702         minimization is switched on.
16703         (write_automata): Output code for querying units even if the
16704         minimization is switched on.
16705
16706         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
16707
16708         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
16709         syntax of the constructions.
16710
16711         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
16712         extended syntax of the constructions.
16713
16714         * genautomata.c (unit_rel_decl): Rename it to
16715         `unit_pattern_rel_decl'.
16716         (pattern_set_el, pattern_reserv): New structures.
16717         (pattern_set_el_t, pattern_reserv_t): New types.
16718         (gen_presence_absence_set): New function.
16719         (process_presence_absence): Remove it.
16720         (process_presence_absence_names,
16721         process_presence_absence_patterns): New functions.
16722         (get_presence_absence_set): Remove it.
16723         (initiate_presence_absence_sets): Rename it on
16724         `initiate_presence_absence_pattern_sets'.  Use new function
16725         `form_reserv_sets_list'.
16726         (form_reserv_sets_list, check_presence_pattern_sets,
16727         check_absence_pattern_sets, output_pattern_set_el_list): New
16728         functions.
16729         (unit_decl): Change types of members `presence_list' and
16730         `absence_list'.
16731         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
16732         (decl): Change types of members `excl', `presence', and `absence'.
16733         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
16734         at the end of the vector.
16735         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
16736         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
16737         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
16738         (gen_presence_set, gen_absence_set): Use new function
16739         `gen_presence_absence_set'.
16740         (add_presence_absence): Process `pattern_list' instead of
16741         `source_list'.
16742         (process_decls): USe new functions
16743         `process_presence_absence_names' and
16744         `process_presence_absence_patterns'.
16745         (reserv_sets_are_intersected): Use new function
16746         `check_presence_pattern_sets'.
16747         (presence_set, absence_set): Remove them.
16748         (unit_presence_set_table, unit_absence_set_table): New global
16749         variables.
16750         (output_description): Use new function
16751         `output_pattern_set_el_list'.
16752         (generate): Use `initiate_presence_absence_pattern_sets'.
16753
16754         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
16755
16756         * genattr.c (main): Add output of prototype of new interface
16757         function `dfa_clean_insn_cache'.
16758
16759         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
16760         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
16761         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
16762         the generated code.
16763         (write_automata): Call the new function.
16764
16765 2003-01-09  Jan Hubicka  <jh@suse.cz>
16766
16767         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
16768         correctly.
16769
16770 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
16771
16772         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
16773
16774 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
16775
16776         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
16777         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
16778         (CONSTRAINT_LEN): Provide default definition.
16779         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
16780         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
16781         (EXTRA_CONSTRAINT_STR): Likewise.
16782         (REG_CLASS_FROM_CONSTRAINT): Define.
16783         * genoutput.c (check_constraint_len, constraint_len): New functions.
16784         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
16785         constraint / modifier.
16786         (gen_insn): Call check_constraint_len.
16787         * local-alloc.c (block_alloc): Update to use new macros / pass
16788         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
16789         * ra-build.c (handle_asm_insn): Likewise.
16790         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
16791         (constrain_operands, peep2_find_free_register): Likewise.
16792         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
16793         * regmove.c (find_matches): Likewise.
16794         * reload.c (push_secondary_reload, find_reloads): Likewise.
16795         (alternative_allows_memconst): Likewise.
16796         * reload1.c (maybe_fix_stack_asms): Likewise.
16797         (reload_cse_simplify_operands): Likewise.
16798         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
16799         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
16800         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
16801         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
16802         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
16803         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
16804
16805         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
16806
16807 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16808
16809         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
16810         length.
16811         (*extzv_1_r_h8300hs): Likewise.
16812         (*extzv_1_r_inv_h8300): Likewise.
16813         (*extzv_1_r_inv_h8300hs): Likewise.
16814
16815 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16816
16817         * config/h8300/h8300.h (PREDICATE_CODES): New.
16818
16819 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16820
16821         * config/h8300/h8300.md (*addsi3_upper): New.
16822         (*iorsi3_shift): Likewise.
16823         (two splitters): Likewise.
16824         (*addsi3_shift): Likewise.
16825         (two splitters): Likewise.
16826
16827 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
16828
16829         * Makefile.in (optabs.o): Add dependency on basic-block.h.
16830         * basic-block.h (control_flow_insn_p): Fuction was exported.
16831         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
16832         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
16833         notes only when the region is contained in a single basic block.
16834
16835 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16836
16837         PR inline-asm/8832
16838         * tree.h (expand_asm): New prototype.
16839         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
16840         to do so.
16841         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
16842         down to expand_asm.
16843         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
16844         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
16845         (volatile_refs_p) [ASM_INPUT]: Likewise.
16846         (side_effects_p) [ASM_INPUT]: Likewise.
16847
16848 2003-01-09  Jan Hubicka  <jh@suse.cz>
16849
16850         * i386.md (*mul*): FIx constraints; remove confused comment; fix
16851         athlon_decode attributes
16852         (imul/k8 optimization peep2s): New.
16853
16854         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
16855         * i386.md (type attribute): Add ssecomi.
16856         (unit, memory, prefix attributes): Handle ssecomi.
16857         (cvt?2? patterns): Fix athlon_decode attribute
16858         (comi patterns): Set attribute to ssecomi.
16859
16860         PR target/8343
16861         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
16862
16863 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
16864
16865         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
16866         that match register_operands.
16867         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
16868         register_operand the default case.
16869
16870 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16871
16872         PR c/8032
16873         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
16874         an empty element, do not advance the pointer to unfilled
16875         fields if there are pending initializers.
16876
16877 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
16878
16879         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
16880         (install-gcc-tooldir, install-cpp, installdirs,
16881         install-common, install-driver, install-info, install-man,
16882         install-headers, install-include-dir, install-headers-tar,
16883         install-headers-cpio, install-headers-cp, install-mkheaders,
16884         install-collect2, uninstall): Prepend $(DESTDIR) to
16885         destination paths in all (un)installation commands.
16886         (install-driver): Rewrite $(LN) commands to support DESTDIR
16887         with "ln" as well as with "ln -s".
16888         (installdirs): Simply use mkinstalldirs.
16889         (install-libgcc, install-multilib): Also pass DESTDIR.
16890         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
16891         installation destination variable ldir.
16892         * config/alpha/t-osf4, config/arm/t-netbsd,
16893         config/ia64/t-hpux, config/mips/t-iris5-6,
16894         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
16895         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
16896         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
16897         in the definition of SHLIB_INSTALL.
16898         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
16899         $(libsubdir) in the installation commands.
16900
16901 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
16902
16903         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
16904         non-optimizing compile.
16905         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
16906         compile.
16907
16908 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
16909
16910         * config/i386/i386.c (ix86_attribute_table): Add new attributes
16911         ms_struct and gcc_struct.
16912         (ix86_handle_struct_attribute): New function.
16913         (ix86_ms_bitfield_layout_p): Update to take new attributes
16914         into account.
16915         * doc/extend.texi: Document new attributes.
16916         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
16917
16918 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
16919
16920         PR optimization/8750
16921         * config/i386/i386.c (ix86_expand_prologue): Don't allow
16922         scheduling pass to move insns across __alloca call.
16923
16924 2003-01-08  Dale Johannesen  <dalej@apple.com>
16925
16926         * config/rs6000/rs6000.md:  Replace *store_multiple_string
16927         with *stmsi[3-8].
16928
16929 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
16930
16931         PR target/9210
16932         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
16933         Set SYMBOL_REF_FLAG on local data sym_ref.
16934
16935 2003-01-08  Dale Johannesen  <dalej@apple.com>
16936
16937         * function.c (assign_parms):  Don't set pretend_args_size if
16938           REG_PARM_STACK_SPACE.
16939           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
16940           pretend_args_size.
16941
16942 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
16943
16944         * gcc.hlp: Delete.
16945
16946 2003-01-09  Jan Hubicka  <jh@suse.cz>
16947
16948         * i386.c  (ix86_expand_int_addcc): Fix thinko.
16949
16950 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
16951
16952         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
16953         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
16954         as hook_bool_tree_hwi_hwi_tree_true.
16955         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
16956         (rs6000_emit_epilogue): Same.
16957         (rs6000_output_mi_thunk): Re-implement as RTL.
16958         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
16959         xcoffout_declare_function if any debugging enabled.
16960
16961 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
16962
16963         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
16964         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
16965         * config/mips/mips.h (enum processor_type): Rename
16966         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
16967         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
16968         Add PROCESSOR_M4K.
16969         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
16970         (ISA_MIPS32R2): New define.
16971         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
16972         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
16973         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
16974         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
16975         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
16976         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
16977         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
16978         compiling MIPS16 code.
16979         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
16980         comment.
16981         (ISA_HAS_SEB_SEH): New define.
16982         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
16983         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
16984         processor_type value renaming.  Add support for MIPS32R2.
16985         Clean up comments, and move "sb1" entry with other MIPS64 CPU
16986         entries.
16987         (override_options): Reimplement -mipsN option handling so that
16988         it will work correctly for -mips32r2.  Avoid branch-likely
16989         instructions on MIPS32R2.
16990         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
16991         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
16992         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
16993         (extendhisi2_hw, extendqisi2_hw): New.
16994         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
16995         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
16996         MIPS32R2, and MIPS64.
16997         (LINK_SPEC): Pass -mips32r2 to linker.
16998         * config/mips/t-isa3264: Built -mips32r2 multilibs.
16999         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
17000         for mips32r2 in the -march description.  Alphabetically sort
17001         CPU names in the -march description.  Add long-missed -mips32
17002         and -mips64 to MIPS option summary.
17003
17004         * config.gcc: Update copyright years to include 2003.
17005         * config/mips/mips.c: Likewise.
17006         * config/mips/mips.h: Likewise.
17007         * config/mips/mips.md: Likewise.
17008         * config/mips/netbsd.h: Likewise.
17009         * doc/invoke.texi: Likewise.
17010
17011 2003-01-08  Andreas Schwab  <schwab@suse.de>
17012
17013         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
17014         variable.
17015         * configure: Regenerated.
17016
17017 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
17018
17019         * config/h8300/h8300.c (output_logical_op): Replace byte/word
17020         extraction of det with b0, b1, w0, w2, etc.
17021         (compute_logical_op_length): Likewise.
17022         (compute_logical_op_cc): Likewise.
17023
17024 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
17025
17026         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
17027         HIGH on all variants.
17028
17029 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
17030
17031         * Makefile.in (PARTITION_H): New.
17032         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
17033         * basic-block.h: Include hard-reg-set.h.
17034
17035 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
17036
17037         * arm.h (ENABLE_XF_PATTERNS): Delete.
17038         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
17039         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
17040         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
17041         (cmpxf_trap): Delete.
17042         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
17043
17044 2003-01-08  Jan Hubicka  <jh@suse.cz>
17045
17046         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
17047         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
17048         (add??cc): New expanders.
17049         * i386.c (expand_int_addcc): New function.
17050         * i386-protos.h (expand_int_addcc): Declare.
17051
17052         * alias.c (memory_modified_1): New static function.
17053         (memory_modified): New static varaible.
17054         (memory_modified_in_insn_p): New global function.
17055         * rtl.h (memory_modified_in_insn_p): Declare.
17056         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
17057         references.
17058
17059         * expr.h (emit_conditional_add): Declare.
17060
17061 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
17062
17063         PR other/8947
17064         * doc/invoke.texi (-malign-double): Explain that the option breaks
17065         binary compatibility.
17066
17067 2003-01-08  Andreas Schwab  <schwab@suse.de>
17068
17069         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
17070         should come from the generic *-*-linux* entry.
17071
17072 2003-01-07  Jan Hubicka  <jh@suse.cz>
17073
17074         * cselib.c (cselib_current_insn_in_libcall): New static variable.
17075         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
17076         we are inside libcall.
17077         * cselib.h (elt_loc_list): Add in_libcall.
17078         * gcse.c (do_local_cprop): Do not copy propagate using insns
17079         in libcalls.
17080
17081 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
17082
17083         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
17084         not normally affect to issue rate.
17085
17086 2003-01-07  Jan Hubicka  <jh@suse.cz>
17087
17088         * genopinit.c (optabs): Add addc_optab.
17089         * ifcvt.c (noce_try_store_flag): Rename to ...
17090         (noce_try_addcc): ... this one; handle generic conditional increment.
17091         (noce_process_if_block): Update noce_try_addcc call.
17092         * optabs.c (emit_conditional_add): New.
17093         (init_obtabs): Initialize addc_optab.
17094         * optabs.h (optab_index): Add OTI_addcc.
17095         (addcc_optab): New macro.
17096         * md.texi: Document addMcc
17097
17098         PR target/8322
17099         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
17100         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
17101         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
17102
17103         * reload1.c (delete_output_reload): Avoid repeated attempts
17104         to delete insn.
17105
17106 2003-01-07  Andreas Schwab  <schwab@suse.de>
17107
17108         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
17109         Move --enable-initfini-array check ...
17110         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
17111         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
17112         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
17113         * configure: Rebuild.
17114
17115 2003-01-07  Richard Henderson  <rth@redhat.com>
17116
17117         * alias.c (find_base_value): Only use new_reg_base_value shortcut
17118         if the register is set once.
17119
17120 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
17121
17122         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
17123         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
17124         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
17125
17126 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
17127             Sunil Davasam  <sunil.k.davasam@intel.com>
17128
17129         PR libstdc++/9076
17130         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
17131         DW_CFA_same_value, read next and ignore.
17132
17133 2003-01-07  Richard Henderson  <rth@redhat.com>
17134
17135         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
17136
17137 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
17138
17139         * cfg.c: Include alloc-pool.h
17140         (edge_pool): New pool.
17141         (bb_pool): New pool.
17142         (first_deleted_edge): Remove.
17143         (first_deleted_block): Remove.
17144         (init_flow): Alloc/free the pools.
17145         (free_edge): Use pools.
17146         (alloc_block): Ditto.
17147         (expunge_block): Ditto.
17148         (cached_make_edge): Ditto.
17149
17150         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
17151
17152 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
17153
17154         * et-forest.c: Include alloc-pool.h.
17155         (struct et_forest): Add node_pool and occur_pool.
17156         (et_forest_create): Create the new pools.
17157         (et_forest_delete): Delete them.
17158         (et_forest_add_node): Allocate and free using pools.
17159         (et_forest_add_edge): Ditto.
17160         (et_forest_remove_node): Ditto.
17161         (et_forest_remove_edge): Ditto.
17162
17163         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
17164
17165 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
17166
17167         * config/h8300/h8300.c (output_logical_op): Simplify and
17168         optimize the handling of SImode.
17169         * config/h8300/h8300.c (compute_logical_op_length): Update
17170         accordingly.
17171         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
17172
17173 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
17174
17175         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
17176         big-endian correction to indirect arguments too.
17177
17178 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
17179
17180         Segher Boessenkool  <segher@koffie.nl>
17181
17182         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
17183         (alt_reg_names): Ditto, fix formatting.
17184         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
17185
17186 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17187
17188         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
17189         (output_logical_op): Constify intval and det.
17190         (compute_logical_length): Likewise.
17191         (compute_logical_cc): Likewise.
17192         (output_a_shift): Constify mask.
17193         (h8300_encode_label): Constify len.
17194
17195 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17196
17197         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
17198         (h8300_expand_epilogue): Likewise.
17199
17200 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
17201
17202         Segher Boessenkool  <segher@koffie.nl>
17203
17204         * config/rs6000/altivec.md: Remove spaces from assembler
17205         instruction argument lists.
17206
17207 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17208
17209         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
17210         c4x_assembler_function_p.
17211         (c4x_null_epilogue_p): Complement return value, all uses updated.
17212         (c4x_insert_attributes): Add naked.
17213         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
17214         * doc/extend.texi: Update C4x function attributes.
17215
17216 2003-01-06  Richard Henderson  <rth@redhat.com>
17217
17218         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
17219         properly when changing "local-ness".
17220         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
17221
17222 2003-01-06  Dale Johannesen  <dalej@apple.com>
17223
17224         * config/darwin-protos.h:  Add prototypes for new section functions.
17225
17226 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
17227
17228         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
17229         to EABI.
17230
17231 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
17232
17233         * hwint.h: If the current compiler has no 64-bit type at all,
17234         make HOST_WIDEST_INT 32 bits.
17235
17236 2003-01-06  Eric Christopher  <echristo@redhat.com>
17237
17238         * config/mips/mips.md (movdf_internal2): Fix constraints.
17239
17240 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17241
17242         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
17243
17244 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
17245
17246         * config/mips/mips.md (leadi): Use dla rather than la.
17247
17248 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
17249
17250         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
17251         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
17252
17253 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
17254
17255         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
17256         redefinition.
17257
17258 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17259
17260         * config/h8300/h8300.md (*extzv_8_23): New.
17261
17262 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17263
17264         * pa64-hpux.h (JCR_SECTION_NAME): Define.
17265         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
17266         USE_EH_FRAME_REGISTRY when defining.
17267
17268 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17269
17270         * config/h8300/h8300.c (output_a_shift): Do not output a
17271         variable shift.
17272         * config/h8300/h8300.md (two splitters): New.
17273
17274 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
17275
17276         * config/mips/mips.md: Disable the movstrsi define_split.
17277
17278 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17279
17280         * alloc-pool.c: Don't include "libiberty.h".
17281         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
17282         * convert.c (convert_to_real): Hide unused variable.
17283
17284 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17285
17286         * Makefile.in (gtyp-gen.h): Const-ify.
17287         * gcov-dump.c (tag_table): Likewise.
17288
17289 2003-01-04  Bruce Korb  <bkorb@gnu.org>
17290
17291         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
17292         of *both* the file name and the fix name.
17293
17294 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
17295
17296         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
17297         collect2.
17298         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
17299         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
17300         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
17301         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
17302         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
17303         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
17304         elfos.h.
17305         (EH_FRAME_IN_DATA_SECTION): Delete define.
17306         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
17307         (STARTFILE_SPEC): Use crtbegin.o.
17308         (ENDFILE_SPEC): Use crtend.o.
17309         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
17310         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
17311         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
17312         DTOR_LIST_BEGIN): Define.
17313         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
17314         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
17315         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
17316
17317 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
17318
17319         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
17320         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
17321         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
17322         Cleanup handling of replacement text.
17323         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
17324
17325 2003-01-04  Bruce Korb  <bkorb@gnu.org>
17326
17327         * fixinc/tests/base/math.h: removed obsolete results
17328         * fixinc/tests/base/stdlib.h: ditto
17329         * fixinc/tests/base/sys/param.h: ditto
17330         * fixinc/tests/base/sys/stat.h: ditto
17331         * fixinc/tests/base/time.h: ditto
17332         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
17333         * fixinc/tests/base/sys/byteorder.h: ditto
17334         * fixinc/inclhack.def: Remove superfluous backslashes
17335
17336 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
17337
17338         * config/h8300/h8300-protos.h: Add prototypes for
17339         the new functions defined below.
17340         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
17341         define.
17342         (dosize): Emit RTL instead of assembly code.
17343         (push): Likewise.
17344         (pop): Likewise.
17345         (h8300_output_function_prologue): Remove.
17346         (h8300_expand_prologue): New.
17347         (h8300_expand_epilogue): New.
17348         (h8300_output_function_epilogue): Do only the reset of
17349         pragma_saveall.
17350         * config/h8300/h8300.md (push_h8300): New.
17351         (push_h8300hs): Likewise.
17352         (pop_h8300): Likewise.
17353         (pop_h8300hs): Likewise.
17354         (*stm_h8300s_2): Change the name to stm_h8300s_2.
17355         (*stm_h8300s_3): Change the name to stm_h8300s_3.
17356         (*stm_h8300s_4): Change the name to stm_h8300s_4.
17357         (*ldm_h8300s_2): New.
17358         (*ldm_h8300s_3): Likewise.
17359         (*ldm_h8300s_4): Likewise.
17360         (return): Likewise.
17361         (*return_1): Likewise.
17362         (prologue): Likewise.
17363         (epilogue): Likewise.
17364         (monitor_prologue): Likewise.
17365
17366 2003-01-03  Dale Johannesen  <dalej@apple.com>
17367
17368         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
17369           machopic_picsymbol_stub1.
17370           (EXTRA_SECTION_FUNCTIONS):  Ditto.
17371         * rs6000/rs6000.c:  Update copyright.
17372           (machopic_output_stub):  Use them.  Remove an insn from stub code.
17373
17374 2003-01-02  Jason Merrill  <jason@redhat.com>
17375
17376         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
17377
17378         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
17379         static/external decls.
17380
17381         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
17382         outermost scope.
17383         * c-decl.c (c_make_fname_decl): Push the decls there, too.
17384
17385 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17386
17387         * config/h8300/h8300-protos.h: Add a prototype for
17388         h8300_current_function_interrupt_function_p.
17389         * config/h8300/h8300.c (interrupt_handler): Remove.
17390         (os_task): Likewise.
17391         (monitor): Likewise.
17392         (pragma_interrupt): New.
17393         (WORD_REG_USED): Use
17394         h8300_current_function_interrupt_function_p.
17395         (dosize): Likewise.
17396         (h8300_output_function_prologue): Likewise.
17397         Do not set interrupt_handler, os_task, monitor.
17398         (h8300_output_function_prologue): Use
17399         h8300_current_function_interrupt_function_p.
17400         Do not set interrupt_handler, os_task, monitor.
17401         (h8300_current_function_interrupt_function_p): New.
17402         (h8300_pr_interrupt): Set pragma_interrupt.
17403         (h8300_insert_attributes): Reset pragma_interrupt.
17404
17405 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17406
17407         * doc/install.texi (Configuration): Fix markup for reference to
17408         gcc/config.gcc.
17409
17410 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17411
17412         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
17413         (*iorhi3_two_qi): Likewise.
17414         (*iorsi3_zexthi): Likewise.
17415         (*xorhi3_zextqi): Likewise.
17416         (*xorsi3_zexthi): Likewise.
17417         (*xorsi3_zextqi): Likewise.
17418
17419 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17420
17421         * config/h8300/h8300.c (stack_pointer_operand): New.
17422         (const_int_gt_2_operand): Likewise.
17423         (const_int_ge_8_operand): Likewise.
17424         * config/h8300/h8300.md (a splitter): Likewise.
17425         (a peephole2): Likewise.
17426         * config/h8300/h8300-protos.h: Add prototypes for the new
17427         functions above.
17428
17429 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
17430
17431         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
17432         objc/objc-act.h: Fix copyright years.
17433
17434 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
17435
17436         * doc/passes.texi: Fix documentation for -fssa-ccp
17437
17438 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
17439
17440         * gccbug.in: Update for new categories.
17441
17442 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17443
17444         * config/h8300/h8300.md: Reorder some patterns.
17445
17446 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17447
17448         * config/h8300/h8300.c (output_logical_op): Fix a warning.
17449
17450 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
17451
17452         * config/darwin-protos.h, config/c4x/c4x-protos.h,
17453         config/cris/cris-protos.h, config/i370/i370-protos.h,
17454         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
17455         config/v850/v850-protos.h: Use struct, and don't conditionally
17456         compile on GCC_C_PRAGMA_H.
17457
17458 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17459
17460         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
17461         * config/h8300/h8300-protos.h: Likewise.
17462         * config/sh/sh-protos.h: Likewise.
17463
17464 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17465
17466         * config/arm/arm-protos.h: Use struct cpp_reader instead of
17467         cpp_reader.
17468         * config/h8300/h8300-protos.h: Likewise.
17469         * config/sh/sh-protos.h: Likewise.
17470
17471 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
17472
17473         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
17474         arm_pr_long_calls_off): Use struct.
17475         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
17476         : Similarly.
17477         Don't include cpplib.h.
17478         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
17479         sh_pr_nosave_low_regs): Similarly.
17480
17481 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
17482
17483         * config/h8300/h8300.c: Include cpplib.h.
17484
17485 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
17486
17487         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
17488           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
17489           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
17490           "GCC" in the copyright header.
17491
17492 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
17493
17494         * c-pragma.c (c_register_pragma): New.
17495         (init_pragma): Use it.
17496         * c-pragma.h (cpp_register_pragma): Don't declare.
17497         (c_register_pragma): New.
17498         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
17499         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
17500         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
17501         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
17502         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
17503         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
17504         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
17505         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
17506         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
17507         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
17508         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
17509         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
17510
17511 See ChangeLog.8 for earlier changes.